1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub type CompressionType = String;
13
14pub type EncryptionScheme = String;
15
16pub type InitVector = Vec<u8>;
17
18pub type KeyId = Vec<u8>;
19
20pub const AUDIO_ENCODING_AAC: &str = "fuchsia.media.aac";
22
23pub const AUDIO_ENCODING_AACLATM: &str = "fuchsia.media.aaclatm";
24
25pub const AUDIO_ENCODING_AMRNB: &str = "fuchsia.media.amrnb";
26
27pub const AUDIO_ENCODING_AMRWB: &str = "fuchsia.media.amrwb";
28
29pub const AUDIO_ENCODING_APTX: &str = "fuchsia.media.aptx";
30
31pub const AUDIO_ENCODING_FLAC: &str = "fuchsia.media.flac";
32
33pub const AUDIO_ENCODING_GSMMS: &str = "fuchsia.media.gsmms";
34
35pub const AUDIO_ENCODING_LPCM: &str = "fuchsia.media.lpcm";
36
37pub const AUDIO_ENCODING_MP3: &str = "fuchsia.media.mp3";
38
39pub const AUDIO_ENCODING_OPUS: &str = "fuchsia.media.opus";
40
41pub const AUDIO_ENCODING_PCMALAW: &str = "fuchsia.media.pcmalaw";
42
43pub const AUDIO_ENCODING_PCMMULAW: &str = "fuchsia.media.pcmmulaw";
44
45pub const AUDIO_ENCODING_SBC: &str = "fuchsia.media.sbc";
46
47pub const AUDIO_ENCODING_VORBIS: &str = "fuchsia.media.vorbis";
48
49pub const CAPTURE_USAGE2_COUNT: u8 = 4;
50
51pub const CAPTURE_USAGE_COUNT: u8 = 4;
52
53pub const ENCRYPTION_SCHEME_CBC1: &str = "cbc1";
54
55pub const ENCRYPTION_SCHEME_CBCS: &str = "cbcs";
56
57pub const ENCRYPTION_SCHEME_CENC: &str = "cenc";
58
59pub const ENCRYPTION_SCHEME_CENS: &str = "cens";
60
61pub const ENCRYPTION_SCHEME_UNENCRYPTED: &str = "unencrypted";
62
63pub const MAX_ENCRYPTION_SCHEME_SIZE: u32 = 100;
64
65pub const MAX_FRAMES_PER_RENDERER_PACKET: i64 = 262143;
67
68pub const MAX_INIT_VECTOR_SIZE: u32 = 16;
69
70pub const MAX_KEY_ID_SIZE: u32 = 16;
71
72pub const MAX_PCM_CHANNEL_COUNT: u32 = 8;
73
74pub const MAX_PCM_FRAMES_PER_SECOND: u32 = 192000;
75
76pub const MAX_USAGE_COUNT: u8 = 8;
80
81pub const METADATA_LABEL_ALBUM: &str = "fuchsia.media.album";
82
83pub const METADATA_LABEL_ARTIST: &str = "fuchsia.media.artist";
84
85pub const METADATA_LABEL_COMPOSER: &str = "fuchsia.media.composer";
86
87pub const METADATA_LABEL_EPISODE: &str = "fuchsia.media.episode";
88
89pub const METADATA_LABEL_GENRE: &str = "fuchsia.media.genre";
90
91pub const METADATA_LABEL_PUBLISHER: &str = "fuchsia.media.publisher";
92
93pub const METADATA_LABEL_RELEASE_DATE: &str = "fuchsia.media.release_date";
94
95pub const METADATA_LABEL_SEASON: &str = "fuchsia.media.season";
96
97pub const METADATA_LABEL_STUDIO: &str = "fuchsia.media.studio";
98
99pub const METADATA_LABEL_SUBTITLE: &str = "fuchsia.media.subtitle";
100
101pub const METADATA_LABEL_TITLE: &str = "fuchsia.media.title";
102
103pub const METADATA_LABEL_TRACK_NUMBER: &str = "fuchsia.media.track_number";
104
105pub const METADATA_SOURCE_TITLE: &str = "fuchsia.media.source_title";
108
109pub const MIN_PCM_CHANNEL_COUNT: u32 = 1;
111
112pub const MIN_PCM_FRAMES_PER_SECOND: u32 = 1000;
113
114pub const NO_TIMESTAMP: i64 = 9223372036854775807;
118
119pub const RENDER_USAGE2_COUNT: u8 = 6;
120
121pub const RENDER_USAGE_COUNT: u8 = 5;
122
123pub const STREAM_PACKET_FLAG_DISCONTINUITY: u32 = 4;
127
128pub const STREAM_PACKET_FLAG_DROPPABLE: u32 = 2;
133
134pub const STREAM_PACKET_FLAG_KEY_FRAME: u32 = 1;
138
139pub const VIDEO_ENCODING_H263: &str = "fuchsia.media.h263";
141
142pub const VIDEO_ENCODING_H264: &str = "fuchsia.media.h264";
143
144pub const VIDEO_ENCODING_MPEG4: &str = "fuchsia.media.mpeg4";
145
146pub const VIDEO_ENCODING_THEORA: &str = "fuchsia.media.theora";
147
148pub const VIDEO_ENCODING_UNCOMPRESSED: &str = "fuchsia.media.uncompressed_video";
149
150pub const VIDEO_ENCODING_VP3: &str = "fuchsia.media.vp3";
151
152pub const VIDEO_ENCODING_VP8: &str = "fuchsia.media.vp8";
153
154pub const VIDEO_ENCODING_VP9: &str = "fuchsia.media.vp9";
155
156pub const MAX_OOB_BYTES_SIZE: u64 = 8192;
157
158bitflags! {
159 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
161 pub struct AudioConsumerStartFlags: u32 {
162 const LOW_LATENCY = 1;
164 const SUPPLY_DRIVEN = 2;
169 }
170}
171
172impl AudioConsumerStartFlags {}
173
174bitflags! {
175 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
176 pub struct AudioGainInfoFlags: u32 {
177 const MUTE = 1;
178 const AGC_SUPPORTED = 2;
179 const AGC_ENABLED = 4;
180 }
181}
182
183impl AudioGainInfoFlags {}
184
185bitflags! {
186 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
187 pub struct AudioGainValidFlags: u32 {
188 const GAIN_VALID = 1;
189 const MUTE_VALID = 2;
190 const AGC_VALID = 4;
191 }
192}
193
194impl AudioGainValidFlags {}
195
196#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
197#[repr(u32)]
198pub enum AacAudioObjectType {
199 Mpeg2AacLc = 0,
201 Mpeg4AacLc = 1,
203}
204
205impl AacAudioObjectType {
206 #[inline]
207 pub fn from_primitive(prim: u32) -> Option<Self> {
208 match prim {
209 0 => Some(Self::Mpeg2AacLc),
210 1 => Some(Self::Mpeg4AacLc),
211 _ => None,
212 }
213 }
214
215 #[inline]
216 pub const fn into_primitive(self) -> u32 {
217 self as u32
218 }
219}
220
221#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
222#[repr(u32)]
223pub enum AacChannelMode {
224 Mono = 0,
225 Stereo = 2,
226}
227
228impl AacChannelMode {
229 #[inline]
230 pub fn from_primitive(prim: u32) -> Option<Self> {
231 match prim {
232 0 => Some(Self::Mono),
233 2 => Some(Self::Stereo),
234 _ => None,
235 }
236 }
237
238 #[inline]
239 pub const fn into_primitive(self) -> u32 {
240 self as u32
241 }
242}
243
244#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
249#[repr(u32)]
250pub enum AacVariableBitRate {
251 V1 = 1,
252 V2 = 2,
253 V3 = 3,
254 V4 = 4,
255 V5 = 5,
256}
257
258impl AacVariableBitRate {
259 #[inline]
260 pub fn from_primitive(prim: u32) -> Option<Self> {
261 match prim {
262 1 => Some(Self::V1),
263 2 => Some(Self::V2),
264 3 => Some(Self::V3),
265 4 => Some(Self::V4),
266 5 => Some(Self::V5),
267 _ => None,
268 }
269 }
270
271 #[inline]
272 pub const fn into_primitive(self) -> u32 {
273 self as u32
274 }
275}
276
277#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
278#[repr(u32)]
279pub enum AudioBitrateMode {
280 Unspecified = 0,
281 Cbr = 1,
282 Vbr = 2,
283}
284
285impl AudioBitrateMode {
286 #[inline]
287 pub fn from_primitive(prim: u32) -> Option<Self> {
288 match prim {
289 0 => Some(Self::Unspecified),
290 1 => Some(Self::Cbr),
291 2 => Some(Self::Vbr),
292 _ => None,
293 }
294 }
295
296 #[inline]
297 pub const fn into_primitive(self) -> u32 {
298 self as u32
299 }
300}
301
302#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
306#[repr(u32)]
307pub enum AudioCaptureUsage {
308 Background = 0,
312 Foreground = 1,
317 SystemAgent = 2,
322 Communication = 3,
325}
326
327impl AudioCaptureUsage {
328 #[inline]
329 pub fn from_primitive(prim: u32) -> Option<Self> {
330 match prim {
331 0 => Some(Self::Background),
332 1 => Some(Self::Foreground),
333 2 => Some(Self::SystemAgent),
334 3 => Some(Self::Communication),
335 _ => None,
336 }
337 }
338
339 #[inline]
340 pub const fn into_primitive(self) -> u32 {
341 self as u32
342 }
343}
344
345#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
349pub enum AudioCaptureUsage2 {
350 Background,
354 Foreground,
358 SystemAgent,
362 Communication,
365 #[doc(hidden)]
366 __SourceBreaking { unknown_ordinal: u32 },
367}
368
369#[macro_export]
371macro_rules! AudioCaptureUsage2Unknown {
372 () => {
373 _
374 };
375}
376
377impl AudioCaptureUsage2 {
378 #[inline]
379 pub fn from_primitive(prim: u32) -> Option<Self> {
380 match prim {
381 0 => Some(Self::Background),
382 1 => Some(Self::Foreground),
383 2 => Some(Self::SystemAgent),
384 3 => Some(Self::Communication),
385 _ => None,
386 }
387 }
388
389 #[inline]
390 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
391 match prim {
392 0 => Self::Background,
393 1 => Self::Foreground,
394 2 => Self::SystemAgent,
395 3 => Self::Communication,
396 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
397 }
398 }
399
400 #[inline]
401 pub fn unknown() -> Self {
402 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
403 }
404
405 #[inline]
406 pub const fn into_primitive(self) -> u32 {
407 match self {
408 Self::Background => 0,
409 Self::Foreground => 1,
410 Self::SystemAgent => 2,
411 Self::Communication => 3,
412 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
413 }
414 }
415
416 #[inline]
417 pub fn is_unknown(&self) -> bool {
418 match self {
419 Self::__SourceBreaking { unknown_ordinal: _ } => true,
420 _ => false,
421 }
422 }
423}
424
425#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
431#[repr(u32)]
432pub enum AudioChannelId {
433 Skip = 0,
434 Lf = 1,
435 Rf = 2,
436 Cf = 3,
437 Ls = 4,
438 Rs = 5,
439 Lfe = 6,
440 Cs = 7,
441 Lr = 8,
442 Rr = 9,
443 EndDefined = 10,
444 ExtendedChannelIdBase = 1862270976,
445 Max = 2147483647,
446}
447
448impl AudioChannelId {
449 #[inline]
450 pub fn from_primitive(prim: u32) -> Option<Self> {
451 match prim {
452 0 => Some(Self::Skip),
453 1 => Some(Self::Lf),
454 2 => Some(Self::Rf),
455 3 => Some(Self::Cf),
456 4 => Some(Self::Ls),
457 5 => Some(Self::Rs),
458 6 => Some(Self::Lfe),
459 7 => Some(Self::Cs),
460 8 => Some(Self::Lr),
461 9 => Some(Self::Rr),
462 10 => Some(Self::EndDefined),
463 1862270976 => Some(Self::ExtendedChannelIdBase),
464 2147483647 => Some(Self::Max),
465 _ => None,
466 }
467 }
468
469 #[inline]
470 pub const fn into_primitive(self) -> u32 {
471 self as u32
472 }
473}
474
475#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
476#[repr(u32)]
477pub enum AudioOutputRoutingPolicy {
478 AllPluggedOutputs = 0,
479 LastPluggedOutput = 1,
480}
481
482impl AudioOutputRoutingPolicy {
483 #[inline]
484 pub fn from_primitive(prim: u32) -> Option<Self> {
485 match prim {
486 0 => Some(Self::AllPluggedOutputs),
487 1 => Some(Self::LastPluggedOutput),
488 _ => None,
489 }
490 }
491
492 #[inline]
493 pub const fn into_primitive(self) -> u32 {
494 self as u32
495 }
496}
497
498#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
500#[repr(u32)]
501pub enum AudioPcmMode {
502 Linear = 0,
503 Alaw = 1,
504 Mulaw = 2,
505}
506
507impl AudioPcmMode {
508 #[inline]
509 pub fn from_primitive(prim: u32) -> Option<Self> {
510 match prim {
511 0 => Some(Self::Linear),
512 1 => Some(Self::Alaw),
513 2 => Some(Self::Mulaw),
514 _ => None,
515 }
516 }
517
518 #[inline]
519 pub const fn into_primitive(self) -> u32 {
520 self as u32
521 }
522}
523
524#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
529#[repr(u32)]
530pub enum AudioRenderUsage {
531 Background = 0,
534 Media = 1,
537 Interruption = 2,
541 SystemAgent = 3,
544 Communication = 4,
547}
548
549impl AudioRenderUsage {
550 #[inline]
551 pub fn from_primitive(prim: u32) -> Option<Self> {
552 match prim {
553 0 => Some(Self::Background),
554 1 => Some(Self::Media),
555 2 => Some(Self::Interruption),
556 3 => Some(Self::SystemAgent),
557 4 => Some(Self::Communication),
558 _ => None,
559 }
560 }
561
562 #[inline]
563 pub const fn into_primitive(self) -> u32 {
564 self as u32
565 }
566}
567
568#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
573pub enum AudioRenderUsage2 {
574 Background,
577 Media,
580 Interruption,
584 SystemAgent,
587 Communication,
590 Accessibility,
593 #[doc(hidden)]
594 __SourceBreaking { unknown_ordinal: u32 },
595}
596
597#[macro_export]
599macro_rules! AudioRenderUsage2Unknown {
600 () => {
601 _
602 };
603}
604
605impl AudioRenderUsage2 {
606 #[inline]
607 pub fn from_primitive(prim: u32) -> Option<Self> {
608 match prim {
609 0 => Some(Self::Background),
610 1 => Some(Self::Media),
611 2 => Some(Self::Interruption),
612 3 => Some(Self::SystemAgent),
613 4 => Some(Self::Communication),
614 5 => Some(Self::Accessibility),
615 _ => None,
616 }
617 }
618
619 #[inline]
620 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
621 match prim {
622 0 => Self::Background,
623 1 => Self::Media,
624 2 => Self::Interruption,
625 3 => Self::SystemAgent,
626 4 => Self::Communication,
627 5 => Self::Accessibility,
628 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
629 }
630 }
631
632 #[inline]
633 pub fn unknown() -> Self {
634 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
635 }
636
637 #[inline]
638 pub const fn into_primitive(self) -> u32 {
639 match self {
640 Self::Background => 0,
641 Self::Media => 1,
642 Self::Interruption => 2,
643 Self::SystemAgent => 3,
644 Self::Communication => 4,
645 Self::Accessibility => 5,
646 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
647 }
648 }
649
650 #[inline]
651 pub fn is_unknown(&self) -> bool {
652 match self {
653 Self::__SourceBreaking { unknown_ordinal: _ } => true,
654 _ => false,
655 }
656 }
657}
658
659#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
661#[repr(u32)]
662pub enum AudioSampleFormat {
663 Unsigned8 = 1,
665 Signed16 = 2,
667 Signed24In32 = 3,
669 Float = 4,
671}
672
673impl AudioSampleFormat {
674 #[inline]
675 pub fn from_primitive(prim: u32) -> Option<Self> {
676 match prim {
677 1 => Some(Self::Unsigned8),
678 2 => Some(Self::Signed16),
679 3 => Some(Self::Signed24In32),
680 4 => Some(Self::Float),
681 _ => None,
682 }
683 }
684
685 #[inline]
686 pub const fn into_primitive(self) -> u32 {
687 self as u32
688 }
689}
690
691#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
693pub enum Behavior {
694 None,
696 Duck,
698 Mute,
700 #[doc(hidden)]
701 __SourceBreaking { unknown_ordinal: u32 },
702}
703
704#[macro_export]
706macro_rules! BehaviorUnknown {
707 () => {
708 _
709 };
710}
711
712impl Behavior {
713 #[inline]
714 pub fn from_primitive(prim: u32) -> Option<Self> {
715 match prim {
716 0 => Some(Self::None),
717 1 => Some(Self::Duck),
718 2 => Some(Self::Mute),
719 _ => None,
720 }
721 }
722
723 #[inline]
724 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
725 match prim {
726 0 => Self::None,
727 1 => Self::Duck,
728 2 => Self::Mute,
729 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
730 }
731 }
732
733 #[inline]
734 pub fn unknown() -> Self {
735 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
736 }
737
738 #[inline]
739 pub const fn into_primitive(self) -> u32 {
740 match self {
741 Self::None => 0,
742 Self::Duck => 1,
743 Self::Mute => 2,
744 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
745 }
746 }
747
748 #[inline]
749 pub fn is_unknown(&self) -> bool {
750 match self {
751 Self::__SourceBreaking { unknown_ordinal: _ } => true,
752 _ => false,
753 }
754 }
755}
756
757#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
760pub enum CodecProfile {
761 H264ProfileBaseline,
762 H264ProfileMain,
763 H264ProfileExtended,
764 H264ProfileHigh,
765 H264ProfileHigh10Profile,
766 H264ProfileHigh422Profile,
767 H264ProfileHigh444Predictiveprofile,
768 H264ProfileScalablebaseline,
769 H264ProfileScalablehigh,
770 H264ProfileStereohigh,
771 H264ProfileMultiviewhigh,
772 Vp8ProfileAny,
773 Vp9ProfileProfile0,
774 Vp9ProfileProfile1,
775 Vp9ProfileProfile2,
776 Vp9ProfileProfile3,
777 HevcprofileMain,
778 HevcprofileMain10,
779 HevcprofileMainStillPicture,
780 MjpegBaseline,
781 #[doc(hidden)]
782 __SourceBreaking {
783 unknown_ordinal: u32,
784 },
785}
786
787#[macro_export]
789macro_rules! CodecProfileUnknown {
790 () => {
791 _
792 };
793}
794
795impl CodecProfile {
796 #[inline]
797 pub fn from_primitive(prim: u32) -> Option<Self> {
798 match prim {
799 0 => Some(Self::H264ProfileBaseline),
800 1 => Some(Self::H264ProfileMain),
801 2 => Some(Self::H264ProfileExtended),
802 3 => Some(Self::H264ProfileHigh),
803 4 => Some(Self::H264ProfileHigh10Profile),
804 5 => Some(Self::H264ProfileHigh422Profile),
805 6 => Some(Self::H264ProfileHigh444Predictiveprofile),
806 7 => Some(Self::H264ProfileScalablebaseline),
807 8 => Some(Self::H264ProfileScalablehigh),
808 9 => Some(Self::H264ProfileStereohigh),
809 10 => Some(Self::H264ProfileMultiviewhigh),
810 11 => Some(Self::Vp8ProfileAny),
811 12 => Some(Self::Vp9ProfileProfile0),
812 13 => Some(Self::Vp9ProfileProfile1),
813 14 => Some(Self::Vp9ProfileProfile2),
814 15 => Some(Self::Vp9ProfileProfile3),
815 16 => Some(Self::HevcprofileMain),
816 17 => Some(Self::HevcprofileMain10),
817 18 => Some(Self::HevcprofileMainStillPicture),
818 19 => Some(Self::MjpegBaseline),
819 _ => None,
820 }
821 }
822
823 #[inline]
824 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
825 match prim {
826 0 => Self::H264ProfileBaseline,
827 1 => Self::H264ProfileMain,
828 2 => Self::H264ProfileExtended,
829 3 => Self::H264ProfileHigh,
830 4 => Self::H264ProfileHigh10Profile,
831 5 => Self::H264ProfileHigh422Profile,
832 6 => Self::H264ProfileHigh444Predictiveprofile,
833 7 => Self::H264ProfileScalablebaseline,
834 8 => Self::H264ProfileScalablehigh,
835 9 => Self::H264ProfileStereohigh,
836 10 => Self::H264ProfileMultiviewhigh,
837 11 => Self::Vp8ProfileAny,
838 12 => Self::Vp9ProfileProfile0,
839 13 => Self::Vp9ProfileProfile1,
840 14 => Self::Vp9ProfileProfile2,
841 15 => Self::Vp9ProfileProfile3,
842 16 => Self::HevcprofileMain,
843 17 => Self::HevcprofileMain10,
844 18 => Self::HevcprofileMainStillPicture,
845 19 => Self::MjpegBaseline,
846 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
847 }
848 }
849
850 #[inline]
851 pub fn unknown() -> Self {
852 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
853 }
854
855 #[inline]
856 pub const fn into_primitive(self) -> u32 {
857 match self {
858 Self::H264ProfileBaseline => 0,
859 Self::H264ProfileMain => 1,
860 Self::H264ProfileExtended => 2,
861 Self::H264ProfileHigh => 3,
862 Self::H264ProfileHigh10Profile => 4,
863 Self::H264ProfileHigh422Profile => 5,
864 Self::H264ProfileHigh444Predictiveprofile => 6,
865 Self::H264ProfileScalablebaseline => 7,
866 Self::H264ProfileScalablehigh => 8,
867 Self::H264ProfileStereohigh => 9,
868 Self::H264ProfileMultiviewhigh => 10,
869 Self::Vp8ProfileAny => 11,
870 Self::Vp9ProfileProfile0 => 12,
871 Self::Vp9ProfileProfile1 => 13,
872 Self::Vp9ProfileProfile2 => 14,
873 Self::Vp9ProfileProfile3 => 15,
874 Self::HevcprofileMain => 16,
875 Self::HevcprofileMain10 => 17,
876 Self::HevcprofileMainStillPicture => 18,
877 Self::MjpegBaseline => 19,
878 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
879 }
880 }
881
882 #[inline]
883 pub fn is_unknown(&self) -> bool {
884 match self {
885 Self::__SourceBreaking { unknown_ordinal: _ } => true,
886 _ => false,
887 }
888 }
889}
890
891#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
892#[repr(u32)]
893pub enum ColorSpace {
894 Unknown = 0,
895 NotApplicable = 1,
896 Jpeg = 2,
897 HdRec709 = 3,
898 SdRec601 = 4,
899}
900
901impl ColorSpace {
902 #[inline]
903 pub fn from_primitive(prim: u32) -> Option<Self> {
904 match prim {
905 0 => Some(Self::Unknown),
906 1 => Some(Self::NotApplicable),
907 2 => Some(Self::Jpeg),
908 3 => Some(Self::HdRec709),
909 4 => Some(Self::SdRec601),
910 _ => None,
911 }
912 }
913
914 #[inline]
915 pub const fn into_primitive(self) -> u32 {
916 self as u32
917 }
918}
919
920#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
921pub enum Lc3FrameDuration {
922 D10Ms,
923 D7P5Ms,
924 #[doc(hidden)]
925 __SourceBreaking {
926 unknown_ordinal: u32,
927 },
928}
929
930#[macro_export]
932macro_rules! Lc3FrameDurationUnknown {
933 () => {
934 _
935 };
936}
937
938impl Lc3FrameDuration {
939 #[inline]
940 pub fn from_primitive(prim: u32) -> Option<Self> {
941 match prim {
942 1 => Some(Self::D10Ms),
943 2 => Some(Self::D7P5Ms),
944 _ => None,
945 }
946 }
947
948 #[inline]
949 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
950 match prim {
951 1 => Self::D10Ms,
952 2 => Self::D7P5Ms,
953 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
954 }
955 }
956
957 #[inline]
958 pub fn unknown() -> Self {
959 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
960 }
961
962 #[inline]
963 pub const fn into_primitive(self) -> u32 {
964 match self {
965 Self::D10Ms => 1,
966 Self::D7P5Ms => 2,
967 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
968 }
969 }
970
971 #[inline]
972 pub fn is_unknown(&self) -> bool {
973 match self {
974 Self::__SourceBreaking { unknown_ordinal: _ } => true,
975 _ => false,
976 }
977 }
978}
979
980#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
981#[repr(u32)]
982pub enum SbcAllocation {
983 AllocLoudness = 0,
984 AllocSnr = 1,
985}
986
987impl SbcAllocation {
988 #[inline]
989 pub fn from_primitive(prim: u32) -> Option<Self> {
990 match prim {
991 0 => Some(Self::AllocLoudness),
992 1 => Some(Self::AllocSnr),
993 _ => None,
994 }
995 }
996
997 #[inline]
998 pub const fn into_primitive(self) -> u32 {
999 self as u32
1000 }
1001}
1002
1003#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1004#[repr(u32)]
1005pub enum SbcBlockCount {
1006 BlockCount4 = 4,
1007 BlockCount8 = 8,
1008 BlockCount12 = 12,
1009 BlockCount16 = 16,
1010}
1011
1012impl SbcBlockCount {
1013 #[inline]
1014 pub fn from_primitive(prim: u32) -> Option<Self> {
1015 match prim {
1016 4 => Some(Self::BlockCount4),
1017 8 => Some(Self::BlockCount8),
1018 12 => Some(Self::BlockCount12),
1019 16 => Some(Self::BlockCount16),
1020 _ => None,
1021 }
1022 }
1023
1024 #[inline]
1025 pub const fn into_primitive(self) -> u32 {
1026 self as u32
1027 }
1028}
1029
1030#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1031#[repr(u32)]
1032pub enum SbcChannelMode {
1033 Mono = 0,
1034 Dual = 1,
1035 Stereo = 2,
1036 JointStereo = 3,
1037}
1038
1039impl SbcChannelMode {
1040 #[inline]
1041 pub fn from_primitive(prim: u32) -> Option<Self> {
1042 match prim {
1043 0 => Some(Self::Mono),
1044 1 => Some(Self::Dual),
1045 2 => Some(Self::Stereo),
1046 3 => Some(Self::JointStereo),
1047 _ => None,
1048 }
1049 }
1050
1051 #[inline]
1052 pub const fn into_primitive(self) -> u32 {
1053 self as u32
1054 }
1055}
1056
1057#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1058#[repr(u32)]
1059pub enum SbcSubBands {
1060 SubBands4 = 4,
1061 SubBands8 = 8,
1062}
1063
1064impl SbcSubBands {
1065 #[inline]
1066 pub fn from_primitive(prim: u32) -> Option<Self> {
1067 match prim {
1068 4 => Some(Self::SubBands4),
1069 8 => Some(Self::SubBands8),
1070 _ => None,
1071 }
1072 }
1073
1074 #[inline]
1075 pub const fn into_primitive(self) -> u32 {
1076 self as u32
1077 }
1078}
1079
1080#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1086#[repr(u32)]
1087pub enum StreamError {
1088 Unknown = 1,
1090 InvalidInputFormatDetails = 2,
1092 IncompatibleBuffersProvided = 3,
1096 EosProcessing = 4,
1100 DecoderUnknown = 16777217,
1102 DecoderDataParsing = 16777218,
1106 EncoderUnknown = 33554433,
1108 DecryptorUnknown = 50331649,
1110 DecryptorNoKey = 50331650,
1113}
1114
1115impl StreamError {
1116 #[inline]
1117 pub fn from_primitive(prim: u32) -> Option<Self> {
1118 match prim {
1119 1 => Some(Self::Unknown),
1120 2 => Some(Self::InvalidInputFormatDetails),
1121 3 => Some(Self::IncompatibleBuffersProvided),
1122 4 => Some(Self::EosProcessing),
1123 16777217 => Some(Self::DecoderUnknown),
1124 16777218 => Some(Self::DecoderDataParsing),
1125 33554433 => Some(Self::EncoderUnknown),
1126 50331649 => Some(Self::DecryptorUnknown),
1127 50331650 => Some(Self::DecryptorNoKey),
1128 _ => None,
1129 }
1130 }
1131
1132 #[inline]
1133 pub const fn into_primitive(self) -> u32 {
1134 self as u32
1135 }
1136}
1137
1138#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1139#[repr(u32)]
1140pub enum VideoColorSpace {
1141 Invalid = 0,
1142}
1143
1144impl VideoColorSpace {
1145 #[inline]
1146 pub fn from_primitive(prim: u32) -> Option<Self> {
1147 match prim {
1148 0 => Some(Self::Invalid),
1149 _ => None,
1150 }
1151 }
1152
1153 #[inline]
1154 pub const fn into_primitive(self) -> u32 {
1155 self as u32
1156 }
1157}
1158
1159#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1160#[repr(C)]
1161pub struct AacConstantBitRate {
1162 pub bit_rate: u32,
1164}
1165
1166impl fidl::Persistable for AacConstantBitRate {}
1167
1168#[derive(Clone, Debug, PartialEq)]
1169pub struct AacEncoderSettings {
1170 pub transport: AacTransport,
1171 pub channel_mode: AacChannelMode,
1172 pub bit_rate: AacBitRate,
1173 pub aot: AacAudioObjectType,
1174}
1175
1176impl fidl::Persistable for AacEncoderSettings {}
1177
1178#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1180pub struct AacTransportAdts;
1181
1182impl fidl::Persistable for AacTransportAdts {}
1183
1184#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1186pub struct AacTransportLatm {
1187 pub mux_config_present: bool,
1189}
1190
1191impl fidl::Persistable for AacTransportLatm {}
1192
1193#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1195pub struct AacTransportRaw;
1196
1197impl fidl::Persistable for AacTransportRaw {}
1198
1199#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1200pub struct ActivityReporterWatchCaptureActivityResponse {
1201 pub active_usages: Vec<AudioCaptureUsage>,
1202}
1203
1204impl fidl::Persistable for ActivityReporterWatchCaptureActivityResponse {}
1205
1206#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1207pub struct ActivityReporterWatchRenderActivityResponse {
1208 pub active_usages: Vec<AudioRenderUsage>,
1209}
1210
1211impl fidl::Persistable for ActivityReporterWatchRenderActivityResponse {}
1212
1213#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1214pub struct ActivityReporterWatchCaptureActivity2Response {
1215 pub active_usages: Vec<AudioCaptureUsage2>,
1216}
1217
1218impl fidl::Persistable for ActivityReporterWatchCaptureActivity2Response {}
1219
1220#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1221pub struct ActivityReporterWatchRenderActivity2Response {
1222 pub active_usages: Vec<AudioRenderUsage2>,
1223}
1224
1225impl fidl::Persistable for ActivityReporterWatchRenderActivity2Response {}
1226
1227#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1228#[repr(C)]
1229pub struct AudioCapturerCaptureAtRequest {
1230 pub payload_buffer_id: u32,
1231 pub payload_offset: u32,
1232 pub frames: u32,
1233}
1234
1235impl fidl::Persistable for AudioCapturerCaptureAtRequest {}
1236
1237#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1238#[repr(C)]
1239pub struct AudioCapturerCaptureAtResponse {
1240 pub captured_packet: StreamPacket,
1241}
1242
1243impl fidl::Persistable for AudioCapturerCaptureAtResponse {}
1244
1245#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1246pub struct AudioCapturerGetStreamTypeResponse {
1247 pub stream_type: StreamType,
1248}
1249
1250impl fidl::Persistable for AudioCapturerGetStreamTypeResponse {}
1251
1252#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1253pub struct AudioCapturerSetPcmStreamTypeRequest {
1254 pub stream_type: AudioStreamType,
1255}
1256
1257impl fidl::Persistable for AudioCapturerSetPcmStreamTypeRequest {}
1258
1259#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1260pub struct AudioCapturerSetUsage2Request {
1261 pub usage: AudioCaptureUsage2,
1262}
1263
1264impl fidl::Persistable for AudioCapturerSetUsage2Request {}
1265
1266#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1267pub struct AudioCapturerSetUsageRequest {
1268 pub usage: AudioCaptureUsage,
1269}
1270
1271impl fidl::Persistable for AudioCapturerSetUsageRequest {}
1272
1273#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1274#[repr(C)]
1275pub struct AudioCapturerStartAsyncCaptureRequest {
1276 pub frames_per_packet: u32,
1277}
1278
1279impl fidl::Persistable for AudioCapturerStartAsyncCaptureRequest {}
1280
1281#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1282pub struct AudioCompressedFormatAac;
1283
1284impl fidl::Persistable for AudioCompressedFormatAac {}
1285
1286#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1287pub struct AudioCompressedFormatSbc;
1288
1289impl fidl::Persistable for AudioCompressedFormatSbc {}
1290
1291#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1292pub struct AudioConsumerSetRateRequest {
1293 pub rate: f32,
1294}
1295
1296impl fidl::Persistable for AudioConsumerSetRateRequest {}
1297
1298#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1299pub struct AudioConsumerStartRequest {
1300 pub flags: AudioConsumerStartFlags,
1301 pub reference_time: i64,
1302 pub media_time: i64,
1303}
1304
1305impl fidl::Persistable for AudioConsumerStartRequest {}
1306
1307#[derive(Clone, Debug, PartialEq)]
1308pub struct AudioConsumerWatchStatusResponse {
1309 pub status: AudioConsumerStatus,
1310}
1311
1312impl fidl::Persistable for AudioConsumerWatchStatusResponse {}
1313
1314#[derive(Clone, Debug, PartialEq)]
1315pub struct AudioCoreGetDbFromVolume2Request {
1316 pub usage: Usage2,
1317 pub volume: f32,
1318}
1319
1320impl fidl::Persistable for AudioCoreGetDbFromVolume2Request {}
1321
1322#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1323pub struct AudioCoreGetDbFromVolumeRequest {
1324 pub usage: Usage,
1325 pub volume: f32,
1326}
1327
1328impl fidl::Persistable for AudioCoreGetDbFromVolumeRequest {}
1329
1330#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1331pub struct AudioCoreGetDbFromVolumeResponse {
1332 pub gain_db: f32,
1333}
1334
1335impl fidl::Persistable for AudioCoreGetDbFromVolumeResponse {}
1336
1337#[derive(Clone, Debug, PartialEq)]
1338pub struct AudioCoreGetVolumeFromDb2Request {
1339 pub usage: Usage2,
1340 pub gain_db: f32,
1341}
1342
1343impl fidl::Persistable for AudioCoreGetVolumeFromDb2Request {}
1344
1345#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1346pub struct AudioCoreGetVolumeFromDbRequest {
1347 pub usage: Usage,
1348 pub gain_db: f32,
1349}
1350
1351impl fidl::Persistable for AudioCoreGetVolumeFromDbRequest {}
1352
1353#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1354pub struct AudioCoreGetVolumeFromDbResponse {
1355 pub volume: f32,
1356}
1357
1358impl fidl::Persistable for AudioCoreGetVolumeFromDbResponse {}
1359
1360#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1361pub struct AudioCoreSetCaptureUsageGain2Request {
1362 pub usage: AudioCaptureUsage2,
1363 pub gain_db: f32,
1364}
1365
1366impl fidl::Persistable for AudioCoreSetCaptureUsageGain2Request {}
1367
1368#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1369pub struct AudioCoreSetCaptureUsageGainRequest {
1370 pub usage: AudioCaptureUsage,
1371 pub gain_db: f32,
1372}
1373
1374impl fidl::Persistable for AudioCoreSetCaptureUsageGainRequest {}
1375
1376#[derive(Clone, Debug, PartialEq)]
1377pub struct AudioCoreSetInteraction2Request {
1378 pub active: Usage2,
1379 pub affected: Usage2,
1380 pub behavior: Behavior,
1381}
1382
1383impl fidl::Persistable for AudioCoreSetInteraction2Request {}
1384
1385#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1386pub struct AudioCoreSetInteractionRequest {
1387 pub active: Usage,
1388 pub affected: Usage,
1389 pub behavior: Behavior,
1390}
1391
1392impl fidl::Persistable for AudioCoreSetInteractionRequest {}
1393
1394#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1395pub struct AudioCoreSetRenderUsageGain2Request {
1396 pub usage: AudioRenderUsage2,
1397 pub gain_db: f32,
1398}
1399
1400impl fidl::Persistable for AudioCoreSetRenderUsageGain2Request {}
1401
1402#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1403pub struct AudioCoreSetRenderUsageGainRequest {
1404 pub usage: AudioRenderUsage,
1405 pub gain_db: f32,
1406}
1407
1408impl fidl::Persistable for AudioCoreSetRenderUsageGainRequest {}
1409
1410#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1411pub struct AudioCoreGetDbFromVolume2Response {
1412 pub gain_db: f32,
1413}
1414
1415impl fidl::Persistable for AudioCoreGetDbFromVolume2Response {}
1416
1417#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1418pub struct AudioCoreGetVolumeFromDb2Response {
1419 pub volume: f32,
1420}
1421
1422impl fidl::Persistable for AudioCoreGetVolumeFromDb2Response {}
1423
1424#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1425#[repr(C)]
1426pub struct AudioDeviceEnumeratorGetDeviceGainRequest {
1427 pub device_token: u64,
1428}
1429
1430impl fidl::Persistable for AudioDeviceEnumeratorGetDeviceGainRequest {}
1431
1432#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1433pub struct AudioDeviceEnumeratorGetDeviceGainResponse {
1434 pub device_token: u64,
1435 pub gain_info: AudioGainInfo,
1436}
1437
1438impl fidl::Persistable for AudioDeviceEnumeratorGetDeviceGainResponse {}
1439
1440#[derive(Clone, Debug, PartialEq, PartialOrd)]
1441pub struct AudioDeviceEnumeratorGetDevicesResponse {
1442 pub devices: Vec<AudioDeviceInfo>,
1443}
1444
1445impl fidl::Persistable for AudioDeviceEnumeratorGetDevicesResponse {}
1446
1447#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1448#[repr(C)]
1449pub struct AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
1450 pub old_default_token: u64,
1451 pub new_default_token: u64,
1452}
1453
1454impl fidl::Persistable for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {}
1455
1456#[derive(Clone, Debug, PartialEq, PartialOrd)]
1457pub struct AudioDeviceEnumeratorOnDeviceAddedRequest {
1458 pub device: AudioDeviceInfo,
1459}
1460
1461impl fidl::Persistable for AudioDeviceEnumeratorOnDeviceAddedRequest {}
1462
1463#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1464pub struct AudioDeviceEnumeratorOnDeviceGainChangedRequest {
1465 pub device_token: u64,
1466 pub gain_info: AudioGainInfo,
1467}
1468
1469impl fidl::Persistable for AudioDeviceEnumeratorOnDeviceGainChangedRequest {}
1470
1471#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1472#[repr(C)]
1473pub struct AudioDeviceEnumeratorOnDeviceRemovedRequest {
1474 pub device_token: u64,
1475}
1476
1477impl fidl::Persistable for AudioDeviceEnumeratorOnDeviceRemovedRequest {}
1478
1479#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1480pub struct AudioDeviceEnumeratorSetDeviceGainRequest {
1481 pub device_token: u64,
1482 pub gain_info: AudioGainInfo,
1483 pub valid_flags: AudioGainValidFlags,
1484}
1485
1486impl fidl::Persistable for AudioDeviceEnumeratorSetDeviceGainRequest {}
1487
1488#[derive(Clone, Debug, PartialEq, PartialOrd)]
1489pub struct AudioDeviceInfo {
1490 pub name: String,
1491 pub unique_id: String,
1492 pub token_id: u64,
1493 pub is_input: bool,
1494 pub gain_info: AudioGainInfo,
1495 pub is_default: bool,
1496}
1497
1498impl fidl::Persistable for AudioDeviceInfo {}
1499
1500#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1501pub struct AudioGainInfo {
1502 pub gain_db: f32,
1503 pub flags: AudioGainInfoFlags,
1504}
1505
1506impl fidl::Persistable for AudioGainInfo {}
1507
1508#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1509pub struct AudioRendererEnableMinLeadTimeEventsRequest {
1510 pub enabled: bool,
1511}
1512
1513impl fidl::Persistable for AudioRendererEnableMinLeadTimeEventsRequest {}
1514
1515#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1516#[repr(C)]
1517pub struct AudioRendererGetMinLeadTimeResponse {
1518 pub min_lead_time_nsec: i64,
1519}
1520
1521impl fidl::Persistable for AudioRendererGetMinLeadTimeResponse {}
1522
1523#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1524#[repr(C)]
1525pub struct AudioRendererOnMinLeadTimeChangedRequest {
1526 pub min_lead_time_nsec: i64,
1527}
1528
1529impl fidl::Persistable for AudioRendererOnMinLeadTimeChangedRequest {}
1530
1531#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1532#[repr(C)]
1533pub struct AudioRendererPauseResponse {
1534 pub reference_time: i64,
1535 pub media_time: i64,
1536}
1537
1538impl fidl::Persistable for AudioRendererPauseResponse {}
1539
1540#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1541#[repr(C)]
1542pub struct AudioRendererPlayNoReplyRequest {
1543 pub reference_time: i64,
1544 pub media_time: i64,
1545}
1546
1547impl fidl::Persistable for AudioRendererPlayNoReplyRequest {}
1548
1549#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1550#[repr(C)]
1551pub struct AudioRendererPlayRequest {
1552 pub reference_time: i64,
1553 pub media_time: i64,
1554}
1555
1556impl fidl::Persistable for AudioRendererPlayRequest {}
1557
1558#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1559#[repr(C)]
1560pub struct AudioRendererPlayResponse {
1561 pub reference_time: i64,
1562 pub media_time: i64,
1563}
1564
1565impl fidl::Persistable for AudioRendererPlayResponse {}
1566
1567#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1568pub struct AudioRendererSetPcmStreamTypeRequest {
1569 pub type_: AudioStreamType,
1570}
1571
1572impl fidl::Persistable for AudioRendererSetPcmStreamTypeRequest {}
1573
1574#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1575pub struct AudioRendererSetPtsContinuityThresholdRequest {
1576 pub threshold_seconds: f32,
1577}
1578
1579impl fidl::Persistable for AudioRendererSetPtsContinuityThresholdRequest {}
1580
1581#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1582#[repr(C)]
1583pub struct AudioRendererSetPtsUnitsRequest {
1584 pub tick_per_second_numerator: u32,
1585 pub tick_per_second_denominator: u32,
1586}
1587
1588impl fidl::Persistable for AudioRendererSetPtsUnitsRequest {}
1589
1590#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1591pub struct AudioRendererSetUsage2Request {
1592 pub usage2: AudioRenderUsage2,
1593}
1594
1595impl fidl::Persistable for AudioRendererSetUsage2Request {}
1596
1597#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1598pub struct AudioRendererSetUsageRequest {
1599 pub usage: AudioRenderUsage,
1600}
1601
1602impl fidl::Persistable for AudioRendererSetUsageRequest {}
1603
1604#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1606pub struct AudioStreamType {
1607 pub sample_format: AudioSampleFormat,
1608 pub channels: u32,
1609 pub frames_per_second: u32,
1610}
1611
1612impl fidl::Persistable for AudioStreamType {}
1613
1614#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1617pub struct Compression {
1618 pub type_: String,
1622 pub parameters: Option<Vec<u8>>,
1624}
1625
1626impl fidl::Persistable for Compression {}
1627
1628#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1635#[repr(C)]
1636pub struct EncryptionPattern {
1637 pub clear_blocks: u32,
1638 pub encrypted_blocks: u32,
1639}
1640
1641impl fidl::Persistable for EncryptionPattern {}
1642
1643#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1644pub struct Metadata {
1645 pub properties: Vec<Property>,
1646}
1647
1648impl fidl::Persistable for Metadata {}
1649
1650#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1657pub struct Parameter {
1658 pub scope: String,
1659 pub name: String,
1660 pub value: Value,
1661}
1662
1663impl fidl::Persistable for Parameter {}
1664
1665#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1669pub struct PcmFormat {
1670 pub pcm_mode: AudioPcmMode,
1671 pub bits_per_sample: u32,
1672 pub frames_per_second: u32,
1673 pub channel_map: Vec<AudioChannelId>,
1674}
1675
1676impl fidl::Persistable for PcmFormat {}
1677
1678#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1679#[repr(C)]
1680pub struct ProfileProviderRegisterHandlerWithCapacityResponse {
1681 pub period: i64,
1682 pub capacity: i64,
1683}
1684
1685impl fidl::Persistable for ProfileProviderRegisterHandlerWithCapacityResponse {}
1686
1687#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1688pub struct Property {
1689 pub label: String,
1690 pub value: String,
1691}
1692
1693impl fidl::Persistable for Property {}
1694
1695#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1703pub struct SbcEncoderSettings {
1704 pub sub_bands: SbcSubBands,
1705 pub allocation: SbcAllocation,
1706 pub block_count: SbcBlockCount,
1707 pub channel_mode: SbcChannelMode,
1708 pub bit_pool: u64,
1710}
1711
1712impl fidl::Persistable for SbcEncoderSettings {}
1713
1714#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1715#[repr(C)]
1716pub struct StreamBufferSetRemovePayloadBufferRequest {
1717 pub id: u32,
1718}
1719
1720impl fidl::Persistable for StreamBufferSetRemovePayloadBufferRequest {}
1721
1722#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1724#[repr(C)]
1725pub struct StreamPacket {
1726 pub pts: i64,
1729 pub payload_buffer_id: u32,
1736 pub payload_offset: u64,
1741 pub payload_size: u64,
1746 pub flags: u32,
1749 pub buffer_config: u64,
1757 pub stream_segment_id: u64,
1763}
1764
1765impl fidl::Persistable for StreamPacket {}
1766
1767#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1768pub struct StreamProcessorCloseCurrentStreamRequest {
1769 pub stream_lifetime_ordinal: u64,
1770 pub release_input_buffers: bool,
1771 pub release_output_buffers: bool,
1772}
1773
1774impl fidl::Persistable for StreamProcessorCloseCurrentStreamRequest {}
1775
1776#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1777#[repr(C)]
1778pub struct StreamProcessorCompleteOutputBufferPartialSettingsRequest {
1779 pub buffer_lifetime_ordinal: u64,
1780}
1781
1782impl fidl::Persistable for StreamProcessorCompleteOutputBufferPartialSettingsRequest {}
1783
1784#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1785#[repr(C)]
1786pub struct StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
1787 pub stream_lifetime_ordinal: u64,
1788}
1789
1790impl fidl::Persistable for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {}
1791
1792#[derive(Clone, Debug, PartialEq)]
1793pub struct StreamProcessorOnFreeInputPacketRequest {
1794 pub free_input_packet: PacketHeader,
1795}
1796
1797impl fidl::Persistable for StreamProcessorOnFreeInputPacketRequest {}
1798
1799#[derive(Clone, Debug, PartialEq)]
1800pub struct StreamProcessorOnInputConstraintsRequest {
1801 pub input_constraints: StreamBufferConstraints,
1802}
1803
1804impl fidl::Persistable for StreamProcessorOnInputConstraintsRequest {}
1805
1806#[derive(Clone, Debug, PartialEq)]
1807pub struct StreamProcessorOnOutputConstraintsRequest {
1808 pub output_config: StreamOutputConstraints,
1809}
1810
1811impl fidl::Persistable for StreamProcessorOnOutputConstraintsRequest {}
1812
1813#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1814pub struct StreamProcessorOnOutputEndOfStreamRequest {
1815 pub stream_lifetime_ordinal: u64,
1816 pub error_detected_before: bool,
1817}
1818
1819impl fidl::Persistable for StreamProcessorOnOutputEndOfStreamRequest {}
1820
1821#[derive(Clone, Debug, PartialEq)]
1822pub struct StreamProcessorOnOutputFormatRequest {
1823 pub output_format: StreamOutputFormat,
1824}
1825
1826impl fidl::Persistable for StreamProcessorOnOutputFormatRequest {}
1827
1828#[derive(Clone, Debug, PartialEq)]
1829pub struct StreamProcessorOnOutputPacketRequest {
1830 pub output_packet: Packet,
1831 pub error_detected_before: bool,
1832 pub error_detected_during: bool,
1833}
1834
1835impl fidl::Persistable for StreamProcessorOnOutputPacketRequest {}
1836
1837#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1838pub struct StreamProcessorOnStreamFailedRequest {
1839 pub stream_lifetime_ordinal: u64,
1840 pub error: StreamError,
1841}
1842
1843impl fidl::Persistable for StreamProcessorOnStreamFailedRequest {}
1844
1845#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1846#[repr(C)]
1847pub struct StreamProcessorQueueInputEndOfStreamRequest {
1848 pub stream_lifetime_ordinal: u64,
1849}
1850
1851impl fidl::Persistable for StreamProcessorQueueInputEndOfStreamRequest {}
1852
1853#[derive(Clone, Debug, PartialEq)]
1854pub struct StreamProcessorQueueInputFormatDetailsRequest {
1855 pub stream_lifetime_ordinal: u64,
1856 pub format_details: FormatDetails,
1857}
1858
1859impl fidl::Persistable for StreamProcessorQueueInputFormatDetailsRequest {}
1860
1861#[derive(Clone, Debug, PartialEq)]
1862pub struct StreamProcessorQueueInputPacketRequest {
1863 pub packet: Packet,
1864}
1865
1866impl fidl::Persistable for StreamProcessorQueueInputPacketRequest {}
1867
1868#[derive(Clone, Debug, PartialEq)]
1869pub struct StreamProcessorRecycleOutputPacketRequest {
1870 pub available_output_packet: PacketHeader,
1871}
1872
1873impl fidl::Persistable for StreamProcessorRecycleOutputPacketRequest {}
1874
1875#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1876#[repr(C)]
1877pub struct StreamSinkSendPacketNoReplyRequest {
1878 pub packet: StreamPacket,
1879}
1880
1881impl fidl::Persistable for StreamSinkSendPacketNoReplyRequest {}
1882
1883#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1884#[repr(C)]
1885pub struct StreamSinkSendPacketRequest {
1886 pub packet: StreamPacket,
1887}
1888
1889impl fidl::Persistable for StreamSinkSendPacketRequest {}
1890
1891#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1892#[repr(C)]
1893pub struct StreamSourceOnPacketProducedRequest {
1894 pub packet: StreamPacket,
1895}
1896
1897impl fidl::Persistable for StreamSourceOnPacketProducedRequest {}
1898
1899#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1900#[repr(C)]
1901pub struct StreamSourceReleasePacketRequest {
1902 pub packet: StreamPacket,
1903}
1904
1905impl fidl::Persistable for StreamSourceReleasePacketRequest {}
1906
1907#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1909pub struct StreamType {
1910 pub medium_specific: MediumSpecificStreamType,
1912 pub encoding: String,
1915 pub encoding_parameters: Option<Vec<u8>>,
1921}
1922
1923impl fidl::Persistable for StreamType {}
1924
1925#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1927pub struct SubpictureStreamType;
1928
1929impl fidl::Persistable for SubpictureStreamType {}
1930
1931#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1937#[repr(C)]
1938pub struct SubsampleEntry {
1939 pub clear_bytes: u32,
1940 pub encrypted_bytes: u32,
1941}
1942
1943impl fidl::Persistable for SubsampleEntry {}
1944
1945#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1947pub struct TextStreamType;
1948
1949impl fidl::Persistable for TextStreamType {}
1950
1951#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1987#[repr(C)]
1988pub struct TimelineFunction {
1989 pub subject_time: i64,
1991 pub reference_time: i64,
1993 pub subject_delta: u32,
1995 pub reference_delta: u32,
1998}
1999
2000impl fidl::Persistable for TimelineFunction {}
2001
2002#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
2003pub struct UsageGainListenerOnGainMuteChangedRequest {
2004 pub muted: bool,
2005 pub gain_dbfs: f32,
2006}
2007
2008impl fidl::Persistable for UsageGainListenerOnGainMuteChangedRequest {}
2009
2010#[derive(Clone, Debug, PartialEq)]
2011pub struct UsageWatcher2OnStateChangedRequest {
2012 pub usage: Usage2,
2013 pub state: UsageState,
2014}
2015
2016impl fidl::Persistable for UsageWatcher2OnStateChangedRequest {}
2017
2018#[derive(Clone, Debug, PartialEq)]
2019pub struct UsageWatcherOnStateChangedRequest {
2020 pub usage: Usage,
2021 pub state: UsageState,
2022}
2023
2024impl fidl::Persistable for UsageWatcherOnStateChangedRequest {}
2025
2026#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2028pub struct VideoStreamType {
2029 pub pixel_format: fidl_fuchsia_images__common::PixelFormat,
2030 pub color_space: ColorSpace,
2031 pub width: u32,
2033 pub height: u32,
2034 pub coded_width: u32,
2037 pub coded_height: u32,
2038 pub pixel_aspect_ratio_width: u32,
2041 pub pixel_aspect_ratio_height: u32,
2042 pub stride: u32,
2044}
2045
2046impl fidl::Persistable for VideoStreamType {}
2047
2048#[derive(Clone, Debug, PartialEq)]
2052pub struct VideoUncompressedFormat {
2053 pub image_format: fidl_fuchsia_sysmem__common::ImageFormat2,
2054 pub fourcc: u32,
2055 pub primary_width_pixels: u32,
2056 pub primary_height_pixels: u32,
2057 pub secondary_width_pixels: u32,
2058 pub secondary_height_pixels: u32,
2059 pub planar: bool,
2060 pub swizzled: bool,
2061 pub primary_line_stride_bytes: u32,
2062 pub secondary_line_stride_bytes: u32,
2063 pub primary_start_offset: u32,
2064 pub secondary_start_offset: u32,
2065 pub tertiary_start_offset: u32,
2066 pub primary_pixel_stride: u32,
2067 pub secondary_pixel_stride: u32,
2068 pub primary_display_width_pixels: u32,
2069 pub primary_display_height_pixels: u32,
2070 pub has_pixel_aspect_ratio: bool,
2071 pub pixel_aspect_ratio_width: u32,
2072 pub pixel_aspect_ratio_height: u32,
2073}
2074
2075impl fidl::Persistable for VideoUncompressedFormat {}
2076
2077#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2078pub struct Void;
2079
2080impl fidl::Persistable for Void {}
2081
2082#[derive(Clone, Debug, Default, PartialEq)]
2086pub struct AudioCompressedFormatCvsd {
2087 #[doc(hidden)]
2088 pub __source_breaking: fidl::marker::SourceBreaking,
2089}
2090
2091impl fidl::Persistable for AudioCompressedFormatCvsd {}
2092
2093#[derive(Clone, Debug, Default, PartialEq)]
2097pub struct AudioCompressedFormatLc3 {
2098 #[doc(hidden)]
2099 pub __source_breaking: fidl::marker::SourceBreaking,
2100}
2101
2102impl fidl::Persistable for AudioCompressedFormatLc3 {}
2103
2104#[derive(Clone, Debug, Default, PartialEq)]
2107pub struct AudioConsumerStatus {
2108 pub error: Option<AudioConsumerError>,
2110 pub presentation_timeline: Option<TimelineFunction>,
2118 pub min_lead_time: Option<u64>,
2123 pub max_lead_time: Option<u64>,
2128 #[doc(hidden)]
2129 pub __source_breaking: fidl::marker::SourceBreaking,
2130}
2131
2132impl fidl::Persistable for AudioConsumerStatus {}
2133
2134#[derive(Clone, Debug, Default, PartialEq)]
2138pub struct CvsdEncoderSettings {
2139 #[doc(hidden)]
2140 pub __source_breaking: fidl::marker::SourceBreaking,
2141}
2142
2143impl fidl::Persistable for CvsdEncoderSettings {}
2144
2145#[derive(Clone, Debug, Default, PartialEq)]
2151pub struct DecryptedFormat {
2152 pub ignore_this_field: Option<bool>,
2153 #[doc(hidden)]
2154 pub __source_breaking: fidl::marker::SourceBreaking,
2155}
2156
2157impl fidl::Persistable for DecryptedFormat {}
2158
2159#[derive(Clone, Debug, Default, PartialEq)]
2166pub struct EncryptedFormat {
2167 pub init_vector: Option<Vec<u8>>,
2175 pub subsamples: Option<Vec<SubsampleEntry>>,
2181 pub pattern: Option<EncryptionPattern>,
2189 pub scheme: Option<String>,
2199 pub key_id: Option<Vec<u8>>,
2206 #[doc(hidden)]
2207 pub __source_breaking: fidl::marker::SourceBreaking,
2208}
2209
2210impl fidl::Persistable for EncryptedFormat {}
2211
2212#[derive(Clone, Debug, Default, PartialEq)]
2217pub struct FormatDetails {
2218 pub format_details_version_ordinal: Option<u64>,
2219 pub mime_type: Option<String>,
2220 pub oob_bytes: Option<Vec<u8>>,
2221 pub domain: Option<DomainFormat>,
2222 pub pass_through_parameters: Option<Vec<Parameter>>,
2223 pub encoder_settings: Option<EncoderSettings>,
2228 pub timebase: Option<u64>,
2242 pub profile: Option<CodecProfile>,
2255 #[doc(hidden)]
2256 pub __source_breaking: fidl::marker::SourceBreaking,
2257}
2258
2259impl fidl::Persistable for FormatDetails {}
2260
2261#[derive(Clone, Debug, Default, PartialEq)]
2263pub struct H264EncoderSettings {
2264 pub bit_rate: Option<u32>,
2267 pub frame_rate: Option<u32>,
2270 pub gop_size: Option<u32>,
2274 pub variable_frame_rate: Option<bool>,
2277 pub min_frame_rate: Option<u32>,
2280 pub force_key_frame: Option<bool>,
2283 pub quantization_params: Option<H264QuantizationParameters>,
2287 #[doc(hidden)]
2288 pub __source_breaking: fidl::marker::SourceBreaking,
2289}
2290
2291impl fidl::Persistable for H264EncoderSettings {}
2292
2293#[derive(Clone, Debug, Default, PartialEq)]
2302pub struct H264QuantizationParameters {
2303 pub i_base: Option<u32>,
2305 pub i_min: Option<u32>,
2307 pub i_max: Option<u32>,
2309 pub p_base: Option<u32>,
2311 pub p_min: Option<u32>,
2313 pub p_max: Option<u32>,
2315 #[doc(hidden)]
2316 pub __source_breaking: fidl::marker::SourceBreaking,
2317}
2318
2319impl fidl::Persistable for H264QuantizationParameters {}
2320
2321#[derive(Clone, Debug, Default, PartialEq)]
2323pub struct HevcEncoderSettings {
2324 pub bit_rate: Option<u32>,
2327 pub frame_rate: Option<u32>,
2329 pub gop_size: Option<u32>,
2331 #[doc(hidden)]
2332 pub __source_breaking: fidl::marker::SourceBreaking,
2333}
2334
2335impl fidl::Persistable for HevcEncoderSettings {}
2336
2337#[derive(Clone, Debug, Default, PartialEq)]
2340pub struct InputAudioCapturerConfiguration {
2341 pub usage: Option<AudioCaptureUsage>,
2342 pub usage2: Option<AudioCaptureUsage2>,
2343 #[doc(hidden)]
2344 pub __source_breaking: fidl::marker::SourceBreaking,
2345}
2346
2347impl fidl::Persistable for InputAudioCapturerConfiguration {}
2348
2349#[derive(Clone, Debug, Default, PartialEq)]
2352pub struct Lc3EncoderSettings {
2353 pub nbytes: Option<u16>,
2358 pub frame_duration: Option<Lc3FrameDuration>,
2361 #[doc(hidden)]
2362 pub __source_breaking: fidl::marker::SourceBreaking,
2363}
2364
2365impl fidl::Persistable for Lc3EncoderSettings {}
2366
2367#[derive(Clone, Debug, Default, PartialEq)]
2370pub struct LoopbackAudioCapturerConfiguration {
2371 #[doc(hidden)]
2372 pub __source_breaking: fidl::marker::SourceBreaking,
2373}
2374
2375impl fidl::Persistable for LoopbackAudioCapturerConfiguration {}
2376
2377#[derive(Clone, Debug, Default, PartialEq)]
2380pub struct MSbcEncoderSettings {
2381 #[doc(hidden)]
2382 pub __source_breaking: fidl::marker::SourceBreaking,
2383}
2384
2385impl fidl::Persistable for MSbcEncoderSettings {}
2386
2387#[derive(Clone, Debug, Default, PartialEq)]
2404pub struct Packet {
2405 pub header: Option<PacketHeader>,
2406 pub buffer_index: Option<u32>,
2420 pub stream_lifetime_ordinal: Option<u64>,
2429 pub start_offset: Option<u32>,
2448 pub valid_length_bytes: Option<u32>,
2471 pub timestamp_ish: Option<u64>,
2491 pub start_access_unit: Option<bool>,
2502 pub known_end_access_unit: Option<bool>,
2514 pub key_frame: Option<bool>,
2518 #[doc(hidden)]
2519 pub __source_breaking: fidl::marker::SourceBreaking,
2520}
2521
2522impl fidl::Persistable for Packet {}
2523
2524#[derive(Clone, Debug, Default, PartialEq)]
2532pub struct PacketHeader {
2533 pub buffer_lifetime_ordinal: Option<u64>,
2546 pub packet_index: Option<u32>,
2566 #[doc(hidden)]
2567 pub __source_breaking: fidl::marker::SourceBreaking,
2568}
2569
2570impl fidl::Persistable for PacketHeader {}
2571
2572#[derive(Clone, Debug, Default, PartialEq)]
2585pub struct StreamBufferConstraints {
2586 pub buffer_constraints_version_ordinal: Option<u64>,
2601 pub default_settings: Option<StreamBufferSettings>,
2602 pub per_packet_buffer_bytes_min: Option<u32>,
2603 pub per_packet_buffer_bytes_recommended: Option<u32>,
2604 pub per_packet_buffer_bytes_max: Option<u32>,
2605 pub packet_count_for_server_min: Option<u32>,
2606 pub packet_count_for_server_recommended: Option<u32>,
2607 pub packet_count_for_server_recommended_max: Option<u32>,
2608 pub packet_count_for_server_max: Option<u32>,
2609 pub packet_count_for_client_min: Option<u32>,
2610 pub packet_count_for_client_max: Option<u32>,
2611 pub single_buffer_mode_allowed: Option<bool>,
2612 pub is_physically_contiguous_required: Option<bool>,
2613 #[doc(hidden)]
2614 pub __source_breaking: fidl::marker::SourceBreaking,
2615}
2616
2617impl fidl::Persistable for StreamBufferConstraints {}
2618
2619#[derive(Clone, Debug, Default, PartialEq)]
2622pub struct StreamBufferSettings {
2623 pub buffer_lifetime_ordinal: Option<u64>,
2624 pub buffer_constraints_version_ordinal: Option<u64>,
2625 pub packet_count_for_server: Option<u32>,
2626 pub packet_count_for_client: Option<u32>,
2627 pub per_packet_buffer_bytes: Option<u32>,
2628 pub single_buffer_mode: Option<bool>,
2629 #[doc(hidden)]
2630 pub __source_breaking: fidl::marker::SourceBreaking,
2631}
2632
2633impl fidl::Persistable for StreamBufferSettings {}
2634
2635#[derive(Clone, Debug, Default, PartialEq)]
2638pub struct StreamOutputConstraints {
2639 pub stream_lifetime_ordinal: Option<u64>,
2653 pub buffer_constraints_action_required: Option<bool>,
2682 pub buffer_constraints: Option<StreamBufferConstraints>,
2683 #[doc(hidden)]
2684 pub __source_breaking: fidl::marker::SourceBreaking,
2685}
2686
2687impl fidl::Persistable for StreamOutputConstraints {}
2688
2689#[derive(Clone, Debug, Default, PartialEq)]
2690pub struct StreamOutputFormat {
2691 pub stream_lifetime_ordinal: Option<u64>,
2704 pub format_details: Option<FormatDetails>,
2761 #[doc(hidden)]
2762 pub __source_breaking: fidl::marker::SourceBreaking,
2763}
2764
2765impl fidl::Persistable for StreamOutputFormat {}
2766
2767#[derive(Clone, Debug, Default, PartialEq)]
2770pub struct UsageStateDucked {
2771 #[doc(hidden)]
2772 pub __source_breaking: fidl::marker::SourceBreaking,
2773}
2774
2775impl fidl::Persistable for UsageStateDucked {}
2776
2777#[derive(Clone, Debug, Default, PartialEq)]
2780pub struct UsageStateMuted {
2781 #[doc(hidden)]
2782 pub __source_breaking: fidl::marker::SourceBreaking,
2783}
2784
2785impl fidl::Persistable for UsageStateMuted {}
2786
2787#[derive(Clone, Debug, Default, PartialEq)]
2789pub struct UsageStateUnadjusted {
2790 #[doc(hidden)]
2791 pub __source_breaking: fidl::marker::SourceBreaking,
2792}
2793
2794impl fidl::Persistable for UsageStateUnadjusted {}
2795
2796#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2797pub enum AacBitRate {
2798 Constant(AacConstantBitRate),
2799 Variable(AacVariableBitRate),
2800}
2801
2802impl AacBitRate {
2803 #[inline]
2804 pub fn ordinal(&self) -> u64 {
2805 match *self {
2806 Self::Constant(_) => 1,
2807 Self::Variable(_) => 2,
2808 }
2809 }
2810}
2811
2812impl fidl::Persistable for AacBitRate {}
2813
2814#[derive(Clone, Debug)]
2815pub enum AacTransport {
2816 Raw(AacTransportRaw),
2817 Latm(AacTransportLatm),
2818 Adts(AacTransportAdts),
2819 #[doc(hidden)]
2820 __SourceBreaking {
2821 unknown_ordinal: u64,
2822 },
2823}
2824
2825#[macro_export]
2827macro_rules! AacTransportUnknown {
2828 () => {
2829 _
2830 };
2831}
2832
2833impl PartialEq for AacTransport {
2835 fn eq(&self, other: &Self) -> bool {
2836 match (self, other) {
2837 (Self::Raw(x), Self::Raw(y)) => *x == *y,
2838 (Self::Latm(x), Self::Latm(y)) => *x == *y,
2839 (Self::Adts(x), Self::Adts(y)) => *x == *y,
2840 _ => false,
2841 }
2842 }
2843}
2844
2845impl AacTransport {
2846 #[inline]
2847 pub fn ordinal(&self) -> u64 {
2848 match *self {
2849 Self::Raw(_) => 1,
2850 Self::Latm(_) => 2,
2851 Self::Adts(_) => 3,
2852 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2853 }
2854 }
2855
2856 #[inline]
2857 pub fn unknown_variant_for_testing() -> Self {
2858 Self::__SourceBreaking { unknown_ordinal: 0 }
2859 }
2860
2861 #[inline]
2862 pub fn is_unknown(&self) -> bool {
2863 match self {
2864 Self::__SourceBreaking { .. } => true,
2865 _ => false,
2866 }
2867 }
2868}
2869
2870impl fidl::Persistable for AacTransport {}
2871
2872#[derive(Clone, Debug, PartialEq)]
2874pub enum AudioCapturerConfiguration {
2875 Loopback(LoopbackAudioCapturerConfiguration),
2876 Input(InputAudioCapturerConfiguration),
2877}
2878
2879impl AudioCapturerConfiguration {
2880 #[inline]
2881 pub fn ordinal(&self) -> u64 {
2882 match *self {
2883 Self::Loopback(_) => 1,
2884 Self::Input(_) => 2,
2885 }
2886 }
2887}
2888
2889impl fidl::Persistable for AudioCapturerConfiguration {}
2890
2891#[derive(Clone, Debug)]
2892pub enum AudioCompressedFormat {
2893 Aac(AudioCompressedFormatAac),
2894 Sbc(AudioCompressedFormatSbc),
2895 Cvsd(AudioCompressedFormatCvsd),
2896 Lc3(AudioCompressedFormatLc3),
2897 #[doc(hidden)]
2898 __SourceBreaking {
2899 unknown_ordinal: u64,
2900 },
2901}
2902
2903#[macro_export]
2905macro_rules! AudioCompressedFormatUnknown {
2906 () => {
2907 _
2908 };
2909}
2910
2911impl PartialEq for AudioCompressedFormat {
2913 fn eq(&self, other: &Self) -> bool {
2914 match (self, other) {
2915 (Self::Aac(x), Self::Aac(y)) => *x == *y,
2916 (Self::Sbc(x), Self::Sbc(y)) => *x == *y,
2917 (Self::Cvsd(x), Self::Cvsd(y)) => *x == *y,
2918 (Self::Lc3(x), Self::Lc3(y)) => *x == *y,
2919 _ => false,
2920 }
2921 }
2922}
2923
2924impl AudioCompressedFormat {
2925 #[inline]
2926 pub fn ordinal(&self) -> u64 {
2927 match *self {
2928 Self::Aac(_) => 1,
2929 Self::Sbc(_) => 2,
2930 Self::Cvsd(_) => 3,
2931 Self::Lc3(_) => 4,
2932 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2933 }
2934 }
2935
2936 #[inline]
2937 pub fn unknown_variant_for_testing() -> Self {
2938 Self::__SourceBreaking { unknown_ordinal: 0 }
2939 }
2940
2941 #[inline]
2942 pub fn is_unknown(&self) -> bool {
2943 match self {
2944 Self::__SourceBreaking { .. } => true,
2945 _ => false,
2946 }
2947 }
2948}
2949
2950impl fidl::Persistable for AudioCompressedFormat {}
2951
2952#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2954pub enum AudioConsumerError {
2955 PlaceHolder(Void),
2956}
2957
2958impl AudioConsumerError {
2959 #[inline]
2960 pub fn ordinal(&self) -> u64 {
2961 match *self {
2962 Self::PlaceHolder(_) => 1,
2963 }
2964 }
2965}
2966
2967impl fidl::Persistable for AudioConsumerError {}
2968
2969#[derive(Clone, Debug, PartialEq)]
2971pub enum AudioFormat {
2972 Compressed(AudioCompressedFormat),
2973 Uncompressed(AudioUncompressedFormat),
2974}
2975
2976impl AudioFormat {
2977 #[inline]
2978 pub fn ordinal(&self) -> u64 {
2979 match *self {
2980 Self::Compressed(_) => 1,
2981 Self::Uncompressed(_) => 2,
2982 }
2983 }
2984}
2985
2986impl fidl::Persistable for AudioFormat {}
2987
2988#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2990pub enum AudioUncompressedFormat {
2991 Pcm(PcmFormat),
2992}
2993
2994impl AudioUncompressedFormat {
2995 #[inline]
2996 pub fn ordinal(&self) -> u64 {
2997 match *self {
2998 Self::Pcm(_) => 1,
2999 }
3000 }
3001}
3002
3003impl fidl::Persistable for AudioUncompressedFormat {}
3004
3005#[derive(Clone, Debug)]
3009pub enum CryptoFormat {
3010 Encrypted(EncryptedFormat),
3011 Decrypted(DecryptedFormat),
3012 #[doc(hidden)]
3013 __SourceBreaking {
3014 unknown_ordinal: u64,
3015 },
3016}
3017
3018#[macro_export]
3020macro_rules! CryptoFormatUnknown {
3021 () => {
3022 _
3023 };
3024}
3025
3026impl PartialEq for CryptoFormat {
3028 fn eq(&self, other: &Self) -> bool {
3029 match (self, other) {
3030 (Self::Encrypted(x), Self::Encrypted(y)) => *x == *y,
3031 (Self::Decrypted(x), Self::Decrypted(y)) => *x == *y,
3032 _ => false,
3033 }
3034 }
3035}
3036
3037impl CryptoFormat {
3038 #[inline]
3039 pub fn ordinal(&self) -> u64 {
3040 match *self {
3041 Self::Encrypted(_) => 1,
3042 Self::Decrypted(_) => 2,
3043 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3044 }
3045 }
3046
3047 #[inline]
3048 pub fn unknown_variant_for_testing() -> Self {
3049 Self::__SourceBreaking { unknown_ordinal: 0 }
3050 }
3051
3052 #[inline]
3053 pub fn is_unknown(&self) -> bool {
3054 match self {
3055 Self::__SourceBreaking { .. } => true,
3056 _ => false,
3057 }
3058 }
3059}
3060
3061impl fidl::Persistable for CryptoFormat {}
3062
3063#[derive(Clone, Debug, PartialEq)]
3065pub enum DomainFormat {
3066 Audio(AudioFormat),
3067 Video(VideoFormat),
3068 Crypto(CryptoFormat),
3069}
3070
3071impl DomainFormat {
3072 #[inline]
3073 pub fn ordinal(&self) -> u64 {
3074 match *self {
3075 Self::Audio(_) => 1,
3076 Self::Video(_) => 2,
3077 Self::Crypto(_) => 3,
3078 }
3079 }
3080}
3081
3082impl fidl::Persistable for DomainFormat {}
3083
3084#[derive(Clone, Debug)]
3087pub enum EncoderSettings {
3088 Sbc(SbcEncoderSettings),
3089 Aac(AacEncoderSettings),
3090 H264(H264EncoderSettings),
3091 Hevc(HevcEncoderSettings),
3092 Cvsd(CvsdEncoderSettings),
3093 Lc3(Lc3EncoderSettings),
3094 Msbc(MSbcEncoderSettings),
3095 #[doc(hidden)]
3096 __SourceBreaking {
3097 unknown_ordinal: u64,
3098 },
3099}
3100
3101#[macro_export]
3103macro_rules! EncoderSettingsUnknown {
3104 () => {
3105 _
3106 };
3107}
3108
3109impl PartialEq for EncoderSettings {
3111 fn eq(&self, other: &Self) -> bool {
3112 match (self, other) {
3113 (Self::Sbc(x), Self::Sbc(y)) => *x == *y,
3114 (Self::Aac(x), Self::Aac(y)) => *x == *y,
3115 (Self::H264(x), Self::H264(y)) => *x == *y,
3116 (Self::Hevc(x), Self::Hevc(y)) => *x == *y,
3117 (Self::Cvsd(x), Self::Cvsd(y)) => *x == *y,
3118 (Self::Lc3(x), Self::Lc3(y)) => *x == *y,
3119 (Self::Msbc(x), Self::Msbc(y)) => *x == *y,
3120 _ => false,
3121 }
3122 }
3123}
3124
3125impl EncoderSettings {
3126 #[inline]
3127 pub fn ordinal(&self) -> u64 {
3128 match *self {
3129 Self::Sbc(_) => 1,
3130 Self::Aac(_) => 2,
3131 Self::H264(_) => 3,
3132 Self::Hevc(_) => 4,
3133 Self::Cvsd(_) => 5,
3134 Self::Lc3(_) => 6,
3135 Self::Msbc(_) => 7,
3136 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3137 }
3138 }
3139
3140 #[inline]
3141 pub fn unknown_variant_for_testing() -> Self {
3142 Self::__SourceBreaking { unknown_ordinal: 0 }
3143 }
3144
3145 #[inline]
3146 pub fn is_unknown(&self) -> bool {
3147 match self {
3148 Self::__SourceBreaking { .. } => true,
3149 _ => false,
3150 }
3151 }
3152}
3153
3154impl fidl::Persistable for EncoderSettings {}
3155
3156#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3158pub enum MediumSpecificStreamType {
3159 Audio(AudioStreamType),
3160 Video(VideoStreamType),
3161 Text(TextStreamType),
3162 Subpicture(SubpictureStreamType),
3163}
3164
3165impl MediumSpecificStreamType {
3166 #[inline]
3167 pub fn ordinal(&self) -> u64 {
3168 match *self {
3169 Self::Audio(_) => 1,
3170 Self::Video(_) => 2,
3171 Self::Text(_) => 3,
3172 Self::Subpicture(_) => 4,
3173 }
3174 }
3175}
3176
3177impl fidl::Persistable for MediumSpecificStreamType {}
3178
3179#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3180pub enum Usage {
3181 RenderUsage(AudioRenderUsage),
3182 CaptureUsage(AudioCaptureUsage),
3183}
3184
3185impl Usage {
3186 #[inline]
3187 pub fn ordinal(&self) -> u64 {
3188 match *self {
3189 Self::RenderUsage(_) => 1,
3190 Self::CaptureUsage(_) => 2,
3191 }
3192 }
3193}
3194
3195impl fidl::Persistable for Usage {}
3196
3197#[derive(Clone, Debug)]
3198pub enum Usage2 {
3199 RenderUsage(AudioRenderUsage2),
3200 CaptureUsage(AudioCaptureUsage2),
3201 #[doc(hidden)]
3202 __SourceBreaking {
3203 unknown_ordinal: u64,
3204 },
3205}
3206
3207#[macro_export]
3209macro_rules! Usage2Unknown {
3210 () => {
3211 _
3212 };
3213}
3214
3215impl PartialEq for Usage2 {
3217 fn eq(&self, other: &Self) -> bool {
3218 match (self, other) {
3219 (Self::RenderUsage(x), Self::RenderUsage(y)) => *x == *y,
3220 (Self::CaptureUsage(x), Self::CaptureUsage(y)) => *x == *y,
3221 _ => false,
3222 }
3223 }
3224}
3225
3226impl Usage2 {
3227 #[inline]
3228 pub fn ordinal(&self) -> u64 {
3229 match *self {
3230 Self::RenderUsage(_) => 1,
3231 Self::CaptureUsage(_) => 2,
3232 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3233 }
3234 }
3235
3236 #[inline]
3237 pub fn unknown_variant_for_testing() -> Self {
3238 Self::__SourceBreaking { unknown_ordinal: 0 }
3239 }
3240
3241 #[inline]
3242 pub fn is_unknown(&self) -> bool {
3243 match self {
3244 Self::__SourceBreaking { .. } => true,
3245 _ => false,
3246 }
3247 }
3248}
3249
3250impl fidl::Persistable for Usage2 {}
3251
3252#[derive(Clone, Debug)]
3254pub enum UsageState {
3255 Unadjusted(UsageStateUnadjusted),
3256 Ducked(UsageStateDucked),
3257 Muted(UsageStateMuted),
3258 #[doc(hidden)]
3259 __SourceBreaking {
3260 unknown_ordinal: u64,
3261 },
3262}
3263
3264#[macro_export]
3266macro_rules! UsageStateUnknown {
3267 () => {
3268 _
3269 };
3270}
3271
3272impl PartialEq for UsageState {
3274 fn eq(&self, other: &Self) -> bool {
3275 match (self, other) {
3276 (Self::Unadjusted(x), Self::Unadjusted(y)) => *x == *y,
3277 (Self::Ducked(x), Self::Ducked(y)) => *x == *y,
3278 (Self::Muted(x), Self::Muted(y)) => *x == *y,
3279 _ => false,
3280 }
3281 }
3282}
3283
3284impl UsageState {
3285 #[inline]
3286 pub fn ordinal(&self) -> u64 {
3287 match *self {
3288 Self::Unadjusted(_) => 1,
3289 Self::Ducked(_) => 2,
3290 Self::Muted(_) => 3,
3291 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3292 }
3293 }
3294
3295 #[inline]
3296 pub fn unknown_variant_for_testing() -> Self {
3297 Self::__SourceBreaking { unknown_ordinal: 0 }
3298 }
3299
3300 #[inline]
3301 pub fn is_unknown(&self) -> bool {
3302 match self {
3303 Self::__SourceBreaking { .. } => true,
3304 _ => false,
3305 }
3306 }
3307}
3308
3309impl fidl::Persistable for UsageState {}
3310
3311#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3315pub enum Value {
3316 BoolValue(bool),
3317 Uint64Value(u64),
3318 Int64Value(i64),
3319 StringValue(String),
3320 BytesValue(Vec<u8>),
3321}
3322
3323impl Value {
3324 #[inline]
3325 pub fn ordinal(&self) -> u64 {
3326 match *self {
3327 Self::BoolValue(_) => 1,
3328 Self::Uint64Value(_) => 2,
3329 Self::Int64Value(_) => 3,
3330 Self::StringValue(_) => 4,
3331 Self::BytesValue(_) => 5,
3332 }
3333 }
3334}
3335
3336impl fidl::Persistable for Value {}
3337
3338#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3342pub enum VideoCompressedFormat {
3343 TempFieldTodoRemove(u32),
3344}
3345
3346impl VideoCompressedFormat {
3347 #[inline]
3348 pub fn ordinal(&self) -> u64 {
3349 match *self {
3350 Self::TempFieldTodoRemove(_) => 1,
3351 }
3352 }
3353}
3354
3355impl fidl::Persistable for VideoCompressedFormat {}
3356
3357#[derive(Clone, Debug, PartialEq)]
3363pub enum VideoFormat {
3364 Compressed(VideoCompressedFormat),
3365 Uncompressed(VideoUncompressedFormat),
3366}
3367
3368impl VideoFormat {
3369 #[inline]
3370 pub fn ordinal(&self) -> u64 {
3371 match *self {
3372 Self::Compressed(_) => 1,
3373 Self::Uncompressed(_) => 2,
3374 }
3375 }
3376}
3377
3378impl fidl::Persistable for VideoFormat {}
3379
3380pub mod activity_reporter_ordinals {
3381 pub const WATCH_RENDER_ACTIVITY: u64 = 0x2974e9f5880b2f1f;
3382 pub const WATCH_RENDER_ACTIVITY2: u64 = 0x484236fc11b363e6;
3383 pub const WATCH_CAPTURE_ACTIVITY: u64 = 0x70e7038e9658e128;
3384 pub const WATCH_CAPTURE_ACTIVITY2: u64 = 0x3d137e0364f9d550;
3385}
3386
3387pub mod audio_ordinals {
3388 pub const CREATE_AUDIO_RENDERER: u64 = 0x572f413566fd58f1;
3389 pub const CREATE_AUDIO_CAPTURER: u64 = 0x44660fc63a6202f;
3390}
3391
3392pub mod audio_capturer_ordinals {
3393 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3394 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3395 pub const ON_PACKET_PRODUCED: u64 = 0x6bbe69746a3c8bd9;
3396 pub const ON_END_OF_STREAM: u64 = 0x550e69b41d03e2c2;
3397 pub const RELEASE_PACKET: u64 = 0x7a7b57f0f7d9e4bb;
3398 pub const DISCARD_ALL_PACKETS: u64 = 0x27afd605e97b09d2;
3399 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x35f9d721e905b831;
3400 pub const SET_PCM_STREAM_TYPE: u64 = 0x1531ea9ea2c852cd;
3401 pub const CAPTURE_AT: u64 = 0x784e25df72cea780;
3402 pub const START_ASYNC_CAPTURE: u64 = 0x7768adbb1ccfd7a6;
3403 pub const STOP_ASYNC_CAPTURE: u64 = 0x5bfc8790a8cef8cb;
3404 pub const STOP_ASYNC_CAPTURE_NO_REPLY: u64 = 0x33223cb2962c95e3;
3405 pub const BIND_GAIN_CONTROL: u64 = 0x658a6a17ddb3a8e0;
3406 pub const GET_REFERENCE_CLOCK: u64 = 0x50d037aa5a4b4d71;
3407 pub const SET_REFERENCE_CLOCK: u64 = 0x732b2c496d521bcf;
3408 pub const SET_USAGE: u64 = 0x42a16f392bd21b25;
3409 pub const SET_USAGE2: u64 = 0x7a73e251b8d2382b;
3410 pub const GET_STREAM_TYPE: u64 = 0x5dcaaa670b433088;
3411}
3412
3413pub mod audio_consumer_ordinals {
3414 pub const CREATE_STREAM_SINK: u64 = 0x525b3b97fdf7d884;
3415 pub const ON_END_OF_STREAM: u64 = 0x53a64e6d0e8f8a20;
3416 pub const START: u64 = 0x4fdbd44b3f2a3a3c;
3417 pub const STOP: u64 = 0x3d46c3741686c40d;
3418 pub const SET_RATE: u64 = 0x45342b73968bfafe;
3419 pub const BIND_VOLUME_CONTROL: u64 = 0x6f1b01fd887f5748;
3420 pub const WATCH_STATUS: u64 = 0x35cf702c721e2cc6;
3421}
3422
3423pub mod audio_core_ordinals {
3424 pub const CREATE_AUDIO_RENDERER: u64 = 0x2ac9beba47f83435;
3425 pub const CREATE_AUDIO_CAPTURER_WITH_CONFIGURATION: u64 = 0x459de383b0d76d97;
3426 pub const CREATE_AUDIO_CAPTURER: u64 = 0x787db169df99aed0;
3427 pub const SET_RENDER_USAGE_GAIN: u64 = 0x48097f45f6e2b8e7;
3428 pub const SET_RENDER_USAGE_GAIN2: u64 = 0x779b1531dc9e64f4;
3429 pub const SET_CAPTURE_USAGE_GAIN: u64 = 0x457d29217d4ea248;
3430 pub const SET_CAPTURE_USAGE_GAIN2: u64 = 0x15065ee308f44af0;
3431 pub const BIND_USAGE_VOLUME_CONTROL: u64 = 0x7225be116aadc137;
3432 pub const BIND_USAGE_VOLUME_CONTROL2: u64 = 0x729dff93019d055;
3433 pub const GET_VOLUME_FROM_DB: u64 = 0x50e3ca45509770bf;
3434 pub const GET_VOLUME_FROM_DB2: u64 = 0x165c811091ef99da;
3435 pub const GET_DB_FROM_VOLUME: u64 = 0x3e8eec27dd5a8bda;
3436 pub const GET_DB_FROM_VOLUME2: u64 = 0x5f421a8ebf265bf3;
3437 pub const SET_INTERACTION: u64 = 0x7bfed14345ece7b7;
3438 pub const SET_INTERACTION2: u64 = 0x7226c7c6e6edc62f;
3439 pub const RESET_INTERACTIONS: u64 = 0x65bd94d9d0a28b5e;
3440 pub const LOAD_DEFAULTS: u64 = 0x54a0bebca85f6b31;
3441}
3442
3443pub mod audio_device_enumerator_ordinals {
3444 pub const GET_DEVICES: u64 = 0x4ce1aa218aeb12a6;
3445 pub const ON_DEVICE_ADDED: u64 = 0xe0fbe40057c4b44;
3446 pub const ON_DEVICE_REMOVED: u64 = 0x6f3b7574463d9ff8;
3447 pub const ON_DEVICE_GAIN_CHANGED: u64 = 0x14aefcbbb076b0e9;
3448 pub const ON_DEFAULT_DEVICE_CHANGED: u64 = 0x16357b42d4c16e11;
3449 pub const GET_DEVICE_GAIN: u64 = 0x25dd4723403c414b;
3450 pub const SET_DEVICE_GAIN: u64 = 0x5bdabc8ebe83591;
3451 pub const ADD_DEVICE_BY_CHANNEL: u64 = 0x72cdbada4d70ed67;
3452}
3453
3454pub mod audio_renderer_ordinals {
3455 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3456 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3457 pub const SEND_PACKET: u64 = 0x67cddd607442775f;
3458 pub const SEND_PACKET_NO_REPLY: u64 = 0x8d9b8b413ceba9d;
3459 pub const END_OF_STREAM: u64 = 0x6180fd6f7e793b71;
3460 pub const DISCARD_ALL_PACKETS: u64 = 0x6f4dad7af2917665;
3461 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x50d36d0d23081bc4;
3462 pub const BIND_GAIN_CONTROL: u64 = 0x293f5c7f8fba2bdc;
3463 pub const SET_PTS_UNITS: u64 = 0xf68cd108785a27c;
3464 pub const SET_PTS_CONTINUITY_THRESHOLD: u64 = 0x2849ba571d1971ba;
3465 pub const GET_REFERENCE_CLOCK: u64 = 0x2f7a7f011a172f7e;
3466 pub const SET_REFERENCE_CLOCK: u64 = 0x39acd05d832b5fed;
3467 pub const SET_USAGE: u64 = 0x3994bd23b55a733e;
3468 pub const SET_USAGE2: u64 = 0x2904035c7132b103;
3469 pub const SET_PCM_STREAM_TYPE: u64 = 0x27aa715d8901fa19;
3470 pub const ENABLE_MIN_LEAD_TIME_EVENTS: u64 = 0x62808dfad72bf890;
3471 pub const ON_MIN_LEAD_TIME_CHANGED: u64 = 0x4feff7d278978c4e;
3472 pub const GET_MIN_LEAD_TIME: u64 = 0x1cf3c3ecd8fec26b;
3473 pub const PLAY: u64 = 0x3c0162db084f74a3;
3474 pub const PLAY_NO_REPLY: u64 = 0x1b7fe832b68c22ef;
3475 pub const PAUSE: u64 = 0x41d557588d93d153;
3476 pub const PAUSE_NO_REPLY: u64 = 0x24cc45d4f3855ab;
3477}
3478
3479pub mod profile_provider_ordinals {
3480 pub const REGISTER_HANDLER_WITH_CAPACITY: u64 = 0x60459ecef7458176;
3481 pub const UNREGISTER_HANDLER: u64 = 0x724d9d5fd8ef544c;
3482 pub const REGISTER_MEMORY_RANGE: u64 = 0x2f509d3523e9562d;
3483 pub const UNREGISTER_MEMORY_RANGE: u64 = 0x2dc313d6aa81ad27;
3484}
3485
3486pub mod session_audio_consumer_factory_ordinals {
3487 pub const CREATE_AUDIO_CONSUMER: u64 = 0x6fab96f988e7d7fb;
3488}
3489
3490pub mod simple_stream_sink_ordinals {
3491 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3492 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3493 pub const SEND_PACKET: u64 = 0x67cddd607442775f;
3494 pub const SEND_PACKET_NO_REPLY: u64 = 0x8d9b8b413ceba9d;
3495 pub const END_OF_STREAM: u64 = 0x6180fd6f7e793b71;
3496 pub const DISCARD_ALL_PACKETS: u64 = 0x6f4dad7af2917665;
3497 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x50d36d0d23081bc4;
3498}
3499
3500pub mod stream_buffer_set_ordinals {
3501 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3502 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3503}
3504
3505pub mod stream_processor_ordinals {
3506 pub const ENABLE_ON_STREAM_FAILED: u64 = 0x3940929617dbf02b;
3507 pub const ON_STREAM_FAILED: u64 = 0x77ccf70bb061cf8e;
3508 pub const ON_INPUT_CONSTRAINTS: u64 = 0x211da9966a8ca0;
3509 pub const SET_INPUT_BUFFER_PARTIAL_SETTINGS: u64 = 0xb02e0663a40e4c4;
3510 pub const ON_OUTPUT_CONSTRAINTS: u64 = 0x40d8234504c170f3;
3511 pub const ON_OUTPUT_FORMAT: u64 = 0x131b77ae120360bc;
3512 pub const SET_OUTPUT_BUFFER_PARTIAL_SETTINGS: u64 = 0x118bb8c819a7bbbb;
3513 pub const COMPLETE_OUTPUT_BUFFER_PARTIAL_SETTINGS: u64 = 0x50529e5c680ae3ab;
3514 pub const FLUSH_END_OF_STREAM_AND_CLOSE_STREAM: u64 = 0x2b62c3e26d0667e6;
3515 pub const CLOSE_CURRENT_STREAM: u64 = 0x1d8a67522170ca07;
3516 pub const SYNC: u64 = 0x4b3e44300b0ec6aa;
3517 pub const ON_OUTPUT_PACKET: u64 = 0x5c2029be1090ce93;
3518 pub const RECYCLE_OUTPUT_PACKET: u64 = 0x32763632b94e0bd5;
3519 pub const ON_OUTPUT_END_OF_STREAM: u64 = 0x3bb65d237cfa50e6;
3520 pub const QUEUE_INPUT_FORMAT_DETAILS: u64 = 0x170dc0979d52231;
3521 pub const QUEUE_INPUT_PACKET: u64 = 0x47173d2652d9df3b;
3522 pub const ON_FREE_INPUT_PACKET: u64 = 0xeef799b28708bbd;
3523 pub const QUEUE_INPUT_END_OF_STREAM: u64 = 0x2051b6ad00f20b37;
3524}
3525
3526pub mod stream_sink_ordinals {
3527 pub const SEND_PACKET: u64 = 0x67cddd607442775f;
3528 pub const SEND_PACKET_NO_REPLY: u64 = 0x8d9b8b413ceba9d;
3529 pub const END_OF_STREAM: u64 = 0x6180fd6f7e793b71;
3530 pub const DISCARD_ALL_PACKETS: u64 = 0x6f4dad7af2917665;
3531 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x50d36d0d23081bc4;
3532}
3533
3534pub mod stream_source_ordinals {
3535 pub const ON_PACKET_PRODUCED: u64 = 0x6bbe69746a3c8bd9;
3536 pub const ON_END_OF_STREAM: u64 = 0x550e69b41d03e2c2;
3537 pub const RELEASE_PACKET: u64 = 0x7a7b57f0f7d9e4bb;
3538 pub const DISCARD_ALL_PACKETS: u64 = 0x27afd605e97b09d2;
3539 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x35f9d721e905b831;
3540}
3541
3542pub mod usage2_audio_consumer_factory_ordinals {
3543 pub const CREATE_AUDIO_CONSUMER: u64 = 0x767722302a171873;
3544}
3545
3546pub mod usage_audio_consumer_factory_ordinals {
3547 pub const CREATE_AUDIO_CONSUMER: u64 = 0x4d975ca9b8f625a3;
3548}
3549
3550pub mod usage_gain_listener_ordinals {
3551 pub const ON_GAIN_MUTE_CHANGED: u64 = 0x681570258eac3a8d;
3552}
3553
3554pub mod usage_gain_reporter_ordinals {
3555 pub const REGISTER_LISTENER: u64 = 0x767107c168c226af;
3556 pub const REGISTER_LISTENER2: u64 = 0x760a8e1c5873629c;
3557}
3558
3559pub mod usage_reporter_ordinals {
3560 pub const WATCH: u64 = 0x769e6fb17075c959;
3561 pub const WATCH2: u64 = 0x4a43c4c82f5d8ce8;
3562}
3563
3564pub mod usage_watcher_ordinals {
3565 pub const ON_STATE_CHANGED: u64 = 0x5b955c5768ec75c5;
3566}
3567
3568pub mod usage_watcher2_ordinals {
3569 pub const ON_STATE_CHANGED: u64 = 0xca31a8b13c324d4;
3570}
3571
3572mod internal {
3573 use super::*;
3574 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStartFlags {
3575 type Owned = Self;
3576
3577 #[inline(always)]
3578 fn inline_align(_context: fidl::encoding::Context) -> usize {
3579 4
3580 }
3581
3582 #[inline(always)]
3583 fn inline_size(_context: fidl::encoding::Context) -> usize {
3584 4
3585 }
3586 }
3587
3588 impl fidl::encoding::ValueTypeMarker for AudioConsumerStartFlags {
3589 type Borrowed<'a> = Self;
3590 #[inline(always)]
3591 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3592 *value
3593 }
3594 }
3595
3596 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3597 for AudioConsumerStartFlags
3598 {
3599 #[inline]
3600 unsafe fn encode(
3601 self,
3602 encoder: &mut fidl::encoding::Encoder<'_, D>,
3603 offset: usize,
3604 _depth: fidl::encoding::Depth,
3605 ) -> fidl::Result<()> {
3606 encoder.debug_check_bounds::<Self>(offset);
3607 if self.bits() & Self::all().bits() != self.bits() {
3608 return Err(fidl::Error::InvalidBitsValue);
3609 }
3610 encoder.write_num(self.bits(), offset);
3611 Ok(())
3612 }
3613 }
3614
3615 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3616 for AudioConsumerStartFlags
3617 {
3618 #[inline(always)]
3619 fn new_empty() -> Self {
3620 Self::empty()
3621 }
3622
3623 #[inline]
3624 unsafe fn decode(
3625 &mut self,
3626 decoder: &mut fidl::encoding::Decoder<'_, D>,
3627 offset: usize,
3628 _depth: fidl::encoding::Depth,
3629 ) -> fidl::Result<()> {
3630 decoder.debug_check_bounds::<Self>(offset);
3631 let prim = decoder.read_num::<u32>(offset);
3632 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3633 Ok(())
3634 }
3635 }
3636 unsafe impl fidl::encoding::TypeMarker for AudioGainInfoFlags {
3637 type Owned = Self;
3638
3639 #[inline(always)]
3640 fn inline_align(_context: fidl::encoding::Context) -> usize {
3641 4
3642 }
3643
3644 #[inline(always)]
3645 fn inline_size(_context: fidl::encoding::Context) -> usize {
3646 4
3647 }
3648 }
3649
3650 impl fidl::encoding::ValueTypeMarker for AudioGainInfoFlags {
3651 type Borrowed<'a> = Self;
3652 #[inline(always)]
3653 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3654 *value
3655 }
3656 }
3657
3658 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3659 for AudioGainInfoFlags
3660 {
3661 #[inline]
3662 unsafe fn encode(
3663 self,
3664 encoder: &mut fidl::encoding::Encoder<'_, D>,
3665 offset: usize,
3666 _depth: fidl::encoding::Depth,
3667 ) -> fidl::Result<()> {
3668 encoder.debug_check_bounds::<Self>(offset);
3669 if self.bits() & Self::all().bits() != self.bits() {
3670 return Err(fidl::Error::InvalidBitsValue);
3671 }
3672 encoder.write_num(self.bits(), offset);
3673 Ok(())
3674 }
3675 }
3676
3677 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainInfoFlags {
3678 #[inline(always)]
3679 fn new_empty() -> Self {
3680 Self::empty()
3681 }
3682
3683 #[inline]
3684 unsafe fn decode(
3685 &mut self,
3686 decoder: &mut fidl::encoding::Decoder<'_, D>,
3687 offset: usize,
3688 _depth: fidl::encoding::Depth,
3689 ) -> fidl::Result<()> {
3690 decoder.debug_check_bounds::<Self>(offset);
3691 let prim = decoder.read_num::<u32>(offset);
3692 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3693 Ok(())
3694 }
3695 }
3696 unsafe impl fidl::encoding::TypeMarker for AudioGainValidFlags {
3697 type Owned = Self;
3698
3699 #[inline(always)]
3700 fn inline_align(_context: fidl::encoding::Context) -> usize {
3701 4
3702 }
3703
3704 #[inline(always)]
3705 fn inline_size(_context: fidl::encoding::Context) -> usize {
3706 4
3707 }
3708 }
3709
3710 impl fidl::encoding::ValueTypeMarker for AudioGainValidFlags {
3711 type Borrowed<'a> = Self;
3712 #[inline(always)]
3713 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3714 *value
3715 }
3716 }
3717
3718 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3719 for AudioGainValidFlags
3720 {
3721 #[inline]
3722 unsafe fn encode(
3723 self,
3724 encoder: &mut fidl::encoding::Encoder<'_, D>,
3725 offset: usize,
3726 _depth: fidl::encoding::Depth,
3727 ) -> fidl::Result<()> {
3728 encoder.debug_check_bounds::<Self>(offset);
3729 if self.bits() & Self::all().bits() != self.bits() {
3730 return Err(fidl::Error::InvalidBitsValue);
3731 }
3732 encoder.write_num(self.bits(), offset);
3733 Ok(())
3734 }
3735 }
3736
3737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainValidFlags {
3738 #[inline(always)]
3739 fn new_empty() -> Self {
3740 Self::empty()
3741 }
3742
3743 #[inline]
3744 unsafe fn decode(
3745 &mut self,
3746 decoder: &mut fidl::encoding::Decoder<'_, D>,
3747 offset: usize,
3748 _depth: fidl::encoding::Depth,
3749 ) -> fidl::Result<()> {
3750 decoder.debug_check_bounds::<Self>(offset);
3751 let prim = decoder.read_num::<u32>(offset);
3752 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3753 Ok(())
3754 }
3755 }
3756 unsafe impl fidl::encoding::TypeMarker for AacAudioObjectType {
3757 type Owned = Self;
3758
3759 #[inline(always)]
3760 fn inline_align(_context: fidl::encoding::Context) -> usize {
3761 std::mem::align_of::<u32>()
3762 }
3763
3764 #[inline(always)]
3765 fn inline_size(_context: fidl::encoding::Context) -> usize {
3766 std::mem::size_of::<u32>()
3767 }
3768
3769 #[inline(always)]
3770 fn encode_is_copy() -> bool {
3771 true
3772 }
3773
3774 #[inline(always)]
3775 fn decode_is_copy() -> bool {
3776 false
3777 }
3778 }
3779
3780 impl fidl::encoding::ValueTypeMarker for AacAudioObjectType {
3781 type Borrowed<'a> = Self;
3782 #[inline(always)]
3783 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3784 *value
3785 }
3786 }
3787
3788 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3789 for AacAudioObjectType
3790 {
3791 #[inline]
3792 unsafe fn encode(
3793 self,
3794 encoder: &mut fidl::encoding::Encoder<'_, D>,
3795 offset: usize,
3796 _depth: fidl::encoding::Depth,
3797 ) -> fidl::Result<()> {
3798 encoder.debug_check_bounds::<Self>(offset);
3799 encoder.write_num(self.into_primitive(), offset);
3800 Ok(())
3801 }
3802 }
3803
3804 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacAudioObjectType {
3805 #[inline(always)]
3806 fn new_empty() -> Self {
3807 Self::Mpeg2AacLc
3808 }
3809
3810 #[inline]
3811 unsafe fn decode(
3812 &mut self,
3813 decoder: &mut fidl::encoding::Decoder<'_, D>,
3814 offset: usize,
3815 _depth: fidl::encoding::Depth,
3816 ) -> fidl::Result<()> {
3817 decoder.debug_check_bounds::<Self>(offset);
3818 let prim = decoder.read_num::<u32>(offset);
3819
3820 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3821 Ok(())
3822 }
3823 }
3824 unsafe impl fidl::encoding::TypeMarker for AacChannelMode {
3825 type Owned = Self;
3826
3827 #[inline(always)]
3828 fn inline_align(_context: fidl::encoding::Context) -> usize {
3829 std::mem::align_of::<u32>()
3830 }
3831
3832 #[inline(always)]
3833 fn inline_size(_context: fidl::encoding::Context) -> usize {
3834 std::mem::size_of::<u32>()
3835 }
3836
3837 #[inline(always)]
3838 fn encode_is_copy() -> bool {
3839 true
3840 }
3841
3842 #[inline(always)]
3843 fn decode_is_copy() -> bool {
3844 false
3845 }
3846 }
3847
3848 impl fidl::encoding::ValueTypeMarker for AacChannelMode {
3849 type Borrowed<'a> = Self;
3850 #[inline(always)]
3851 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3852 *value
3853 }
3854 }
3855
3856 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AacChannelMode {
3857 #[inline]
3858 unsafe fn encode(
3859 self,
3860 encoder: &mut fidl::encoding::Encoder<'_, D>,
3861 offset: usize,
3862 _depth: fidl::encoding::Depth,
3863 ) -> fidl::Result<()> {
3864 encoder.debug_check_bounds::<Self>(offset);
3865 encoder.write_num(self.into_primitive(), offset);
3866 Ok(())
3867 }
3868 }
3869
3870 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacChannelMode {
3871 #[inline(always)]
3872 fn new_empty() -> Self {
3873 Self::Mono
3874 }
3875
3876 #[inline]
3877 unsafe fn decode(
3878 &mut self,
3879 decoder: &mut fidl::encoding::Decoder<'_, D>,
3880 offset: usize,
3881 _depth: fidl::encoding::Depth,
3882 ) -> fidl::Result<()> {
3883 decoder.debug_check_bounds::<Self>(offset);
3884 let prim = decoder.read_num::<u32>(offset);
3885
3886 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3887 Ok(())
3888 }
3889 }
3890 unsafe impl fidl::encoding::TypeMarker for AacVariableBitRate {
3891 type Owned = Self;
3892
3893 #[inline(always)]
3894 fn inline_align(_context: fidl::encoding::Context) -> usize {
3895 std::mem::align_of::<u32>()
3896 }
3897
3898 #[inline(always)]
3899 fn inline_size(_context: fidl::encoding::Context) -> usize {
3900 std::mem::size_of::<u32>()
3901 }
3902
3903 #[inline(always)]
3904 fn encode_is_copy() -> bool {
3905 true
3906 }
3907
3908 #[inline(always)]
3909 fn decode_is_copy() -> bool {
3910 false
3911 }
3912 }
3913
3914 impl fidl::encoding::ValueTypeMarker for AacVariableBitRate {
3915 type Borrowed<'a> = Self;
3916 #[inline(always)]
3917 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3918 *value
3919 }
3920 }
3921
3922 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3923 for AacVariableBitRate
3924 {
3925 #[inline]
3926 unsafe fn encode(
3927 self,
3928 encoder: &mut fidl::encoding::Encoder<'_, D>,
3929 offset: usize,
3930 _depth: fidl::encoding::Depth,
3931 ) -> fidl::Result<()> {
3932 encoder.debug_check_bounds::<Self>(offset);
3933 encoder.write_num(self.into_primitive(), offset);
3934 Ok(())
3935 }
3936 }
3937
3938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacVariableBitRate {
3939 #[inline(always)]
3940 fn new_empty() -> Self {
3941 Self::V1
3942 }
3943
3944 #[inline]
3945 unsafe fn decode(
3946 &mut self,
3947 decoder: &mut fidl::encoding::Decoder<'_, D>,
3948 offset: usize,
3949 _depth: fidl::encoding::Depth,
3950 ) -> fidl::Result<()> {
3951 decoder.debug_check_bounds::<Self>(offset);
3952 let prim = decoder.read_num::<u32>(offset);
3953
3954 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3955 Ok(())
3956 }
3957 }
3958 unsafe impl fidl::encoding::TypeMarker for AudioBitrateMode {
3959 type Owned = Self;
3960
3961 #[inline(always)]
3962 fn inline_align(_context: fidl::encoding::Context) -> usize {
3963 std::mem::align_of::<u32>()
3964 }
3965
3966 #[inline(always)]
3967 fn inline_size(_context: fidl::encoding::Context) -> usize {
3968 std::mem::size_of::<u32>()
3969 }
3970
3971 #[inline(always)]
3972 fn encode_is_copy() -> bool {
3973 true
3974 }
3975
3976 #[inline(always)]
3977 fn decode_is_copy() -> bool {
3978 false
3979 }
3980 }
3981
3982 impl fidl::encoding::ValueTypeMarker for AudioBitrateMode {
3983 type Borrowed<'a> = Self;
3984 #[inline(always)]
3985 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3986 *value
3987 }
3988 }
3989
3990 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3991 for AudioBitrateMode
3992 {
3993 #[inline]
3994 unsafe fn encode(
3995 self,
3996 encoder: &mut fidl::encoding::Encoder<'_, D>,
3997 offset: usize,
3998 _depth: fidl::encoding::Depth,
3999 ) -> fidl::Result<()> {
4000 encoder.debug_check_bounds::<Self>(offset);
4001 encoder.write_num(self.into_primitive(), offset);
4002 Ok(())
4003 }
4004 }
4005
4006 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioBitrateMode {
4007 #[inline(always)]
4008 fn new_empty() -> Self {
4009 Self::Unspecified
4010 }
4011
4012 #[inline]
4013 unsafe fn decode(
4014 &mut self,
4015 decoder: &mut fidl::encoding::Decoder<'_, D>,
4016 offset: usize,
4017 _depth: fidl::encoding::Depth,
4018 ) -> fidl::Result<()> {
4019 decoder.debug_check_bounds::<Self>(offset);
4020 let prim = decoder.read_num::<u32>(offset);
4021
4022 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4023 Ok(())
4024 }
4025 }
4026 unsafe impl fidl::encoding::TypeMarker for AudioCaptureUsage {
4027 type Owned = Self;
4028
4029 #[inline(always)]
4030 fn inline_align(_context: fidl::encoding::Context) -> usize {
4031 std::mem::align_of::<u32>()
4032 }
4033
4034 #[inline(always)]
4035 fn inline_size(_context: fidl::encoding::Context) -> usize {
4036 std::mem::size_of::<u32>()
4037 }
4038
4039 #[inline(always)]
4040 fn encode_is_copy() -> bool {
4041 true
4042 }
4043
4044 #[inline(always)]
4045 fn decode_is_copy() -> bool {
4046 false
4047 }
4048 }
4049
4050 impl fidl::encoding::ValueTypeMarker for AudioCaptureUsage {
4051 type Borrowed<'a> = Self;
4052 #[inline(always)]
4053 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4054 *value
4055 }
4056 }
4057
4058 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4059 for AudioCaptureUsage
4060 {
4061 #[inline]
4062 unsafe fn encode(
4063 self,
4064 encoder: &mut fidl::encoding::Encoder<'_, D>,
4065 offset: usize,
4066 _depth: fidl::encoding::Depth,
4067 ) -> fidl::Result<()> {
4068 encoder.debug_check_bounds::<Self>(offset);
4069 encoder.write_num(self.into_primitive(), offset);
4070 Ok(())
4071 }
4072 }
4073
4074 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCaptureUsage {
4075 #[inline(always)]
4076 fn new_empty() -> Self {
4077 Self::Background
4078 }
4079
4080 #[inline]
4081 unsafe fn decode(
4082 &mut self,
4083 decoder: &mut fidl::encoding::Decoder<'_, D>,
4084 offset: usize,
4085 _depth: fidl::encoding::Depth,
4086 ) -> fidl::Result<()> {
4087 decoder.debug_check_bounds::<Self>(offset);
4088 let prim = decoder.read_num::<u32>(offset);
4089
4090 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4091 Ok(())
4092 }
4093 }
4094 unsafe impl fidl::encoding::TypeMarker for AudioCaptureUsage2 {
4095 type Owned = Self;
4096
4097 #[inline(always)]
4098 fn inline_align(_context: fidl::encoding::Context) -> usize {
4099 std::mem::align_of::<u32>()
4100 }
4101
4102 #[inline(always)]
4103 fn inline_size(_context: fidl::encoding::Context) -> usize {
4104 std::mem::size_of::<u32>()
4105 }
4106
4107 #[inline(always)]
4108 fn encode_is_copy() -> bool {
4109 false
4110 }
4111
4112 #[inline(always)]
4113 fn decode_is_copy() -> bool {
4114 false
4115 }
4116 }
4117
4118 impl fidl::encoding::ValueTypeMarker for AudioCaptureUsage2 {
4119 type Borrowed<'a> = Self;
4120 #[inline(always)]
4121 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4122 *value
4123 }
4124 }
4125
4126 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4127 for AudioCaptureUsage2
4128 {
4129 #[inline]
4130 unsafe fn encode(
4131 self,
4132 encoder: &mut fidl::encoding::Encoder<'_, D>,
4133 offset: usize,
4134 _depth: fidl::encoding::Depth,
4135 ) -> fidl::Result<()> {
4136 encoder.debug_check_bounds::<Self>(offset);
4137 encoder.write_num(self.into_primitive(), offset);
4138 Ok(())
4139 }
4140 }
4141
4142 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCaptureUsage2 {
4143 #[inline(always)]
4144 fn new_empty() -> Self {
4145 Self::unknown()
4146 }
4147
4148 #[inline]
4149 unsafe fn decode(
4150 &mut self,
4151 decoder: &mut fidl::encoding::Decoder<'_, D>,
4152 offset: usize,
4153 _depth: fidl::encoding::Depth,
4154 ) -> fidl::Result<()> {
4155 decoder.debug_check_bounds::<Self>(offset);
4156 let prim = decoder.read_num::<u32>(offset);
4157
4158 *self = Self::from_primitive_allow_unknown(prim);
4159 Ok(())
4160 }
4161 }
4162 unsafe impl fidl::encoding::TypeMarker for AudioChannelId {
4163 type Owned = Self;
4164
4165 #[inline(always)]
4166 fn inline_align(_context: fidl::encoding::Context) -> usize {
4167 std::mem::align_of::<u32>()
4168 }
4169
4170 #[inline(always)]
4171 fn inline_size(_context: fidl::encoding::Context) -> usize {
4172 std::mem::size_of::<u32>()
4173 }
4174
4175 #[inline(always)]
4176 fn encode_is_copy() -> bool {
4177 true
4178 }
4179
4180 #[inline(always)]
4181 fn decode_is_copy() -> bool {
4182 false
4183 }
4184 }
4185
4186 impl fidl::encoding::ValueTypeMarker for AudioChannelId {
4187 type Borrowed<'a> = Self;
4188 #[inline(always)]
4189 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4190 *value
4191 }
4192 }
4193
4194 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AudioChannelId {
4195 #[inline]
4196 unsafe fn encode(
4197 self,
4198 encoder: &mut fidl::encoding::Encoder<'_, D>,
4199 offset: usize,
4200 _depth: fidl::encoding::Depth,
4201 ) -> fidl::Result<()> {
4202 encoder.debug_check_bounds::<Self>(offset);
4203 encoder.write_num(self.into_primitive(), offset);
4204 Ok(())
4205 }
4206 }
4207
4208 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioChannelId {
4209 #[inline(always)]
4210 fn new_empty() -> Self {
4211 Self::Skip
4212 }
4213
4214 #[inline]
4215 unsafe fn decode(
4216 &mut self,
4217 decoder: &mut fidl::encoding::Decoder<'_, D>,
4218 offset: usize,
4219 _depth: fidl::encoding::Depth,
4220 ) -> fidl::Result<()> {
4221 decoder.debug_check_bounds::<Self>(offset);
4222 let prim = decoder.read_num::<u32>(offset);
4223
4224 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4225 Ok(())
4226 }
4227 }
4228 unsafe impl fidl::encoding::TypeMarker for AudioOutputRoutingPolicy {
4229 type Owned = Self;
4230
4231 #[inline(always)]
4232 fn inline_align(_context: fidl::encoding::Context) -> usize {
4233 std::mem::align_of::<u32>()
4234 }
4235
4236 #[inline(always)]
4237 fn inline_size(_context: fidl::encoding::Context) -> usize {
4238 std::mem::size_of::<u32>()
4239 }
4240
4241 #[inline(always)]
4242 fn encode_is_copy() -> bool {
4243 true
4244 }
4245
4246 #[inline(always)]
4247 fn decode_is_copy() -> bool {
4248 false
4249 }
4250 }
4251
4252 impl fidl::encoding::ValueTypeMarker for AudioOutputRoutingPolicy {
4253 type Borrowed<'a> = Self;
4254 #[inline(always)]
4255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4256 *value
4257 }
4258 }
4259
4260 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4261 for AudioOutputRoutingPolicy
4262 {
4263 #[inline]
4264 unsafe fn encode(
4265 self,
4266 encoder: &mut fidl::encoding::Encoder<'_, D>,
4267 offset: usize,
4268 _depth: fidl::encoding::Depth,
4269 ) -> fidl::Result<()> {
4270 encoder.debug_check_bounds::<Self>(offset);
4271 encoder.write_num(self.into_primitive(), offset);
4272 Ok(())
4273 }
4274 }
4275
4276 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4277 for AudioOutputRoutingPolicy
4278 {
4279 #[inline(always)]
4280 fn new_empty() -> Self {
4281 Self::AllPluggedOutputs
4282 }
4283
4284 #[inline]
4285 unsafe fn decode(
4286 &mut self,
4287 decoder: &mut fidl::encoding::Decoder<'_, D>,
4288 offset: usize,
4289 _depth: fidl::encoding::Depth,
4290 ) -> fidl::Result<()> {
4291 decoder.debug_check_bounds::<Self>(offset);
4292 let prim = decoder.read_num::<u32>(offset);
4293
4294 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4295 Ok(())
4296 }
4297 }
4298 unsafe impl fidl::encoding::TypeMarker for AudioPcmMode {
4299 type Owned = Self;
4300
4301 #[inline(always)]
4302 fn inline_align(_context: fidl::encoding::Context) -> usize {
4303 std::mem::align_of::<u32>()
4304 }
4305
4306 #[inline(always)]
4307 fn inline_size(_context: fidl::encoding::Context) -> usize {
4308 std::mem::size_of::<u32>()
4309 }
4310
4311 #[inline(always)]
4312 fn encode_is_copy() -> bool {
4313 true
4314 }
4315
4316 #[inline(always)]
4317 fn decode_is_copy() -> bool {
4318 false
4319 }
4320 }
4321
4322 impl fidl::encoding::ValueTypeMarker for AudioPcmMode {
4323 type Borrowed<'a> = Self;
4324 #[inline(always)]
4325 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4326 *value
4327 }
4328 }
4329
4330 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AudioPcmMode {
4331 #[inline]
4332 unsafe fn encode(
4333 self,
4334 encoder: &mut fidl::encoding::Encoder<'_, D>,
4335 offset: usize,
4336 _depth: fidl::encoding::Depth,
4337 ) -> fidl::Result<()> {
4338 encoder.debug_check_bounds::<Self>(offset);
4339 encoder.write_num(self.into_primitive(), offset);
4340 Ok(())
4341 }
4342 }
4343
4344 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioPcmMode {
4345 #[inline(always)]
4346 fn new_empty() -> Self {
4347 Self::Linear
4348 }
4349
4350 #[inline]
4351 unsafe fn decode(
4352 &mut self,
4353 decoder: &mut fidl::encoding::Decoder<'_, D>,
4354 offset: usize,
4355 _depth: fidl::encoding::Depth,
4356 ) -> fidl::Result<()> {
4357 decoder.debug_check_bounds::<Self>(offset);
4358 let prim = decoder.read_num::<u32>(offset);
4359
4360 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4361 Ok(())
4362 }
4363 }
4364 unsafe impl fidl::encoding::TypeMarker for AudioRenderUsage {
4365 type Owned = Self;
4366
4367 #[inline(always)]
4368 fn inline_align(_context: fidl::encoding::Context) -> usize {
4369 std::mem::align_of::<u32>()
4370 }
4371
4372 #[inline(always)]
4373 fn inline_size(_context: fidl::encoding::Context) -> usize {
4374 std::mem::size_of::<u32>()
4375 }
4376
4377 #[inline(always)]
4378 fn encode_is_copy() -> bool {
4379 true
4380 }
4381
4382 #[inline(always)]
4383 fn decode_is_copy() -> bool {
4384 false
4385 }
4386 }
4387
4388 impl fidl::encoding::ValueTypeMarker for AudioRenderUsage {
4389 type Borrowed<'a> = Self;
4390 #[inline(always)]
4391 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4392 *value
4393 }
4394 }
4395
4396 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4397 for AudioRenderUsage
4398 {
4399 #[inline]
4400 unsafe fn encode(
4401 self,
4402 encoder: &mut fidl::encoding::Encoder<'_, D>,
4403 offset: usize,
4404 _depth: fidl::encoding::Depth,
4405 ) -> fidl::Result<()> {
4406 encoder.debug_check_bounds::<Self>(offset);
4407 encoder.write_num(self.into_primitive(), offset);
4408 Ok(())
4409 }
4410 }
4411
4412 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioRenderUsage {
4413 #[inline(always)]
4414 fn new_empty() -> Self {
4415 Self::Background
4416 }
4417
4418 #[inline]
4419 unsafe fn decode(
4420 &mut self,
4421 decoder: &mut fidl::encoding::Decoder<'_, D>,
4422 offset: usize,
4423 _depth: fidl::encoding::Depth,
4424 ) -> fidl::Result<()> {
4425 decoder.debug_check_bounds::<Self>(offset);
4426 let prim = decoder.read_num::<u32>(offset);
4427
4428 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4429 Ok(())
4430 }
4431 }
4432 unsafe impl fidl::encoding::TypeMarker for AudioRenderUsage2 {
4433 type Owned = Self;
4434
4435 #[inline(always)]
4436 fn inline_align(_context: fidl::encoding::Context) -> usize {
4437 std::mem::align_of::<u32>()
4438 }
4439
4440 #[inline(always)]
4441 fn inline_size(_context: fidl::encoding::Context) -> usize {
4442 std::mem::size_of::<u32>()
4443 }
4444
4445 #[inline(always)]
4446 fn encode_is_copy() -> bool {
4447 false
4448 }
4449
4450 #[inline(always)]
4451 fn decode_is_copy() -> bool {
4452 false
4453 }
4454 }
4455
4456 impl fidl::encoding::ValueTypeMarker for AudioRenderUsage2 {
4457 type Borrowed<'a> = Self;
4458 #[inline(always)]
4459 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4460 *value
4461 }
4462 }
4463
4464 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4465 for AudioRenderUsage2
4466 {
4467 #[inline]
4468 unsafe fn encode(
4469 self,
4470 encoder: &mut fidl::encoding::Encoder<'_, D>,
4471 offset: usize,
4472 _depth: fidl::encoding::Depth,
4473 ) -> fidl::Result<()> {
4474 encoder.debug_check_bounds::<Self>(offset);
4475 encoder.write_num(self.into_primitive(), offset);
4476 Ok(())
4477 }
4478 }
4479
4480 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioRenderUsage2 {
4481 #[inline(always)]
4482 fn new_empty() -> Self {
4483 Self::unknown()
4484 }
4485
4486 #[inline]
4487 unsafe fn decode(
4488 &mut self,
4489 decoder: &mut fidl::encoding::Decoder<'_, D>,
4490 offset: usize,
4491 _depth: fidl::encoding::Depth,
4492 ) -> fidl::Result<()> {
4493 decoder.debug_check_bounds::<Self>(offset);
4494 let prim = decoder.read_num::<u32>(offset);
4495
4496 *self = Self::from_primitive_allow_unknown(prim);
4497 Ok(())
4498 }
4499 }
4500 unsafe impl fidl::encoding::TypeMarker for AudioSampleFormat {
4501 type Owned = Self;
4502
4503 #[inline(always)]
4504 fn inline_align(_context: fidl::encoding::Context) -> usize {
4505 std::mem::align_of::<u32>()
4506 }
4507
4508 #[inline(always)]
4509 fn inline_size(_context: fidl::encoding::Context) -> usize {
4510 std::mem::size_of::<u32>()
4511 }
4512
4513 #[inline(always)]
4514 fn encode_is_copy() -> bool {
4515 true
4516 }
4517
4518 #[inline(always)]
4519 fn decode_is_copy() -> bool {
4520 false
4521 }
4522 }
4523
4524 impl fidl::encoding::ValueTypeMarker for AudioSampleFormat {
4525 type Borrowed<'a> = Self;
4526 #[inline(always)]
4527 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4528 *value
4529 }
4530 }
4531
4532 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4533 for AudioSampleFormat
4534 {
4535 #[inline]
4536 unsafe fn encode(
4537 self,
4538 encoder: &mut fidl::encoding::Encoder<'_, D>,
4539 offset: usize,
4540 _depth: fidl::encoding::Depth,
4541 ) -> fidl::Result<()> {
4542 encoder.debug_check_bounds::<Self>(offset);
4543 encoder.write_num(self.into_primitive(), offset);
4544 Ok(())
4545 }
4546 }
4547
4548 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioSampleFormat {
4549 #[inline(always)]
4550 fn new_empty() -> Self {
4551 Self::Unsigned8
4552 }
4553
4554 #[inline]
4555 unsafe fn decode(
4556 &mut self,
4557 decoder: &mut fidl::encoding::Decoder<'_, D>,
4558 offset: usize,
4559 _depth: fidl::encoding::Depth,
4560 ) -> fidl::Result<()> {
4561 decoder.debug_check_bounds::<Self>(offset);
4562 let prim = decoder.read_num::<u32>(offset);
4563
4564 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4565 Ok(())
4566 }
4567 }
4568 unsafe impl fidl::encoding::TypeMarker for Behavior {
4569 type Owned = Self;
4570
4571 #[inline(always)]
4572 fn inline_align(_context: fidl::encoding::Context) -> usize {
4573 std::mem::align_of::<u32>()
4574 }
4575
4576 #[inline(always)]
4577 fn inline_size(_context: fidl::encoding::Context) -> usize {
4578 std::mem::size_of::<u32>()
4579 }
4580
4581 #[inline(always)]
4582 fn encode_is_copy() -> bool {
4583 false
4584 }
4585
4586 #[inline(always)]
4587 fn decode_is_copy() -> bool {
4588 false
4589 }
4590 }
4591
4592 impl fidl::encoding::ValueTypeMarker for Behavior {
4593 type Borrowed<'a> = Self;
4594 #[inline(always)]
4595 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4596 *value
4597 }
4598 }
4599
4600 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Behavior {
4601 #[inline]
4602 unsafe fn encode(
4603 self,
4604 encoder: &mut fidl::encoding::Encoder<'_, D>,
4605 offset: usize,
4606 _depth: fidl::encoding::Depth,
4607 ) -> fidl::Result<()> {
4608 encoder.debug_check_bounds::<Self>(offset);
4609 encoder.write_num(self.into_primitive(), offset);
4610 Ok(())
4611 }
4612 }
4613
4614 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Behavior {
4615 #[inline(always)]
4616 fn new_empty() -> Self {
4617 Self::unknown()
4618 }
4619
4620 #[inline]
4621 unsafe fn decode(
4622 &mut self,
4623 decoder: &mut fidl::encoding::Decoder<'_, D>,
4624 offset: usize,
4625 _depth: fidl::encoding::Depth,
4626 ) -> fidl::Result<()> {
4627 decoder.debug_check_bounds::<Self>(offset);
4628 let prim = decoder.read_num::<u32>(offset);
4629
4630 *self = Self::from_primitive_allow_unknown(prim);
4631 Ok(())
4632 }
4633 }
4634 unsafe impl fidl::encoding::TypeMarker for CodecProfile {
4635 type Owned = Self;
4636
4637 #[inline(always)]
4638 fn inline_align(_context: fidl::encoding::Context) -> usize {
4639 std::mem::align_of::<u32>()
4640 }
4641
4642 #[inline(always)]
4643 fn inline_size(_context: fidl::encoding::Context) -> usize {
4644 std::mem::size_of::<u32>()
4645 }
4646
4647 #[inline(always)]
4648 fn encode_is_copy() -> bool {
4649 false
4650 }
4651
4652 #[inline(always)]
4653 fn decode_is_copy() -> bool {
4654 false
4655 }
4656 }
4657
4658 impl fidl::encoding::ValueTypeMarker for CodecProfile {
4659 type Borrowed<'a> = Self;
4660 #[inline(always)]
4661 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4662 *value
4663 }
4664 }
4665
4666 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CodecProfile {
4667 #[inline]
4668 unsafe fn encode(
4669 self,
4670 encoder: &mut fidl::encoding::Encoder<'_, D>,
4671 offset: usize,
4672 _depth: fidl::encoding::Depth,
4673 ) -> fidl::Result<()> {
4674 encoder.debug_check_bounds::<Self>(offset);
4675 encoder.write_num(self.into_primitive(), offset);
4676 Ok(())
4677 }
4678 }
4679
4680 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecProfile {
4681 #[inline(always)]
4682 fn new_empty() -> Self {
4683 Self::unknown()
4684 }
4685
4686 #[inline]
4687 unsafe fn decode(
4688 &mut self,
4689 decoder: &mut fidl::encoding::Decoder<'_, D>,
4690 offset: usize,
4691 _depth: fidl::encoding::Depth,
4692 ) -> fidl::Result<()> {
4693 decoder.debug_check_bounds::<Self>(offset);
4694 let prim = decoder.read_num::<u32>(offset);
4695
4696 *self = Self::from_primitive_allow_unknown(prim);
4697 Ok(())
4698 }
4699 }
4700 unsafe impl fidl::encoding::TypeMarker for ColorSpace {
4701 type Owned = Self;
4702
4703 #[inline(always)]
4704 fn inline_align(_context: fidl::encoding::Context) -> usize {
4705 std::mem::align_of::<u32>()
4706 }
4707
4708 #[inline(always)]
4709 fn inline_size(_context: fidl::encoding::Context) -> usize {
4710 std::mem::size_of::<u32>()
4711 }
4712
4713 #[inline(always)]
4714 fn encode_is_copy() -> bool {
4715 true
4716 }
4717
4718 #[inline(always)]
4719 fn decode_is_copy() -> bool {
4720 false
4721 }
4722 }
4723
4724 impl fidl::encoding::ValueTypeMarker for ColorSpace {
4725 type Borrowed<'a> = Self;
4726 #[inline(always)]
4727 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4728 *value
4729 }
4730 }
4731
4732 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ColorSpace {
4733 #[inline]
4734 unsafe fn encode(
4735 self,
4736 encoder: &mut fidl::encoding::Encoder<'_, D>,
4737 offset: usize,
4738 _depth: fidl::encoding::Depth,
4739 ) -> fidl::Result<()> {
4740 encoder.debug_check_bounds::<Self>(offset);
4741 encoder.write_num(self.into_primitive(), offset);
4742 Ok(())
4743 }
4744 }
4745
4746 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ColorSpace {
4747 #[inline(always)]
4748 fn new_empty() -> Self {
4749 Self::Unknown
4750 }
4751
4752 #[inline]
4753 unsafe fn decode(
4754 &mut self,
4755 decoder: &mut fidl::encoding::Decoder<'_, D>,
4756 offset: usize,
4757 _depth: fidl::encoding::Depth,
4758 ) -> fidl::Result<()> {
4759 decoder.debug_check_bounds::<Self>(offset);
4760 let prim = decoder.read_num::<u32>(offset);
4761
4762 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4763 Ok(())
4764 }
4765 }
4766 unsafe impl fidl::encoding::TypeMarker for Lc3FrameDuration {
4767 type Owned = Self;
4768
4769 #[inline(always)]
4770 fn inline_align(_context: fidl::encoding::Context) -> usize {
4771 std::mem::align_of::<u32>()
4772 }
4773
4774 #[inline(always)]
4775 fn inline_size(_context: fidl::encoding::Context) -> usize {
4776 std::mem::size_of::<u32>()
4777 }
4778
4779 #[inline(always)]
4780 fn encode_is_copy() -> bool {
4781 false
4782 }
4783
4784 #[inline(always)]
4785 fn decode_is_copy() -> bool {
4786 false
4787 }
4788 }
4789
4790 impl fidl::encoding::ValueTypeMarker for Lc3FrameDuration {
4791 type Borrowed<'a> = Self;
4792 #[inline(always)]
4793 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4794 *value
4795 }
4796 }
4797
4798 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4799 for Lc3FrameDuration
4800 {
4801 #[inline]
4802 unsafe fn encode(
4803 self,
4804 encoder: &mut fidl::encoding::Encoder<'_, D>,
4805 offset: usize,
4806 _depth: fidl::encoding::Depth,
4807 ) -> fidl::Result<()> {
4808 encoder.debug_check_bounds::<Self>(offset);
4809 encoder.write_num(self.into_primitive(), offset);
4810 Ok(())
4811 }
4812 }
4813
4814 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Lc3FrameDuration {
4815 #[inline(always)]
4816 fn new_empty() -> Self {
4817 Self::unknown()
4818 }
4819
4820 #[inline]
4821 unsafe fn decode(
4822 &mut self,
4823 decoder: &mut fidl::encoding::Decoder<'_, D>,
4824 offset: usize,
4825 _depth: fidl::encoding::Depth,
4826 ) -> fidl::Result<()> {
4827 decoder.debug_check_bounds::<Self>(offset);
4828 let prim = decoder.read_num::<u32>(offset);
4829
4830 *self = Self::from_primitive_allow_unknown(prim);
4831 Ok(())
4832 }
4833 }
4834 unsafe impl fidl::encoding::TypeMarker for SbcAllocation {
4835 type Owned = Self;
4836
4837 #[inline(always)]
4838 fn inline_align(_context: fidl::encoding::Context) -> usize {
4839 std::mem::align_of::<u32>()
4840 }
4841
4842 #[inline(always)]
4843 fn inline_size(_context: fidl::encoding::Context) -> usize {
4844 std::mem::size_of::<u32>()
4845 }
4846
4847 #[inline(always)]
4848 fn encode_is_copy() -> bool {
4849 true
4850 }
4851
4852 #[inline(always)]
4853 fn decode_is_copy() -> bool {
4854 false
4855 }
4856 }
4857
4858 impl fidl::encoding::ValueTypeMarker for SbcAllocation {
4859 type Borrowed<'a> = Self;
4860 #[inline(always)]
4861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4862 *value
4863 }
4864 }
4865
4866 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcAllocation {
4867 #[inline]
4868 unsafe fn encode(
4869 self,
4870 encoder: &mut fidl::encoding::Encoder<'_, D>,
4871 offset: usize,
4872 _depth: fidl::encoding::Depth,
4873 ) -> fidl::Result<()> {
4874 encoder.debug_check_bounds::<Self>(offset);
4875 encoder.write_num(self.into_primitive(), offset);
4876 Ok(())
4877 }
4878 }
4879
4880 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcAllocation {
4881 #[inline(always)]
4882 fn new_empty() -> Self {
4883 Self::AllocLoudness
4884 }
4885
4886 #[inline]
4887 unsafe fn decode(
4888 &mut self,
4889 decoder: &mut fidl::encoding::Decoder<'_, D>,
4890 offset: usize,
4891 _depth: fidl::encoding::Depth,
4892 ) -> fidl::Result<()> {
4893 decoder.debug_check_bounds::<Self>(offset);
4894 let prim = decoder.read_num::<u32>(offset);
4895
4896 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4897 Ok(())
4898 }
4899 }
4900 unsafe impl fidl::encoding::TypeMarker for SbcBlockCount {
4901 type Owned = Self;
4902
4903 #[inline(always)]
4904 fn inline_align(_context: fidl::encoding::Context) -> usize {
4905 std::mem::align_of::<u32>()
4906 }
4907
4908 #[inline(always)]
4909 fn inline_size(_context: fidl::encoding::Context) -> usize {
4910 std::mem::size_of::<u32>()
4911 }
4912
4913 #[inline(always)]
4914 fn encode_is_copy() -> bool {
4915 true
4916 }
4917
4918 #[inline(always)]
4919 fn decode_is_copy() -> bool {
4920 false
4921 }
4922 }
4923
4924 impl fidl::encoding::ValueTypeMarker for SbcBlockCount {
4925 type Borrowed<'a> = Self;
4926 #[inline(always)]
4927 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4928 *value
4929 }
4930 }
4931
4932 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcBlockCount {
4933 #[inline]
4934 unsafe fn encode(
4935 self,
4936 encoder: &mut fidl::encoding::Encoder<'_, D>,
4937 offset: usize,
4938 _depth: fidl::encoding::Depth,
4939 ) -> fidl::Result<()> {
4940 encoder.debug_check_bounds::<Self>(offset);
4941 encoder.write_num(self.into_primitive(), offset);
4942 Ok(())
4943 }
4944 }
4945
4946 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcBlockCount {
4947 #[inline(always)]
4948 fn new_empty() -> Self {
4949 Self::BlockCount4
4950 }
4951
4952 #[inline]
4953 unsafe fn decode(
4954 &mut self,
4955 decoder: &mut fidl::encoding::Decoder<'_, D>,
4956 offset: usize,
4957 _depth: fidl::encoding::Depth,
4958 ) -> fidl::Result<()> {
4959 decoder.debug_check_bounds::<Self>(offset);
4960 let prim = decoder.read_num::<u32>(offset);
4961
4962 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4963 Ok(())
4964 }
4965 }
4966 unsafe impl fidl::encoding::TypeMarker for SbcChannelMode {
4967 type Owned = Self;
4968
4969 #[inline(always)]
4970 fn inline_align(_context: fidl::encoding::Context) -> usize {
4971 std::mem::align_of::<u32>()
4972 }
4973
4974 #[inline(always)]
4975 fn inline_size(_context: fidl::encoding::Context) -> usize {
4976 std::mem::size_of::<u32>()
4977 }
4978
4979 #[inline(always)]
4980 fn encode_is_copy() -> bool {
4981 true
4982 }
4983
4984 #[inline(always)]
4985 fn decode_is_copy() -> bool {
4986 false
4987 }
4988 }
4989
4990 impl fidl::encoding::ValueTypeMarker for SbcChannelMode {
4991 type Borrowed<'a> = Self;
4992 #[inline(always)]
4993 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4994 *value
4995 }
4996 }
4997
4998 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcChannelMode {
4999 #[inline]
5000 unsafe fn encode(
5001 self,
5002 encoder: &mut fidl::encoding::Encoder<'_, D>,
5003 offset: usize,
5004 _depth: fidl::encoding::Depth,
5005 ) -> fidl::Result<()> {
5006 encoder.debug_check_bounds::<Self>(offset);
5007 encoder.write_num(self.into_primitive(), offset);
5008 Ok(())
5009 }
5010 }
5011
5012 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcChannelMode {
5013 #[inline(always)]
5014 fn new_empty() -> Self {
5015 Self::Mono
5016 }
5017
5018 #[inline]
5019 unsafe fn decode(
5020 &mut self,
5021 decoder: &mut fidl::encoding::Decoder<'_, D>,
5022 offset: usize,
5023 _depth: fidl::encoding::Depth,
5024 ) -> fidl::Result<()> {
5025 decoder.debug_check_bounds::<Self>(offset);
5026 let prim = decoder.read_num::<u32>(offset);
5027
5028 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5029 Ok(())
5030 }
5031 }
5032 unsafe impl fidl::encoding::TypeMarker for SbcSubBands {
5033 type Owned = Self;
5034
5035 #[inline(always)]
5036 fn inline_align(_context: fidl::encoding::Context) -> usize {
5037 std::mem::align_of::<u32>()
5038 }
5039
5040 #[inline(always)]
5041 fn inline_size(_context: fidl::encoding::Context) -> usize {
5042 std::mem::size_of::<u32>()
5043 }
5044
5045 #[inline(always)]
5046 fn encode_is_copy() -> bool {
5047 true
5048 }
5049
5050 #[inline(always)]
5051 fn decode_is_copy() -> bool {
5052 false
5053 }
5054 }
5055
5056 impl fidl::encoding::ValueTypeMarker for SbcSubBands {
5057 type Borrowed<'a> = Self;
5058 #[inline(always)]
5059 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5060 *value
5061 }
5062 }
5063
5064 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcSubBands {
5065 #[inline]
5066 unsafe fn encode(
5067 self,
5068 encoder: &mut fidl::encoding::Encoder<'_, D>,
5069 offset: usize,
5070 _depth: fidl::encoding::Depth,
5071 ) -> fidl::Result<()> {
5072 encoder.debug_check_bounds::<Self>(offset);
5073 encoder.write_num(self.into_primitive(), offset);
5074 Ok(())
5075 }
5076 }
5077
5078 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcSubBands {
5079 #[inline(always)]
5080 fn new_empty() -> Self {
5081 Self::SubBands4
5082 }
5083
5084 #[inline]
5085 unsafe fn decode(
5086 &mut self,
5087 decoder: &mut fidl::encoding::Decoder<'_, D>,
5088 offset: usize,
5089 _depth: fidl::encoding::Depth,
5090 ) -> fidl::Result<()> {
5091 decoder.debug_check_bounds::<Self>(offset);
5092 let prim = decoder.read_num::<u32>(offset);
5093
5094 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5095 Ok(())
5096 }
5097 }
5098 unsafe impl fidl::encoding::TypeMarker for StreamError {
5099 type Owned = Self;
5100
5101 #[inline(always)]
5102 fn inline_align(_context: fidl::encoding::Context) -> usize {
5103 std::mem::align_of::<u32>()
5104 }
5105
5106 #[inline(always)]
5107 fn inline_size(_context: fidl::encoding::Context) -> usize {
5108 std::mem::size_of::<u32>()
5109 }
5110
5111 #[inline(always)]
5112 fn encode_is_copy() -> bool {
5113 true
5114 }
5115
5116 #[inline(always)]
5117 fn decode_is_copy() -> bool {
5118 false
5119 }
5120 }
5121
5122 impl fidl::encoding::ValueTypeMarker for StreamError {
5123 type Borrowed<'a> = Self;
5124 #[inline(always)]
5125 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5126 *value
5127 }
5128 }
5129
5130 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamError {
5131 #[inline]
5132 unsafe fn encode(
5133 self,
5134 encoder: &mut fidl::encoding::Encoder<'_, D>,
5135 offset: usize,
5136 _depth: fidl::encoding::Depth,
5137 ) -> fidl::Result<()> {
5138 encoder.debug_check_bounds::<Self>(offset);
5139 encoder.write_num(self.into_primitive(), offset);
5140 Ok(())
5141 }
5142 }
5143
5144 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamError {
5145 #[inline(always)]
5146 fn new_empty() -> Self {
5147 Self::Unknown
5148 }
5149
5150 #[inline]
5151 unsafe fn decode(
5152 &mut self,
5153 decoder: &mut fidl::encoding::Decoder<'_, D>,
5154 offset: usize,
5155 _depth: fidl::encoding::Depth,
5156 ) -> fidl::Result<()> {
5157 decoder.debug_check_bounds::<Self>(offset);
5158 let prim = decoder.read_num::<u32>(offset);
5159
5160 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5161 Ok(())
5162 }
5163 }
5164 unsafe impl fidl::encoding::TypeMarker for VideoColorSpace {
5165 type Owned = Self;
5166
5167 #[inline(always)]
5168 fn inline_align(_context: fidl::encoding::Context) -> usize {
5169 std::mem::align_of::<u32>()
5170 }
5171
5172 #[inline(always)]
5173 fn inline_size(_context: fidl::encoding::Context) -> usize {
5174 std::mem::size_of::<u32>()
5175 }
5176
5177 #[inline(always)]
5178 fn encode_is_copy() -> bool {
5179 true
5180 }
5181
5182 #[inline(always)]
5183 fn decode_is_copy() -> bool {
5184 false
5185 }
5186 }
5187
5188 impl fidl::encoding::ValueTypeMarker for VideoColorSpace {
5189 type Borrowed<'a> = Self;
5190 #[inline(always)]
5191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5192 *value
5193 }
5194 }
5195
5196 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
5197 for VideoColorSpace
5198 {
5199 #[inline]
5200 unsafe fn encode(
5201 self,
5202 encoder: &mut fidl::encoding::Encoder<'_, D>,
5203 offset: usize,
5204 _depth: fidl::encoding::Depth,
5205 ) -> fidl::Result<()> {
5206 encoder.debug_check_bounds::<Self>(offset);
5207 encoder.write_num(self.into_primitive(), offset);
5208 Ok(())
5209 }
5210 }
5211
5212 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoColorSpace {
5213 #[inline(always)]
5214 fn new_empty() -> Self {
5215 Self::Invalid
5216 }
5217
5218 #[inline]
5219 unsafe fn decode(
5220 &mut self,
5221 decoder: &mut fidl::encoding::Decoder<'_, D>,
5222 offset: usize,
5223 _depth: fidl::encoding::Depth,
5224 ) -> fidl::Result<()> {
5225 decoder.debug_check_bounds::<Self>(offset);
5226 let prim = decoder.read_num::<u32>(offset);
5227
5228 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5229 Ok(())
5230 }
5231 }
5232
5233 impl fidl::encoding::ValueTypeMarker for AacConstantBitRate {
5234 type Borrowed<'a> = &'a Self;
5235 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5236 value
5237 }
5238 }
5239
5240 unsafe impl fidl::encoding::TypeMarker for AacConstantBitRate {
5241 type Owned = Self;
5242
5243 #[inline(always)]
5244 fn inline_align(_context: fidl::encoding::Context) -> usize {
5245 4
5246 }
5247
5248 #[inline(always)]
5249 fn inline_size(_context: fidl::encoding::Context) -> usize {
5250 4
5251 }
5252 #[inline(always)]
5253 fn encode_is_copy() -> bool {
5254 true
5255 }
5256
5257 #[inline(always)]
5258 fn decode_is_copy() -> bool {
5259 true
5260 }
5261 }
5262
5263 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacConstantBitRate, D>
5264 for &AacConstantBitRate
5265 {
5266 #[inline]
5267 unsafe fn encode(
5268 self,
5269 encoder: &mut fidl::encoding::Encoder<'_, D>,
5270 offset: usize,
5271 _depth: fidl::encoding::Depth,
5272 ) -> fidl::Result<()> {
5273 encoder.debug_check_bounds::<AacConstantBitRate>(offset);
5274 unsafe {
5275 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5277 (buf_ptr as *mut AacConstantBitRate)
5278 .write_unaligned((self as *const AacConstantBitRate).read());
5279 }
5282 Ok(())
5283 }
5284 }
5285 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
5286 fidl::encoding::Encode<AacConstantBitRate, D> for (T0,)
5287 {
5288 #[inline]
5289 unsafe fn encode(
5290 self,
5291 encoder: &mut fidl::encoding::Encoder<'_, D>,
5292 offset: usize,
5293 depth: fidl::encoding::Depth,
5294 ) -> fidl::Result<()> {
5295 encoder.debug_check_bounds::<AacConstantBitRate>(offset);
5296 self.0.encode(encoder, offset + 0, depth)?;
5300 Ok(())
5301 }
5302 }
5303
5304 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacConstantBitRate {
5305 #[inline(always)]
5306 fn new_empty() -> Self {
5307 Self { bit_rate: fidl::new_empty!(u32, D) }
5308 }
5309
5310 #[inline]
5311 unsafe fn decode(
5312 &mut self,
5313 decoder: &mut fidl::encoding::Decoder<'_, D>,
5314 offset: usize,
5315 _depth: fidl::encoding::Depth,
5316 ) -> fidl::Result<()> {
5317 decoder.debug_check_bounds::<Self>(offset);
5318 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5319 unsafe {
5322 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
5323 }
5324 Ok(())
5325 }
5326 }
5327
5328 impl fidl::encoding::ValueTypeMarker for AacEncoderSettings {
5329 type Borrowed<'a> = &'a Self;
5330 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5331 value
5332 }
5333 }
5334
5335 unsafe impl fidl::encoding::TypeMarker for AacEncoderSettings {
5336 type Owned = Self;
5337
5338 #[inline(always)]
5339 fn inline_align(_context: fidl::encoding::Context) -> usize {
5340 8
5341 }
5342
5343 #[inline(always)]
5344 fn inline_size(_context: fidl::encoding::Context) -> usize {
5345 48
5346 }
5347 }
5348
5349 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacEncoderSettings, D>
5350 for &AacEncoderSettings
5351 {
5352 #[inline]
5353 unsafe fn encode(
5354 self,
5355 encoder: &mut fidl::encoding::Encoder<'_, D>,
5356 offset: usize,
5357 _depth: fidl::encoding::Depth,
5358 ) -> fidl::Result<()> {
5359 encoder.debug_check_bounds::<AacEncoderSettings>(offset);
5360 fidl::encoding::Encode::<AacEncoderSettings, D>::encode(
5362 (
5363 <AacTransport as fidl::encoding::ValueTypeMarker>::borrow(&self.transport),
5364 <AacChannelMode as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_mode),
5365 <AacBitRate as fidl::encoding::ValueTypeMarker>::borrow(&self.bit_rate),
5366 <AacAudioObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.aot),
5367 ),
5368 encoder,
5369 offset,
5370 _depth,
5371 )
5372 }
5373 }
5374 unsafe impl<
5375 D: fidl::encoding::ResourceDialect,
5376 T0: fidl::encoding::Encode<AacTransport, D>,
5377 T1: fidl::encoding::Encode<AacChannelMode, D>,
5378 T2: fidl::encoding::Encode<AacBitRate, D>,
5379 T3: fidl::encoding::Encode<AacAudioObjectType, D>,
5380 > fidl::encoding::Encode<AacEncoderSettings, D> for (T0, T1, T2, T3)
5381 {
5382 #[inline]
5383 unsafe fn encode(
5384 self,
5385 encoder: &mut fidl::encoding::Encoder<'_, D>,
5386 offset: usize,
5387 depth: fidl::encoding::Depth,
5388 ) -> fidl::Result<()> {
5389 encoder.debug_check_bounds::<AacEncoderSettings>(offset);
5390 unsafe {
5393 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
5394 (ptr as *mut u64).write_unaligned(0);
5395 }
5396 unsafe {
5397 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
5398 (ptr as *mut u64).write_unaligned(0);
5399 }
5400 self.0.encode(encoder, offset + 0, depth)?;
5402 self.1.encode(encoder, offset + 16, depth)?;
5403 self.2.encode(encoder, offset + 24, depth)?;
5404 self.3.encode(encoder, offset + 40, depth)?;
5405 Ok(())
5406 }
5407 }
5408
5409 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacEncoderSettings {
5410 #[inline(always)]
5411 fn new_empty() -> Self {
5412 Self {
5413 transport: fidl::new_empty!(AacTransport, D),
5414 channel_mode: fidl::new_empty!(AacChannelMode, D),
5415 bit_rate: fidl::new_empty!(AacBitRate, D),
5416 aot: fidl::new_empty!(AacAudioObjectType, D),
5417 }
5418 }
5419
5420 #[inline]
5421 unsafe fn decode(
5422 &mut self,
5423 decoder: &mut fidl::encoding::Decoder<'_, D>,
5424 offset: usize,
5425 _depth: fidl::encoding::Depth,
5426 ) -> fidl::Result<()> {
5427 decoder.debug_check_bounds::<Self>(offset);
5428 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
5430 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5431 let mask = 0xffffffff00000000u64;
5432 let maskedval = padval & mask;
5433 if maskedval != 0 {
5434 return Err(fidl::Error::NonZeroPadding {
5435 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
5436 });
5437 }
5438 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
5439 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5440 let mask = 0xffffffff00000000u64;
5441 let maskedval = padval & mask;
5442 if maskedval != 0 {
5443 return Err(fidl::Error::NonZeroPadding {
5444 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
5445 });
5446 }
5447 fidl::decode!(AacTransport, D, &mut self.transport, decoder, offset + 0, _depth)?;
5448 fidl::decode!(AacChannelMode, D, &mut self.channel_mode, decoder, offset + 16, _depth)?;
5449 fidl::decode!(AacBitRate, D, &mut self.bit_rate, decoder, offset + 24, _depth)?;
5450 fidl::decode!(AacAudioObjectType, D, &mut self.aot, decoder, offset + 40, _depth)?;
5451 Ok(())
5452 }
5453 }
5454
5455 impl fidl::encoding::ValueTypeMarker for AacTransportAdts {
5456 type Borrowed<'a> = &'a Self;
5457 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5458 value
5459 }
5460 }
5461
5462 unsafe impl fidl::encoding::TypeMarker for AacTransportAdts {
5463 type Owned = Self;
5464
5465 #[inline(always)]
5466 fn inline_align(_context: fidl::encoding::Context) -> usize {
5467 1
5468 }
5469
5470 #[inline(always)]
5471 fn inline_size(_context: fidl::encoding::Context) -> usize {
5472 1
5473 }
5474 }
5475
5476 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportAdts, D>
5477 for &AacTransportAdts
5478 {
5479 #[inline]
5480 unsafe fn encode(
5481 self,
5482 encoder: &mut fidl::encoding::Encoder<'_, D>,
5483 offset: usize,
5484 _depth: fidl::encoding::Depth,
5485 ) -> fidl::Result<()> {
5486 encoder.debug_check_bounds::<AacTransportAdts>(offset);
5487 encoder.write_num(0u8, offset);
5488 Ok(())
5489 }
5490 }
5491
5492 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportAdts {
5493 #[inline(always)]
5494 fn new_empty() -> Self {
5495 Self
5496 }
5497
5498 #[inline]
5499 unsafe fn decode(
5500 &mut self,
5501 decoder: &mut fidl::encoding::Decoder<'_, D>,
5502 offset: usize,
5503 _depth: fidl::encoding::Depth,
5504 ) -> fidl::Result<()> {
5505 decoder.debug_check_bounds::<Self>(offset);
5506 match decoder.read_num::<u8>(offset) {
5507 0 => Ok(()),
5508 _ => Err(fidl::Error::Invalid),
5509 }
5510 }
5511 }
5512
5513 impl fidl::encoding::ValueTypeMarker for AacTransportLatm {
5514 type Borrowed<'a> = &'a Self;
5515 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5516 value
5517 }
5518 }
5519
5520 unsafe impl fidl::encoding::TypeMarker for AacTransportLatm {
5521 type Owned = Self;
5522
5523 #[inline(always)]
5524 fn inline_align(_context: fidl::encoding::Context) -> usize {
5525 1
5526 }
5527
5528 #[inline(always)]
5529 fn inline_size(_context: fidl::encoding::Context) -> usize {
5530 1
5531 }
5532 }
5533
5534 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportLatm, D>
5535 for &AacTransportLatm
5536 {
5537 #[inline]
5538 unsafe fn encode(
5539 self,
5540 encoder: &mut fidl::encoding::Encoder<'_, D>,
5541 offset: usize,
5542 _depth: fidl::encoding::Depth,
5543 ) -> fidl::Result<()> {
5544 encoder.debug_check_bounds::<AacTransportLatm>(offset);
5545 fidl::encoding::Encode::<AacTransportLatm, D>::encode(
5547 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.mux_config_present),),
5548 encoder,
5549 offset,
5550 _depth,
5551 )
5552 }
5553 }
5554 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
5555 fidl::encoding::Encode<AacTransportLatm, D> for (T0,)
5556 {
5557 #[inline]
5558 unsafe fn encode(
5559 self,
5560 encoder: &mut fidl::encoding::Encoder<'_, D>,
5561 offset: usize,
5562 depth: fidl::encoding::Depth,
5563 ) -> fidl::Result<()> {
5564 encoder.debug_check_bounds::<AacTransportLatm>(offset);
5565 self.0.encode(encoder, offset + 0, depth)?;
5569 Ok(())
5570 }
5571 }
5572
5573 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportLatm {
5574 #[inline(always)]
5575 fn new_empty() -> Self {
5576 Self { mux_config_present: fidl::new_empty!(bool, D) }
5577 }
5578
5579 #[inline]
5580 unsafe fn decode(
5581 &mut self,
5582 decoder: &mut fidl::encoding::Decoder<'_, D>,
5583 offset: usize,
5584 _depth: fidl::encoding::Depth,
5585 ) -> fidl::Result<()> {
5586 decoder.debug_check_bounds::<Self>(offset);
5587 fidl::decode!(bool, D, &mut self.mux_config_present, decoder, offset + 0, _depth)?;
5589 Ok(())
5590 }
5591 }
5592
5593 impl fidl::encoding::ValueTypeMarker for AacTransportRaw {
5594 type Borrowed<'a> = &'a Self;
5595 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5596 value
5597 }
5598 }
5599
5600 unsafe impl fidl::encoding::TypeMarker for AacTransportRaw {
5601 type Owned = Self;
5602
5603 #[inline(always)]
5604 fn inline_align(_context: fidl::encoding::Context) -> usize {
5605 1
5606 }
5607
5608 #[inline(always)]
5609 fn inline_size(_context: fidl::encoding::Context) -> usize {
5610 1
5611 }
5612 }
5613
5614 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportRaw, D>
5615 for &AacTransportRaw
5616 {
5617 #[inline]
5618 unsafe fn encode(
5619 self,
5620 encoder: &mut fidl::encoding::Encoder<'_, D>,
5621 offset: usize,
5622 _depth: fidl::encoding::Depth,
5623 ) -> fidl::Result<()> {
5624 encoder.debug_check_bounds::<AacTransportRaw>(offset);
5625 encoder.write_num(0u8, offset);
5626 Ok(())
5627 }
5628 }
5629
5630 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportRaw {
5631 #[inline(always)]
5632 fn new_empty() -> Self {
5633 Self
5634 }
5635
5636 #[inline]
5637 unsafe fn decode(
5638 &mut self,
5639 decoder: &mut fidl::encoding::Decoder<'_, D>,
5640 offset: usize,
5641 _depth: fidl::encoding::Depth,
5642 ) -> fidl::Result<()> {
5643 decoder.debug_check_bounds::<Self>(offset);
5644 match decoder.read_num::<u8>(offset) {
5645 0 => Ok(()),
5646 _ => Err(fidl::Error::Invalid),
5647 }
5648 }
5649 }
5650
5651 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchCaptureActivityResponse {
5652 type Borrowed<'a> = &'a Self;
5653 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5654 value
5655 }
5656 }
5657
5658 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchCaptureActivityResponse {
5659 type Owned = Self;
5660
5661 #[inline(always)]
5662 fn inline_align(_context: fidl::encoding::Context) -> usize {
5663 8
5664 }
5665
5666 #[inline(always)]
5667 fn inline_size(_context: fidl::encoding::Context) -> usize {
5668 16
5669 }
5670 }
5671
5672 unsafe impl<D: fidl::encoding::ResourceDialect>
5673 fidl::encoding::Encode<ActivityReporterWatchCaptureActivityResponse, D>
5674 for &ActivityReporterWatchCaptureActivityResponse
5675 {
5676 #[inline]
5677 unsafe fn encode(
5678 self,
5679 encoder: &mut fidl::encoding::Encoder<'_, D>,
5680 offset: usize,
5681 _depth: fidl::encoding::Depth,
5682 ) -> fidl::Result<()> {
5683 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivityResponse>(offset);
5684 fidl::encoding::Encode::<ActivityReporterWatchCaptureActivityResponse, D>::encode(
5686 (
5687 <fidl::encoding::Vector<AudioCaptureUsage, 4> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5688 ),
5689 encoder, offset, _depth
5690 )
5691 }
5692 }
5693 unsafe impl<
5694 D: fidl::encoding::ResourceDialect,
5695 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioCaptureUsage, 4>, D>,
5696 > fidl::encoding::Encode<ActivityReporterWatchCaptureActivityResponse, D> for (T0,)
5697 {
5698 #[inline]
5699 unsafe fn encode(
5700 self,
5701 encoder: &mut fidl::encoding::Encoder<'_, D>,
5702 offset: usize,
5703 depth: fidl::encoding::Depth,
5704 ) -> fidl::Result<()> {
5705 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivityResponse>(offset);
5706 self.0.encode(encoder, offset + 0, depth)?;
5710 Ok(())
5711 }
5712 }
5713
5714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5715 for ActivityReporterWatchCaptureActivityResponse
5716 {
5717 #[inline(always)]
5718 fn new_empty() -> Self {
5719 Self {
5720 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioCaptureUsage, 4>, D),
5721 }
5722 }
5723
5724 #[inline]
5725 unsafe fn decode(
5726 &mut self,
5727 decoder: &mut fidl::encoding::Decoder<'_, D>,
5728 offset: usize,
5729 _depth: fidl::encoding::Depth,
5730 ) -> fidl::Result<()> {
5731 decoder.debug_check_bounds::<Self>(offset);
5732 fidl::decode!(fidl::encoding::Vector<AudioCaptureUsage, 4>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5734 Ok(())
5735 }
5736 }
5737
5738 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchRenderActivityResponse {
5739 type Borrowed<'a> = &'a Self;
5740 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5741 value
5742 }
5743 }
5744
5745 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchRenderActivityResponse {
5746 type Owned = Self;
5747
5748 #[inline(always)]
5749 fn inline_align(_context: fidl::encoding::Context) -> usize {
5750 8
5751 }
5752
5753 #[inline(always)]
5754 fn inline_size(_context: fidl::encoding::Context) -> usize {
5755 16
5756 }
5757 }
5758
5759 unsafe impl<D: fidl::encoding::ResourceDialect>
5760 fidl::encoding::Encode<ActivityReporterWatchRenderActivityResponse, D>
5761 for &ActivityReporterWatchRenderActivityResponse
5762 {
5763 #[inline]
5764 unsafe fn encode(
5765 self,
5766 encoder: &mut fidl::encoding::Encoder<'_, D>,
5767 offset: usize,
5768 _depth: fidl::encoding::Depth,
5769 ) -> fidl::Result<()> {
5770 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivityResponse>(offset);
5771 fidl::encoding::Encode::<ActivityReporterWatchRenderActivityResponse, D>::encode(
5773 (
5774 <fidl::encoding::Vector<AudioRenderUsage, 5> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5775 ),
5776 encoder, offset, _depth
5777 )
5778 }
5779 }
5780 unsafe impl<
5781 D: fidl::encoding::ResourceDialect,
5782 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioRenderUsage, 5>, D>,
5783 > fidl::encoding::Encode<ActivityReporterWatchRenderActivityResponse, D> for (T0,)
5784 {
5785 #[inline]
5786 unsafe fn encode(
5787 self,
5788 encoder: &mut fidl::encoding::Encoder<'_, D>,
5789 offset: usize,
5790 depth: fidl::encoding::Depth,
5791 ) -> fidl::Result<()> {
5792 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivityResponse>(offset);
5793 self.0.encode(encoder, offset + 0, depth)?;
5797 Ok(())
5798 }
5799 }
5800
5801 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5802 for ActivityReporterWatchRenderActivityResponse
5803 {
5804 #[inline(always)]
5805 fn new_empty() -> Self {
5806 Self { active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioRenderUsage, 5>, D) }
5807 }
5808
5809 #[inline]
5810 unsafe fn decode(
5811 &mut self,
5812 decoder: &mut fidl::encoding::Decoder<'_, D>,
5813 offset: usize,
5814 _depth: fidl::encoding::Depth,
5815 ) -> fidl::Result<()> {
5816 decoder.debug_check_bounds::<Self>(offset);
5817 fidl::decode!(fidl::encoding::Vector<AudioRenderUsage, 5>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5819 Ok(())
5820 }
5821 }
5822
5823 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchCaptureActivity2Response {
5824 type Borrowed<'a> = &'a Self;
5825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5826 value
5827 }
5828 }
5829
5830 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchCaptureActivity2Response {
5831 type Owned = Self;
5832
5833 #[inline(always)]
5834 fn inline_align(_context: fidl::encoding::Context) -> usize {
5835 8
5836 }
5837
5838 #[inline(always)]
5839 fn inline_size(_context: fidl::encoding::Context) -> usize {
5840 16
5841 }
5842 }
5843
5844 unsafe impl<D: fidl::encoding::ResourceDialect>
5845 fidl::encoding::Encode<ActivityReporterWatchCaptureActivity2Response, D>
5846 for &ActivityReporterWatchCaptureActivity2Response
5847 {
5848 #[inline]
5849 unsafe fn encode(
5850 self,
5851 encoder: &mut fidl::encoding::Encoder<'_, D>,
5852 offset: usize,
5853 _depth: fidl::encoding::Depth,
5854 ) -> fidl::Result<()> {
5855 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivity2Response>(offset);
5856 fidl::encoding::Encode::<ActivityReporterWatchCaptureActivity2Response, D>::encode(
5858 (
5859 <fidl::encoding::Vector<AudioCaptureUsage2, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5860 ),
5861 encoder, offset, _depth
5862 )
5863 }
5864 }
5865 unsafe impl<
5866 D: fidl::encoding::ResourceDialect,
5867 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioCaptureUsage2, 8>, D>,
5868 > fidl::encoding::Encode<ActivityReporterWatchCaptureActivity2Response, D> for (T0,)
5869 {
5870 #[inline]
5871 unsafe fn encode(
5872 self,
5873 encoder: &mut fidl::encoding::Encoder<'_, D>,
5874 offset: usize,
5875 depth: fidl::encoding::Depth,
5876 ) -> fidl::Result<()> {
5877 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivity2Response>(offset);
5878 self.0.encode(encoder, offset + 0, depth)?;
5882 Ok(())
5883 }
5884 }
5885
5886 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5887 for ActivityReporterWatchCaptureActivity2Response
5888 {
5889 #[inline(always)]
5890 fn new_empty() -> Self {
5891 Self {
5892 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioCaptureUsage2, 8>, D),
5893 }
5894 }
5895
5896 #[inline]
5897 unsafe fn decode(
5898 &mut self,
5899 decoder: &mut fidl::encoding::Decoder<'_, D>,
5900 offset: usize,
5901 _depth: fidl::encoding::Depth,
5902 ) -> fidl::Result<()> {
5903 decoder.debug_check_bounds::<Self>(offset);
5904 fidl::decode!(fidl::encoding::Vector<AudioCaptureUsage2, 8>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5906 Ok(())
5907 }
5908 }
5909
5910 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchRenderActivity2Response {
5911 type Borrowed<'a> = &'a Self;
5912 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5913 value
5914 }
5915 }
5916
5917 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchRenderActivity2Response {
5918 type Owned = Self;
5919
5920 #[inline(always)]
5921 fn inline_align(_context: fidl::encoding::Context) -> usize {
5922 8
5923 }
5924
5925 #[inline(always)]
5926 fn inline_size(_context: fidl::encoding::Context) -> usize {
5927 16
5928 }
5929 }
5930
5931 unsafe impl<D: fidl::encoding::ResourceDialect>
5932 fidl::encoding::Encode<ActivityReporterWatchRenderActivity2Response, D>
5933 for &ActivityReporterWatchRenderActivity2Response
5934 {
5935 #[inline]
5936 unsafe fn encode(
5937 self,
5938 encoder: &mut fidl::encoding::Encoder<'_, D>,
5939 offset: usize,
5940 _depth: fidl::encoding::Depth,
5941 ) -> fidl::Result<()> {
5942 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivity2Response>(offset);
5943 fidl::encoding::Encode::<ActivityReporterWatchRenderActivity2Response, D>::encode(
5945 (
5946 <fidl::encoding::Vector<AudioRenderUsage2, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5947 ),
5948 encoder, offset, _depth
5949 )
5950 }
5951 }
5952 unsafe impl<
5953 D: fidl::encoding::ResourceDialect,
5954 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioRenderUsage2, 8>, D>,
5955 > fidl::encoding::Encode<ActivityReporterWatchRenderActivity2Response, D> for (T0,)
5956 {
5957 #[inline]
5958 unsafe fn encode(
5959 self,
5960 encoder: &mut fidl::encoding::Encoder<'_, D>,
5961 offset: usize,
5962 depth: fidl::encoding::Depth,
5963 ) -> fidl::Result<()> {
5964 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivity2Response>(offset);
5965 self.0.encode(encoder, offset + 0, depth)?;
5969 Ok(())
5970 }
5971 }
5972
5973 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5974 for ActivityReporterWatchRenderActivity2Response
5975 {
5976 #[inline(always)]
5977 fn new_empty() -> Self {
5978 Self {
5979 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioRenderUsage2, 8>, D),
5980 }
5981 }
5982
5983 #[inline]
5984 unsafe fn decode(
5985 &mut self,
5986 decoder: &mut fidl::encoding::Decoder<'_, D>,
5987 offset: usize,
5988 _depth: fidl::encoding::Depth,
5989 ) -> fidl::Result<()> {
5990 decoder.debug_check_bounds::<Self>(offset);
5991 fidl::decode!(fidl::encoding::Vector<AudioRenderUsage2, 8>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5993 Ok(())
5994 }
5995 }
5996
5997 impl fidl::encoding::ValueTypeMarker for AudioCapturerCaptureAtRequest {
5998 type Borrowed<'a> = &'a Self;
5999 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6000 value
6001 }
6002 }
6003
6004 unsafe impl fidl::encoding::TypeMarker for AudioCapturerCaptureAtRequest {
6005 type Owned = Self;
6006
6007 #[inline(always)]
6008 fn inline_align(_context: fidl::encoding::Context) -> usize {
6009 4
6010 }
6011
6012 #[inline(always)]
6013 fn inline_size(_context: fidl::encoding::Context) -> usize {
6014 12
6015 }
6016 #[inline(always)]
6017 fn encode_is_copy() -> bool {
6018 true
6019 }
6020
6021 #[inline(always)]
6022 fn decode_is_copy() -> bool {
6023 true
6024 }
6025 }
6026
6027 unsafe impl<D: fidl::encoding::ResourceDialect>
6028 fidl::encoding::Encode<AudioCapturerCaptureAtRequest, D>
6029 for &AudioCapturerCaptureAtRequest
6030 {
6031 #[inline]
6032 unsafe fn encode(
6033 self,
6034 encoder: &mut fidl::encoding::Encoder<'_, D>,
6035 offset: usize,
6036 _depth: fidl::encoding::Depth,
6037 ) -> fidl::Result<()> {
6038 encoder.debug_check_bounds::<AudioCapturerCaptureAtRequest>(offset);
6039 unsafe {
6040 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6042 (buf_ptr as *mut AudioCapturerCaptureAtRequest)
6043 .write_unaligned((self as *const AudioCapturerCaptureAtRequest).read());
6044 }
6047 Ok(())
6048 }
6049 }
6050 unsafe impl<
6051 D: fidl::encoding::ResourceDialect,
6052 T0: fidl::encoding::Encode<u32, D>,
6053 T1: fidl::encoding::Encode<u32, D>,
6054 T2: fidl::encoding::Encode<u32, D>,
6055 > fidl::encoding::Encode<AudioCapturerCaptureAtRequest, D> for (T0, T1, T2)
6056 {
6057 #[inline]
6058 unsafe fn encode(
6059 self,
6060 encoder: &mut fidl::encoding::Encoder<'_, D>,
6061 offset: usize,
6062 depth: fidl::encoding::Depth,
6063 ) -> fidl::Result<()> {
6064 encoder.debug_check_bounds::<AudioCapturerCaptureAtRequest>(offset);
6065 self.0.encode(encoder, offset + 0, depth)?;
6069 self.1.encode(encoder, offset + 4, depth)?;
6070 self.2.encode(encoder, offset + 8, depth)?;
6071 Ok(())
6072 }
6073 }
6074
6075 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6076 for AudioCapturerCaptureAtRequest
6077 {
6078 #[inline(always)]
6079 fn new_empty() -> Self {
6080 Self {
6081 payload_buffer_id: fidl::new_empty!(u32, D),
6082 payload_offset: fidl::new_empty!(u32, D),
6083 frames: fidl::new_empty!(u32, D),
6084 }
6085 }
6086
6087 #[inline]
6088 unsafe fn decode(
6089 &mut self,
6090 decoder: &mut fidl::encoding::Decoder<'_, D>,
6091 offset: usize,
6092 _depth: fidl::encoding::Depth,
6093 ) -> fidl::Result<()> {
6094 decoder.debug_check_bounds::<Self>(offset);
6095 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6096 unsafe {
6099 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
6100 }
6101 Ok(())
6102 }
6103 }
6104
6105 impl fidl::encoding::ValueTypeMarker for AudioCapturerCaptureAtResponse {
6106 type Borrowed<'a> = &'a Self;
6107 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6108 value
6109 }
6110 }
6111
6112 unsafe impl fidl::encoding::TypeMarker for AudioCapturerCaptureAtResponse {
6113 type Owned = Self;
6114
6115 #[inline(always)]
6116 fn inline_align(_context: fidl::encoding::Context) -> usize {
6117 8
6118 }
6119
6120 #[inline(always)]
6121 fn inline_size(_context: fidl::encoding::Context) -> usize {
6122 56
6123 }
6124 }
6125
6126 unsafe impl<D: fidl::encoding::ResourceDialect>
6127 fidl::encoding::Encode<AudioCapturerCaptureAtResponse, D>
6128 for &AudioCapturerCaptureAtResponse
6129 {
6130 #[inline]
6131 unsafe fn encode(
6132 self,
6133 encoder: &mut fidl::encoding::Encoder<'_, D>,
6134 offset: usize,
6135 _depth: fidl::encoding::Depth,
6136 ) -> fidl::Result<()> {
6137 encoder.debug_check_bounds::<AudioCapturerCaptureAtResponse>(offset);
6138 unsafe {
6139 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6141 (buf_ptr as *mut AudioCapturerCaptureAtResponse)
6142 .write_unaligned((self as *const AudioCapturerCaptureAtResponse).read());
6143 let padding_ptr = buf_ptr.offset(8) as *mut u64;
6146 let padding_mask = 0xffffffff00000000u64;
6147 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
6148 let padding_ptr = buf_ptr.offset(32) as *mut u64;
6149 let padding_mask = 0xffffffff00000000u64;
6150 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
6151 }
6152 Ok(())
6153 }
6154 }
6155 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
6156 fidl::encoding::Encode<AudioCapturerCaptureAtResponse, D> for (T0,)
6157 {
6158 #[inline]
6159 unsafe fn encode(
6160 self,
6161 encoder: &mut fidl::encoding::Encoder<'_, D>,
6162 offset: usize,
6163 depth: fidl::encoding::Depth,
6164 ) -> fidl::Result<()> {
6165 encoder.debug_check_bounds::<AudioCapturerCaptureAtResponse>(offset);
6166 self.0.encode(encoder, offset + 0, depth)?;
6170 Ok(())
6171 }
6172 }
6173
6174 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6175 for AudioCapturerCaptureAtResponse
6176 {
6177 #[inline(always)]
6178 fn new_empty() -> Self {
6179 Self { captured_packet: fidl::new_empty!(StreamPacket, D) }
6180 }
6181
6182 #[inline]
6183 unsafe fn decode(
6184 &mut self,
6185 decoder: &mut fidl::encoding::Decoder<'_, D>,
6186 offset: usize,
6187 _depth: fidl::encoding::Depth,
6188 ) -> fidl::Result<()> {
6189 decoder.debug_check_bounds::<Self>(offset);
6190 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6191 let ptr = unsafe { buf_ptr.offset(8) };
6193 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6194 let mask = 0xffffffff00000000u64;
6195 let maskedval = padval & mask;
6196 if maskedval != 0 {
6197 return Err(fidl::Error::NonZeroPadding {
6198 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
6199 });
6200 }
6201 let ptr = unsafe { buf_ptr.offset(32) };
6202 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6203 let mask = 0xffffffff00000000u64;
6204 let maskedval = padval & mask;
6205 if maskedval != 0 {
6206 return Err(fidl::Error::NonZeroPadding {
6207 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
6208 });
6209 }
6210 unsafe {
6212 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
6213 }
6214 Ok(())
6215 }
6216 }
6217
6218 impl fidl::encoding::ValueTypeMarker for AudioCapturerGetStreamTypeResponse {
6219 type Borrowed<'a> = &'a Self;
6220 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6221 value
6222 }
6223 }
6224
6225 unsafe impl fidl::encoding::TypeMarker for AudioCapturerGetStreamTypeResponse {
6226 type Owned = Self;
6227
6228 #[inline(always)]
6229 fn inline_align(_context: fidl::encoding::Context) -> usize {
6230 8
6231 }
6232
6233 #[inline(always)]
6234 fn inline_size(_context: fidl::encoding::Context) -> usize {
6235 48
6236 }
6237 }
6238
6239 unsafe impl<D: fidl::encoding::ResourceDialect>
6240 fidl::encoding::Encode<AudioCapturerGetStreamTypeResponse, D>
6241 for &AudioCapturerGetStreamTypeResponse
6242 {
6243 #[inline]
6244 unsafe fn encode(
6245 self,
6246 encoder: &mut fidl::encoding::Encoder<'_, D>,
6247 offset: usize,
6248 _depth: fidl::encoding::Depth,
6249 ) -> fidl::Result<()> {
6250 encoder.debug_check_bounds::<AudioCapturerGetStreamTypeResponse>(offset);
6251 fidl::encoding::Encode::<AudioCapturerGetStreamTypeResponse, D>::encode(
6253 (<StreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),),
6254 encoder,
6255 offset,
6256 _depth,
6257 )
6258 }
6259 }
6260 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamType, D>>
6261 fidl::encoding::Encode<AudioCapturerGetStreamTypeResponse, D> for (T0,)
6262 {
6263 #[inline]
6264 unsafe fn encode(
6265 self,
6266 encoder: &mut fidl::encoding::Encoder<'_, D>,
6267 offset: usize,
6268 depth: fidl::encoding::Depth,
6269 ) -> fidl::Result<()> {
6270 encoder.debug_check_bounds::<AudioCapturerGetStreamTypeResponse>(offset);
6271 self.0.encode(encoder, offset + 0, depth)?;
6275 Ok(())
6276 }
6277 }
6278
6279 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6280 for AudioCapturerGetStreamTypeResponse
6281 {
6282 #[inline(always)]
6283 fn new_empty() -> Self {
6284 Self { stream_type: fidl::new_empty!(StreamType, D) }
6285 }
6286
6287 #[inline]
6288 unsafe fn decode(
6289 &mut self,
6290 decoder: &mut fidl::encoding::Decoder<'_, D>,
6291 offset: usize,
6292 _depth: fidl::encoding::Depth,
6293 ) -> fidl::Result<()> {
6294 decoder.debug_check_bounds::<Self>(offset);
6295 fidl::decode!(StreamType, D, &mut self.stream_type, decoder, offset + 0, _depth)?;
6297 Ok(())
6298 }
6299 }
6300
6301 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetPcmStreamTypeRequest {
6302 type Borrowed<'a> = &'a Self;
6303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6304 value
6305 }
6306 }
6307
6308 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetPcmStreamTypeRequest {
6309 type Owned = Self;
6310
6311 #[inline(always)]
6312 fn inline_align(_context: fidl::encoding::Context) -> usize {
6313 4
6314 }
6315
6316 #[inline(always)]
6317 fn inline_size(_context: fidl::encoding::Context) -> usize {
6318 12
6319 }
6320 }
6321
6322 unsafe impl<D: fidl::encoding::ResourceDialect>
6323 fidl::encoding::Encode<AudioCapturerSetPcmStreamTypeRequest, D>
6324 for &AudioCapturerSetPcmStreamTypeRequest
6325 {
6326 #[inline]
6327 unsafe fn encode(
6328 self,
6329 encoder: &mut fidl::encoding::Encoder<'_, D>,
6330 offset: usize,
6331 _depth: fidl::encoding::Depth,
6332 ) -> fidl::Result<()> {
6333 encoder.debug_check_bounds::<AudioCapturerSetPcmStreamTypeRequest>(offset);
6334 fidl::encoding::Encode::<AudioCapturerSetPcmStreamTypeRequest, D>::encode(
6336 (<AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),),
6337 encoder,
6338 offset,
6339 _depth,
6340 )
6341 }
6342 }
6343 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioStreamType, D>>
6344 fidl::encoding::Encode<AudioCapturerSetPcmStreamTypeRequest, D> for (T0,)
6345 {
6346 #[inline]
6347 unsafe fn encode(
6348 self,
6349 encoder: &mut fidl::encoding::Encoder<'_, D>,
6350 offset: usize,
6351 depth: fidl::encoding::Depth,
6352 ) -> fidl::Result<()> {
6353 encoder.debug_check_bounds::<AudioCapturerSetPcmStreamTypeRequest>(offset);
6354 self.0.encode(encoder, offset + 0, depth)?;
6358 Ok(())
6359 }
6360 }
6361
6362 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6363 for AudioCapturerSetPcmStreamTypeRequest
6364 {
6365 #[inline(always)]
6366 fn new_empty() -> Self {
6367 Self { stream_type: fidl::new_empty!(AudioStreamType, D) }
6368 }
6369
6370 #[inline]
6371 unsafe fn decode(
6372 &mut self,
6373 decoder: &mut fidl::encoding::Decoder<'_, D>,
6374 offset: usize,
6375 _depth: fidl::encoding::Depth,
6376 ) -> fidl::Result<()> {
6377 decoder.debug_check_bounds::<Self>(offset);
6378 fidl::decode!(AudioStreamType, D, &mut self.stream_type, decoder, offset + 0, _depth)?;
6380 Ok(())
6381 }
6382 }
6383
6384 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetUsage2Request {
6385 type Borrowed<'a> = &'a Self;
6386 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6387 value
6388 }
6389 }
6390
6391 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetUsage2Request {
6392 type Owned = Self;
6393
6394 #[inline(always)]
6395 fn inline_align(_context: fidl::encoding::Context) -> usize {
6396 4
6397 }
6398
6399 #[inline(always)]
6400 fn inline_size(_context: fidl::encoding::Context) -> usize {
6401 4
6402 }
6403 }
6404
6405 unsafe impl<D: fidl::encoding::ResourceDialect>
6406 fidl::encoding::Encode<AudioCapturerSetUsage2Request, D>
6407 for &AudioCapturerSetUsage2Request
6408 {
6409 #[inline]
6410 unsafe fn encode(
6411 self,
6412 encoder: &mut fidl::encoding::Encoder<'_, D>,
6413 offset: usize,
6414 _depth: fidl::encoding::Depth,
6415 ) -> fidl::Result<()> {
6416 encoder.debug_check_bounds::<AudioCapturerSetUsage2Request>(offset);
6417 fidl::encoding::Encode::<AudioCapturerSetUsage2Request, D>::encode(
6419 (<AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
6420 encoder,
6421 offset,
6422 _depth,
6423 )
6424 }
6425 }
6426 unsafe impl<
6427 D: fidl::encoding::ResourceDialect,
6428 T0: fidl::encoding::Encode<AudioCaptureUsage2, D>,
6429 > fidl::encoding::Encode<AudioCapturerSetUsage2Request, D> for (T0,)
6430 {
6431 #[inline]
6432 unsafe fn encode(
6433 self,
6434 encoder: &mut fidl::encoding::Encoder<'_, D>,
6435 offset: usize,
6436 depth: fidl::encoding::Depth,
6437 ) -> fidl::Result<()> {
6438 encoder.debug_check_bounds::<AudioCapturerSetUsage2Request>(offset);
6439 self.0.encode(encoder, offset + 0, depth)?;
6443 Ok(())
6444 }
6445 }
6446
6447 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6448 for AudioCapturerSetUsage2Request
6449 {
6450 #[inline(always)]
6451 fn new_empty() -> Self {
6452 Self { usage: fidl::new_empty!(AudioCaptureUsage2, D) }
6453 }
6454
6455 #[inline]
6456 unsafe fn decode(
6457 &mut self,
6458 decoder: &mut fidl::encoding::Decoder<'_, D>,
6459 offset: usize,
6460 _depth: fidl::encoding::Depth,
6461 ) -> fidl::Result<()> {
6462 decoder.debug_check_bounds::<Self>(offset);
6463 fidl::decode!(AudioCaptureUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
6465 Ok(())
6466 }
6467 }
6468
6469 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetUsageRequest {
6470 type Borrowed<'a> = &'a Self;
6471 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6472 value
6473 }
6474 }
6475
6476 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetUsageRequest {
6477 type Owned = Self;
6478
6479 #[inline(always)]
6480 fn inline_align(_context: fidl::encoding::Context) -> usize {
6481 4
6482 }
6483
6484 #[inline(always)]
6485 fn inline_size(_context: fidl::encoding::Context) -> usize {
6486 4
6487 }
6488 }
6489
6490 unsafe impl<D: fidl::encoding::ResourceDialect>
6491 fidl::encoding::Encode<AudioCapturerSetUsageRequest, D> for &AudioCapturerSetUsageRequest
6492 {
6493 #[inline]
6494 unsafe fn encode(
6495 self,
6496 encoder: &mut fidl::encoding::Encoder<'_, D>,
6497 offset: usize,
6498 _depth: fidl::encoding::Depth,
6499 ) -> fidl::Result<()> {
6500 encoder.debug_check_bounds::<AudioCapturerSetUsageRequest>(offset);
6501 fidl::encoding::Encode::<AudioCapturerSetUsageRequest, D>::encode(
6503 (<AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
6504 encoder,
6505 offset,
6506 _depth,
6507 )
6508 }
6509 }
6510 unsafe impl<
6511 D: fidl::encoding::ResourceDialect,
6512 T0: fidl::encoding::Encode<AudioCaptureUsage, D>,
6513 > fidl::encoding::Encode<AudioCapturerSetUsageRequest, D> for (T0,)
6514 {
6515 #[inline]
6516 unsafe fn encode(
6517 self,
6518 encoder: &mut fidl::encoding::Encoder<'_, D>,
6519 offset: usize,
6520 depth: fidl::encoding::Depth,
6521 ) -> fidl::Result<()> {
6522 encoder.debug_check_bounds::<AudioCapturerSetUsageRequest>(offset);
6523 self.0.encode(encoder, offset + 0, depth)?;
6527 Ok(())
6528 }
6529 }
6530
6531 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6532 for AudioCapturerSetUsageRequest
6533 {
6534 #[inline(always)]
6535 fn new_empty() -> Self {
6536 Self { usage: fidl::new_empty!(AudioCaptureUsage, D) }
6537 }
6538
6539 #[inline]
6540 unsafe fn decode(
6541 &mut self,
6542 decoder: &mut fidl::encoding::Decoder<'_, D>,
6543 offset: usize,
6544 _depth: fidl::encoding::Depth,
6545 ) -> fidl::Result<()> {
6546 decoder.debug_check_bounds::<Self>(offset);
6547 fidl::decode!(AudioCaptureUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
6549 Ok(())
6550 }
6551 }
6552
6553 impl fidl::encoding::ValueTypeMarker for AudioCapturerStartAsyncCaptureRequest {
6554 type Borrowed<'a> = &'a Self;
6555 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6556 value
6557 }
6558 }
6559
6560 unsafe impl fidl::encoding::TypeMarker for AudioCapturerStartAsyncCaptureRequest {
6561 type Owned = Self;
6562
6563 #[inline(always)]
6564 fn inline_align(_context: fidl::encoding::Context) -> usize {
6565 4
6566 }
6567
6568 #[inline(always)]
6569 fn inline_size(_context: fidl::encoding::Context) -> usize {
6570 4
6571 }
6572 #[inline(always)]
6573 fn encode_is_copy() -> bool {
6574 true
6575 }
6576
6577 #[inline(always)]
6578 fn decode_is_copy() -> bool {
6579 true
6580 }
6581 }
6582
6583 unsafe impl<D: fidl::encoding::ResourceDialect>
6584 fidl::encoding::Encode<AudioCapturerStartAsyncCaptureRequest, D>
6585 for &AudioCapturerStartAsyncCaptureRequest
6586 {
6587 #[inline]
6588 unsafe fn encode(
6589 self,
6590 encoder: &mut fidl::encoding::Encoder<'_, D>,
6591 offset: usize,
6592 _depth: fidl::encoding::Depth,
6593 ) -> fidl::Result<()> {
6594 encoder.debug_check_bounds::<AudioCapturerStartAsyncCaptureRequest>(offset);
6595 unsafe {
6596 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6598 (buf_ptr as *mut AudioCapturerStartAsyncCaptureRequest)
6599 .write_unaligned((self as *const AudioCapturerStartAsyncCaptureRequest).read());
6600 }
6603 Ok(())
6604 }
6605 }
6606 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
6607 fidl::encoding::Encode<AudioCapturerStartAsyncCaptureRequest, D> for (T0,)
6608 {
6609 #[inline]
6610 unsafe fn encode(
6611 self,
6612 encoder: &mut fidl::encoding::Encoder<'_, D>,
6613 offset: usize,
6614 depth: fidl::encoding::Depth,
6615 ) -> fidl::Result<()> {
6616 encoder.debug_check_bounds::<AudioCapturerStartAsyncCaptureRequest>(offset);
6617 self.0.encode(encoder, offset + 0, depth)?;
6621 Ok(())
6622 }
6623 }
6624
6625 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6626 for AudioCapturerStartAsyncCaptureRequest
6627 {
6628 #[inline(always)]
6629 fn new_empty() -> Self {
6630 Self { frames_per_packet: fidl::new_empty!(u32, D) }
6631 }
6632
6633 #[inline]
6634 unsafe fn decode(
6635 &mut self,
6636 decoder: &mut fidl::encoding::Decoder<'_, D>,
6637 offset: usize,
6638 _depth: fidl::encoding::Depth,
6639 ) -> fidl::Result<()> {
6640 decoder.debug_check_bounds::<Self>(offset);
6641 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6642 unsafe {
6645 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
6646 }
6647 Ok(())
6648 }
6649 }
6650
6651 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatAac {
6652 type Borrowed<'a> = &'a Self;
6653 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6654 value
6655 }
6656 }
6657
6658 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatAac {
6659 type Owned = Self;
6660
6661 #[inline(always)]
6662 fn inline_align(_context: fidl::encoding::Context) -> usize {
6663 1
6664 }
6665
6666 #[inline(always)]
6667 fn inline_size(_context: fidl::encoding::Context) -> usize {
6668 1
6669 }
6670 }
6671
6672 unsafe impl<D: fidl::encoding::ResourceDialect>
6673 fidl::encoding::Encode<AudioCompressedFormatAac, D> for &AudioCompressedFormatAac
6674 {
6675 #[inline]
6676 unsafe fn encode(
6677 self,
6678 encoder: &mut fidl::encoding::Encoder<'_, D>,
6679 offset: usize,
6680 _depth: fidl::encoding::Depth,
6681 ) -> fidl::Result<()> {
6682 encoder.debug_check_bounds::<AudioCompressedFormatAac>(offset);
6683 encoder.write_num(0u8, offset);
6684 Ok(())
6685 }
6686 }
6687
6688 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6689 for AudioCompressedFormatAac
6690 {
6691 #[inline(always)]
6692 fn new_empty() -> Self {
6693 Self
6694 }
6695
6696 #[inline]
6697 unsafe fn decode(
6698 &mut self,
6699 decoder: &mut fidl::encoding::Decoder<'_, D>,
6700 offset: usize,
6701 _depth: fidl::encoding::Depth,
6702 ) -> fidl::Result<()> {
6703 decoder.debug_check_bounds::<Self>(offset);
6704 match decoder.read_num::<u8>(offset) {
6705 0 => Ok(()),
6706 _ => Err(fidl::Error::Invalid),
6707 }
6708 }
6709 }
6710
6711 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatSbc {
6712 type Borrowed<'a> = &'a Self;
6713 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6714 value
6715 }
6716 }
6717
6718 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatSbc {
6719 type Owned = Self;
6720
6721 #[inline(always)]
6722 fn inline_align(_context: fidl::encoding::Context) -> usize {
6723 1
6724 }
6725
6726 #[inline(always)]
6727 fn inline_size(_context: fidl::encoding::Context) -> usize {
6728 1
6729 }
6730 }
6731
6732 unsafe impl<D: fidl::encoding::ResourceDialect>
6733 fidl::encoding::Encode<AudioCompressedFormatSbc, D> for &AudioCompressedFormatSbc
6734 {
6735 #[inline]
6736 unsafe fn encode(
6737 self,
6738 encoder: &mut fidl::encoding::Encoder<'_, D>,
6739 offset: usize,
6740 _depth: fidl::encoding::Depth,
6741 ) -> fidl::Result<()> {
6742 encoder.debug_check_bounds::<AudioCompressedFormatSbc>(offset);
6743 encoder.write_num(0u8, offset);
6744 Ok(())
6745 }
6746 }
6747
6748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6749 for AudioCompressedFormatSbc
6750 {
6751 #[inline(always)]
6752 fn new_empty() -> Self {
6753 Self
6754 }
6755
6756 #[inline]
6757 unsafe fn decode(
6758 &mut self,
6759 decoder: &mut fidl::encoding::Decoder<'_, D>,
6760 offset: usize,
6761 _depth: fidl::encoding::Depth,
6762 ) -> fidl::Result<()> {
6763 decoder.debug_check_bounds::<Self>(offset);
6764 match decoder.read_num::<u8>(offset) {
6765 0 => Ok(()),
6766 _ => Err(fidl::Error::Invalid),
6767 }
6768 }
6769 }
6770
6771 impl fidl::encoding::ValueTypeMarker for AudioConsumerSetRateRequest {
6772 type Borrowed<'a> = &'a Self;
6773 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6774 value
6775 }
6776 }
6777
6778 unsafe impl fidl::encoding::TypeMarker for AudioConsumerSetRateRequest {
6779 type Owned = Self;
6780
6781 #[inline(always)]
6782 fn inline_align(_context: fidl::encoding::Context) -> usize {
6783 4
6784 }
6785
6786 #[inline(always)]
6787 fn inline_size(_context: fidl::encoding::Context) -> usize {
6788 4
6789 }
6790 }
6791
6792 unsafe impl<D: fidl::encoding::ResourceDialect>
6793 fidl::encoding::Encode<AudioConsumerSetRateRequest, D> for &AudioConsumerSetRateRequest
6794 {
6795 #[inline]
6796 unsafe fn encode(
6797 self,
6798 encoder: &mut fidl::encoding::Encoder<'_, D>,
6799 offset: usize,
6800 _depth: fidl::encoding::Depth,
6801 ) -> fidl::Result<()> {
6802 encoder.debug_check_bounds::<AudioConsumerSetRateRequest>(offset);
6803 fidl::encoding::Encode::<AudioConsumerSetRateRequest, D>::encode(
6805 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.rate),),
6806 encoder,
6807 offset,
6808 _depth,
6809 )
6810 }
6811 }
6812 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
6813 fidl::encoding::Encode<AudioConsumerSetRateRequest, D> for (T0,)
6814 {
6815 #[inline]
6816 unsafe fn encode(
6817 self,
6818 encoder: &mut fidl::encoding::Encoder<'_, D>,
6819 offset: usize,
6820 depth: fidl::encoding::Depth,
6821 ) -> fidl::Result<()> {
6822 encoder.debug_check_bounds::<AudioConsumerSetRateRequest>(offset);
6823 self.0.encode(encoder, offset + 0, depth)?;
6827 Ok(())
6828 }
6829 }
6830
6831 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6832 for AudioConsumerSetRateRequest
6833 {
6834 #[inline(always)]
6835 fn new_empty() -> Self {
6836 Self { rate: fidl::new_empty!(f32, D) }
6837 }
6838
6839 #[inline]
6840 unsafe fn decode(
6841 &mut self,
6842 decoder: &mut fidl::encoding::Decoder<'_, D>,
6843 offset: usize,
6844 _depth: fidl::encoding::Depth,
6845 ) -> fidl::Result<()> {
6846 decoder.debug_check_bounds::<Self>(offset);
6847 fidl::decode!(f32, D, &mut self.rate, decoder, offset + 0, _depth)?;
6849 Ok(())
6850 }
6851 }
6852
6853 impl fidl::encoding::ValueTypeMarker for AudioConsumerStartRequest {
6854 type Borrowed<'a> = &'a Self;
6855 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6856 value
6857 }
6858 }
6859
6860 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStartRequest {
6861 type Owned = Self;
6862
6863 #[inline(always)]
6864 fn inline_align(_context: fidl::encoding::Context) -> usize {
6865 8
6866 }
6867
6868 #[inline(always)]
6869 fn inline_size(_context: fidl::encoding::Context) -> usize {
6870 24
6871 }
6872 }
6873
6874 unsafe impl<D: fidl::encoding::ResourceDialect>
6875 fidl::encoding::Encode<AudioConsumerStartRequest, D> for &AudioConsumerStartRequest
6876 {
6877 #[inline]
6878 unsafe fn encode(
6879 self,
6880 encoder: &mut fidl::encoding::Encoder<'_, D>,
6881 offset: usize,
6882 _depth: fidl::encoding::Depth,
6883 ) -> fidl::Result<()> {
6884 encoder.debug_check_bounds::<AudioConsumerStartRequest>(offset);
6885 fidl::encoding::Encode::<AudioConsumerStartRequest, D>::encode(
6887 (
6888 <AudioConsumerStartFlags as fidl::encoding::ValueTypeMarker>::borrow(
6889 &self.flags,
6890 ),
6891 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.reference_time),
6892 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.media_time),
6893 ),
6894 encoder,
6895 offset,
6896 _depth,
6897 )
6898 }
6899 }
6900 unsafe impl<
6901 D: fidl::encoding::ResourceDialect,
6902 T0: fidl::encoding::Encode<AudioConsumerStartFlags, D>,
6903 T1: fidl::encoding::Encode<i64, D>,
6904 T2: fidl::encoding::Encode<i64, D>,
6905 > fidl::encoding::Encode<AudioConsumerStartRequest, D> for (T0, T1, T2)
6906 {
6907 #[inline]
6908 unsafe fn encode(
6909 self,
6910 encoder: &mut fidl::encoding::Encoder<'_, D>,
6911 offset: usize,
6912 depth: fidl::encoding::Depth,
6913 ) -> fidl::Result<()> {
6914 encoder.debug_check_bounds::<AudioConsumerStartRequest>(offset);
6915 unsafe {
6918 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
6919 (ptr as *mut u64).write_unaligned(0);
6920 }
6921 self.0.encode(encoder, offset + 0, depth)?;
6923 self.1.encode(encoder, offset + 8, depth)?;
6924 self.2.encode(encoder, offset + 16, depth)?;
6925 Ok(())
6926 }
6927 }
6928
6929 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6930 for AudioConsumerStartRequest
6931 {
6932 #[inline(always)]
6933 fn new_empty() -> Self {
6934 Self {
6935 flags: fidl::new_empty!(AudioConsumerStartFlags, D),
6936 reference_time: fidl::new_empty!(i64, D),
6937 media_time: fidl::new_empty!(i64, D),
6938 }
6939 }
6940
6941 #[inline]
6942 unsafe fn decode(
6943 &mut self,
6944 decoder: &mut fidl::encoding::Decoder<'_, D>,
6945 offset: usize,
6946 _depth: fidl::encoding::Depth,
6947 ) -> fidl::Result<()> {
6948 decoder.debug_check_bounds::<Self>(offset);
6949 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
6951 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6952 let mask = 0xffffffff00000000u64;
6953 let maskedval = padval & mask;
6954 if maskedval != 0 {
6955 return Err(fidl::Error::NonZeroPadding {
6956 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
6957 });
6958 }
6959 fidl::decode!(
6960 AudioConsumerStartFlags,
6961 D,
6962 &mut self.flags,
6963 decoder,
6964 offset + 0,
6965 _depth
6966 )?;
6967 fidl::decode!(i64, D, &mut self.reference_time, decoder, offset + 8, _depth)?;
6968 fidl::decode!(i64, D, &mut self.media_time, decoder, offset + 16, _depth)?;
6969 Ok(())
6970 }
6971 }
6972
6973 impl fidl::encoding::ValueTypeMarker for AudioConsumerWatchStatusResponse {
6974 type Borrowed<'a> = &'a Self;
6975 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6976 value
6977 }
6978 }
6979
6980 unsafe impl fidl::encoding::TypeMarker for AudioConsumerWatchStatusResponse {
6981 type Owned = Self;
6982
6983 #[inline(always)]
6984 fn inline_align(_context: fidl::encoding::Context) -> usize {
6985 8
6986 }
6987
6988 #[inline(always)]
6989 fn inline_size(_context: fidl::encoding::Context) -> usize {
6990 16
6991 }
6992 }
6993
6994 unsafe impl<D: fidl::encoding::ResourceDialect>
6995 fidl::encoding::Encode<AudioConsumerWatchStatusResponse, D>
6996 for &AudioConsumerWatchStatusResponse
6997 {
6998 #[inline]
6999 unsafe fn encode(
7000 self,
7001 encoder: &mut fidl::encoding::Encoder<'_, D>,
7002 offset: usize,
7003 _depth: fidl::encoding::Depth,
7004 ) -> fidl::Result<()> {
7005 encoder.debug_check_bounds::<AudioConsumerWatchStatusResponse>(offset);
7006 fidl::encoding::Encode::<AudioConsumerWatchStatusResponse, D>::encode(
7008 (<AudioConsumerStatus as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
7009 encoder,
7010 offset,
7011 _depth,
7012 )
7013 }
7014 }
7015 unsafe impl<
7016 D: fidl::encoding::ResourceDialect,
7017 T0: fidl::encoding::Encode<AudioConsumerStatus, D>,
7018 > fidl::encoding::Encode<AudioConsumerWatchStatusResponse, D> for (T0,)
7019 {
7020 #[inline]
7021 unsafe fn encode(
7022 self,
7023 encoder: &mut fidl::encoding::Encoder<'_, D>,
7024 offset: usize,
7025 depth: fidl::encoding::Depth,
7026 ) -> fidl::Result<()> {
7027 encoder.debug_check_bounds::<AudioConsumerWatchStatusResponse>(offset);
7028 self.0.encode(encoder, offset + 0, depth)?;
7032 Ok(())
7033 }
7034 }
7035
7036 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7037 for AudioConsumerWatchStatusResponse
7038 {
7039 #[inline(always)]
7040 fn new_empty() -> Self {
7041 Self { status: fidl::new_empty!(AudioConsumerStatus, D) }
7042 }
7043
7044 #[inline]
7045 unsafe fn decode(
7046 &mut self,
7047 decoder: &mut fidl::encoding::Decoder<'_, D>,
7048 offset: usize,
7049 _depth: fidl::encoding::Depth,
7050 ) -> fidl::Result<()> {
7051 decoder.debug_check_bounds::<Self>(offset);
7052 fidl::decode!(AudioConsumerStatus, D, &mut self.status, decoder, offset + 0, _depth)?;
7054 Ok(())
7055 }
7056 }
7057
7058 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolume2Request {
7059 type Borrowed<'a> = &'a Self;
7060 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7061 value
7062 }
7063 }
7064
7065 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolume2Request {
7066 type Owned = Self;
7067
7068 #[inline(always)]
7069 fn inline_align(_context: fidl::encoding::Context) -> usize {
7070 8
7071 }
7072
7073 #[inline(always)]
7074 fn inline_size(_context: fidl::encoding::Context) -> usize {
7075 24
7076 }
7077 }
7078
7079 unsafe impl<D: fidl::encoding::ResourceDialect>
7080 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Request, D>
7081 for &AudioCoreGetDbFromVolume2Request
7082 {
7083 #[inline]
7084 unsafe fn encode(
7085 self,
7086 encoder: &mut fidl::encoding::Encoder<'_, D>,
7087 offset: usize,
7088 _depth: fidl::encoding::Depth,
7089 ) -> fidl::Result<()> {
7090 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Request>(offset);
7091 fidl::encoding::Encode::<AudioCoreGetDbFromVolume2Request, D>::encode(
7093 (
7094 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7095 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),
7096 ),
7097 encoder,
7098 offset,
7099 _depth,
7100 )
7101 }
7102 }
7103 unsafe impl<
7104 D: fidl::encoding::ResourceDialect,
7105 T0: fidl::encoding::Encode<Usage2, D>,
7106 T1: fidl::encoding::Encode<f32, D>,
7107 > fidl::encoding::Encode<AudioCoreGetDbFromVolume2Request, D> for (T0, T1)
7108 {
7109 #[inline]
7110 unsafe fn encode(
7111 self,
7112 encoder: &mut fidl::encoding::Encoder<'_, D>,
7113 offset: usize,
7114 depth: fidl::encoding::Depth,
7115 ) -> fidl::Result<()> {
7116 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Request>(offset);
7117 unsafe {
7120 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7121 (ptr as *mut u64).write_unaligned(0);
7122 }
7123 self.0.encode(encoder, offset + 0, depth)?;
7125 self.1.encode(encoder, offset + 16, depth)?;
7126 Ok(())
7127 }
7128 }
7129
7130 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7131 for AudioCoreGetDbFromVolume2Request
7132 {
7133 #[inline(always)]
7134 fn new_empty() -> Self {
7135 Self { usage: fidl::new_empty!(Usage2, D), volume: fidl::new_empty!(f32, D) }
7136 }
7137
7138 #[inline]
7139 unsafe fn decode(
7140 &mut self,
7141 decoder: &mut fidl::encoding::Decoder<'_, D>,
7142 offset: usize,
7143 _depth: fidl::encoding::Depth,
7144 ) -> fidl::Result<()> {
7145 decoder.debug_check_bounds::<Self>(offset);
7146 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7148 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7149 let mask = 0xffffffff00000000u64;
7150 let maskedval = padval & mask;
7151 if maskedval != 0 {
7152 return Err(fidl::Error::NonZeroPadding {
7153 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7154 });
7155 }
7156 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7157 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 16, _depth)?;
7158 Ok(())
7159 }
7160 }
7161
7162 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolumeRequest {
7163 type Borrowed<'a> = &'a Self;
7164 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7165 value
7166 }
7167 }
7168
7169 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolumeRequest {
7170 type Owned = Self;
7171
7172 #[inline(always)]
7173 fn inline_align(_context: fidl::encoding::Context) -> usize {
7174 8
7175 }
7176
7177 #[inline(always)]
7178 fn inline_size(_context: fidl::encoding::Context) -> usize {
7179 24
7180 }
7181 }
7182
7183 unsafe impl<D: fidl::encoding::ResourceDialect>
7184 fidl::encoding::Encode<AudioCoreGetDbFromVolumeRequest, D>
7185 for &AudioCoreGetDbFromVolumeRequest
7186 {
7187 #[inline]
7188 unsafe fn encode(
7189 self,
7190 encoder: &mut fidl::encoding::Encoder<'_, D>,
7191 offset: usize,
7192 _depth: fidl::encoding::Depth,
7193 ) -> fidl::Result<()> {
7194 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeRequest>(offset);
7195 fidl::encoding::Encode::<AudioCoreGetDbFromVolumeRequest, D>::encode(
7197 (
7198 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7199 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),
7200 ),
7201 encoder,
7202 offset,
7203 _depth,
7204 )
7205 }
7206 }
7207 unsafe impl<
7208 D: fidl::encoding::ResourceDialect,
7209 T0: fidl::encoding::Encode<Usage, D>,
7210 T1: fidl::encoding::Encode<f32, D>,
7211 > fidl::encoding::Encode<AudioCoreGetDbFromVolumeRequest, D> for (T0, T1)
7212 {
7213 #[inline]
7214 unsafe fn encode(
7215 self,
7216 encoder: &mut fidl::encoding::Encoder<'_, D>,
7217 offset: usize,
7218 depth: fidl::encoding::Depth,
7219 ) -> fidl::Result<()> {
7220 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeRequest>(offset);
7221 unsafe {
7224 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7225 (ptr as *mut u64).write_unaligned(0);
7226 }
7227 self.0.encode(encoder, offset + 0, depth)?;
7229 self.1.encode(encoder, offset + 16, depth)?;
7230 Ok(())
7231 }
7232 }
7233
7234 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7235 for AudioCoreGetDbFromVolumeRequest
7236 {
7237 #[inline(always)]
7238 fn new_empty() -> Self {
7239 Self { usage: fidl::new_empty!(Usage, D), volume: fidl::new_empty!(f32, D) }
7240 }
7241
7242 #[inline]
7243 unsafe fn decode(
7244 &mut self,
7245 decoder: &mut fidl::encoding::Decoder<'_, D>,
7246 offset: usize,
7247 _depth: fidl::encoding::Depth,
7248 ) -> fidl::Result<()> {
7249 decoder.debug_check_bounds::<Self>(offset);
7250 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7252 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7253 let mask = 0xffffffff00000000u64;
7254 let maskedval = padval & mask;
7255 if maskedval != 0 {
7256 return Err(fidl::Error::NonZeroPadding {
7257 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7258 });
7259 }
7260 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7261 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 16, _depth)?;
7262 Ok(())
7263 }
7264 }
7265
7266 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolumeResponse {
7267 type Borrowed<'a> = &'a Self;
7268 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7269 value
7270 }
7271 }
7272
7273 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolumeResponse {
7274 type Owned = Self;
7275
7276 #[inline(always)]
7277 fn inline_align(_context: fidl::encoding::Context) -> usize {
7278 4
7279 }
7280
7281 #[inline(always)]
7282 fn inline_size(_context: fidl::encoding::Context) -> usize {
7283 4
7284 }
7285 }
7286
7287 unsafe impl<D: fidl::encoding::ResourceDialect>
7288 fidl::encoding::Encode<AudioCoreGetDbFromVolumeResponse, D>
7289 for &AudioCoreGetDbFromVolumeResponse
7290 {
7291 #[inline]
7292 unsafe fn encode(
7293 self,
7294 encoder: &mut fidl::encoding::Encoder<'_, D>,
7295 offset: usize,
7296 _depth: fidl::encoding::Depth,
7297 ) -> fidl::Result<()> {
7298 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeResponse>(offset);
7299 fidl::encoding::Encode::<AudioCoreGetDbFromVolumeResponse, D>::encode(
7301 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),),
7302 encoder,
7303 offset,
7304 _depth,
7305 )
7306 }
7307 }
7308 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
7309 fidl::encoding::Encode<AudioCoreGetDbFromVolumeResponse, D> for (T0,)
7310 {
7311 #[inline]
7312 unsafe fn encode(
7313 self,
7314 encoder: &mut fidl::encoding::Encoder<'_, D>,
7315 offset: usize,
7316 depth: fidl::encoding::Depth,
7317 ) -> fidl::Result<()> {
7318 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeResponse>(offset);
7319 self.0.encode(encoder, offset + 0, depth)?;
7323 Ok(())
7324 }
7325 }
7326
7327 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7328 for AudioCoreGetDbFromVolumeResponse
7329 {
7330 #[inline(always)]
7331 fn new_empty() -> Self {
7332 Self { gain_db: fidl::new_empty!(f32, D) }
7333 }
7334
7335 #[inline]
7336 unsafe fn decode(
7337 &mut self,
7338 decoder: &mut fidl::encoding::Decoder<'_, D>,
7339 offset: usize,
7340 _depth: fidl::encoding::Depth,
7341 ) -> fidl::Result<()> {
7342 decoder.debug_check_bounds::<Self>(offset);
7343 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
7345 Ok(())
7346 }
7347 }
7348
7349 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDb2Request {
7350 type Borrowed<'a> = &'a Self;
7351 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7352 value
7353 }
7354 }
7355
7356 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDb2Request {
7357 type Owned = Self;
7358
7359 #[inline(always)]
7360 fn inline_align(_context: fidl::encoding::Context) -> usize {
7361 8
7362 }
7363
7364 #[inline(always)]
7365 fn inline_size(_context: fidl::encoding::Context) -> usize {
7366 24
7367 }
7368 }
7369
7370 unsafe impl<D: fidl::encoding::ResourceDialect>
7371 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Request, D>
7372 for &AudioCoreGetVolumeFromDb2Request
7373 {
7374 #[inline]
7375 unsafe fn encode(
7376 self,
7377 encoder: &mut fidl::encoding::Encoder<'_, D>,
7378 offset: usize,
7379 _depth: fidl::encoding::Depth,
7380 ) -> fidl::Result<()> {
7381 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Request>(offset);
7382 fidl::encoding::Encode::<AudioCoreGetVolumeFromDb2Request, D>::encode(
7384 (
7385 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7386 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7387 ),
7388 encoder,
7389 offset,
7390 _depth,
7391 )
7392 }
7393 }
7394 unsafe impl<
7395 D: fidl::encoding::ResourceDialect,
7396 T0: fidl::encoding::Encode<Usage2, D>,
7397 T1: fidl::encoding::Encode<f32, D>,
7398 > fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Request, D> for (T0, T1)
7399 {
7400 #[inline]
7401 unsafe fn encode(
7402 self,
7403 encoder: &mut fidl::encoding::Encoder<'_, D>,
7404 offset: usize,
7405 depth: fidl::encoding::Depth,
7406 ) -> fidl::Result<()> {
7407 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Request>(offset);
7408 unsafe {
7411 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7412 (ptr as *mut u64).write_unaligned(0);
7413 }
7414 self.0.encode(encoder, offset + 0, depth)?;
7416 self.1.encode(encoder, offset + 16, depth)?;
7417 Ok(())
7418 }
7419 }
7420
7421 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7422 for AudioCoreGetVolumeFromDb2Request
7423 {
7424 #[inline(always)]
7425 fn new_empty() -> Self {
7426 Self { usage: fidl::new_empty!(Usage2, D), gain_db: fidl::new_empty!(f32, D) }
7427 }
7428
7429 #[inline]
7430 unsafe fn decode(
7431 &mut self,
7432 decoder: &mut fidl::encoding::Decoder<'_, D>,
7433 offset: usize,
7434 _depth: fidl::encoding::Depth,
7435 ) -> fidl::Result<()> {
7436 decoder.debug_check_bounds::<Self>(offset);
7437 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7439 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7440 let mask = 0xffffffff00000000u64;
7441 let maskedval = padval & mask;
7442 if maskedval != 0 {
7443 return Err(fidl::Error::NonZeroPadding {
7444 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7445 });
7446 }
7447 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7448 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 16, _depth)?;
7449 Ok(())
7450 }
7451 }
7452
7453 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDbRequest {
7454 type Borrowed<'a> = &'a Self;
7455 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7456 value
7457 }
7458 }
7459
7460 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDbRequest {
7461 type Owned = Self;
7462
7463 #[inline(always)]
7464 fn inline_align(_context: fidl::encoding::Context) -> usize {
7465 8
7466 }
7467
7468 #[inline(always)]
7469 fn inline_size(_context: fidl::encoding::Context) -> usize {
7470 24
7471 }
7472 }
7473
7474 unsafe impl<D: fidl::encoding::ResourceDialect>
7475 fidl::encoding::Encode<AudioCoreGetVolumeFromDbRequest, D>
7476 for &AudioCoreGetVolumeFromDbRequest
7477 {
7478 #[inline]
7479 unsafe fn encode(
7480 self,
7481 encoder: &mut fidl::encoding::Encoder<'_, D>,
7482 offset: usize,
7483 _depth: fidl::encoding::Depth,
7484 ) -> fidl::Result<()> {
7485 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbRequest>(offset);
7486 fidl::encoding::Encode::<AudioCoreGetVolumeFromDbRequest, D>::encode(
7488 (
7489 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7490 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7491 ),
7492 encoder,
7493 offset,
7494 _depth,
7495 )
7496 }
7497 }
7498 unsafe impl<
7499 D: fidl::encoding::ResourceDialect,
7500 T0: fidl::encoding::Encode<Usage, D>,
7501 T1: fidl::encoding::Encode<f32, D>,
7502 > fidl::encoding::Encode<AudioCoreGetVolumeFromDbRequest, D> for (T0, T1)
7503 {
7504 #[inline]
7505 unsafe fn encode(
7506 self,
7507 encoder: &mut fidl::encoding::Encoder<'_, D>,
7508 offset: usize,
7509 depth: fidl::encoding::Depth,
7510 ) -> fidl::Result<()> {
7511 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbRequest>(offset);
7512 unsafe {
7515 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7516 (ptr as *mut u64).write_unaligned(0);
7517 }
7518 self.0.encode(encoder, offset + 0, depth)?;
7520 self.1.encode(encoder, offset + 16, depth)?;
7521 Ok(())
7522 }
7523 }
7524
7525 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7526 for AudioCoreGetVolumeFromDbRequest
7527 {
7528 #[inline(always)]
7529 fn new_empty() -> Self {
7530 Self { usage: fidl::new_empty!(Usage, D), gain_db: fidl::new_empty!(f32, D) }
7531 }
7532
7533 #[inline]
7534 unsafe fn decode(
7535 &mut self,
7536 decoder: &mut fidl::encoding::Decoder<'_, D>,
7537 offset: usize,
7538 _depth: fidl::encoding::Depth,
7539 ) -> fidl::Result<()> {
7540 decoder.debug_check_bounds::<Self>(offset);
7541 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7543 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7544 let mask = 0xffffffff00000000u64;
7545 let maskedval = padval & mask;
7546 if maskedval != 0 {
7547 return Err(fidl::Error::NonZeroPadding {
7548 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7549 });
7550 }
7551 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7552 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 16, _depth)?;
7553 Ok(())
7554 }
7555 }
7556
7557 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDbResponse {
7558 type Borrowed<'a> = &'a Self;
7559 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7560 value
7561 }
7562 }
7563
7564 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDbResponse {
7565 type Owned = Self;
7566
7567 #[inline(always)]
7568 fn inline_align(_context: fidl::encoding::Context) -> usize {
7569 4
7570 }
7571
7572 #[inline(always)]
7573 fn inline_size(_context: fidl::encoding::Context) -> usize {
7574 4
7575 }
7576 }
7577
7578 unsafe impl<D: fidl::encoding::ResourceDialect>
7579 fidl::encoding::Encode<AudioCoreGetVolumeFromDbResponse, D>
7580 for &AudioCoreGetVolumeFromDbResponse
7581 {
7582 #[inline]
7583 unsafe fn encode(
7584 self,
7585 encoder: &mut fidl::encoding::Encoder<'_, D>,
7586 offset: usize,
7587 _depth: fidl::encoding::Depth,
7588 ) -> fidl::Result<()> {
7589 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbResponse>(offset);
7590 fidl::encoding::Encode::<AudioCoreGetVolumeFromDbResponse, D>::encode(
7592 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),),
7593 encoder,
7594 offset,
7595 _depth,
7596 )
7597 }
7598 }
7599 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
7600 fidl::encoding::Encode<AudioCoreGetVolumeFromDbResponse, D> for (T0,)
7601 {
7602 #[inline]
7603 unsafe fn encode(
7604 self,
7605 encoder: &mut fidl::encoding::Encoder<'_, D>,
7606 offset: usize,
7607 depth: fidl::encoding::Depth,
7608 ) -> fidl::Result<()> {
7609 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbResponse>(offset);
7610 self.0.encode(encoder, offset + 0, depth)?;
7614 Ok(())
7615 }
7616 }
7617
7618 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7619 for AudioCoreGetVolumeFromDbResponse
7620 {
7621 #[inline(always)]
7622 fn new_empty() -> Self {
7623 Self { volume: fidl::new_empty!(f32, D) }
7624 }
7625
7626 #[inline]
7627 unsafe fn decode(
7628 &mut self,
7629 decoder: &mut fidl::encoding::Decoder<'_, D>,
7630 offset: usize,
7631 _depth: fidl::encoding::Depth,
7632 ) -> fidl::Result<()> {
7633 decoder.debug_check_bounds::<Self>(offset);
7634 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 0, _depth)?;
7636 Ok(())
7637 }
7638 }
7639
7640 impl fidl::encoding::ValueTypeMarker for AudioCoreSetCaptureUsageGain2Request {
7641 type Borrowed<'a> = &'a Self;
7642 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7643 value
7644 }
7645 }
7646
7647 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetCaptureUsageGain2Request {
7648 type Owned = Self;
7649
7650 #[inline(always)]
7651 fn inline_align(_context: fidl::encoding::Context) -> usize {
7652 4
7653 }
7654
7655 #[inline(always)]
7656 fn inline_size(_context: fidl::encoding::Context) -> usize {
7657 8
7658 }
7659 }
7660
7661 unsafe impl<D: fidl::encoding::ResourceDialect>
7662 fidl::encoding::Encode<AudioCoreSetCaptureUsageGain2Request, D>
7663 for &AudioCoreSetCaptureUsageGain2Request
7664 {
7665 #[inline]
7666 unsafe fn encode(
7667 self,
7668 encoder: &mut fidl::encoding::Encoder<'_, D>,
7669 offset: usize,
7670 _depth: fidl::encoding::Depth,
7671 ) -> fidl::Result<()> {
7672 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGain2Request>(offset);
7673 fidl::encoding::Encode::<AudioCoreSetCaptureUsageGain2Request, D>::encode(
7675 (
7676 <AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7677 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7678 ),
7679 encoder,
7680 offset,
7681 _depth,
7682 )
7683 }
7684 }
7685 unsafe impl<
7686 D: fidl::encoding::ResourceDialect,
7687 T0: fidl::encoding::Encode<AudioCaptureUsage2, D>,
7688 T1: fidl::encoding::Encode<f32, D>,
7689 > fidl::encoding::Encode<AudioCoreSetCaptureUsageGain2Request, D> for (T0, T1)
7690 {
7691 #[inline]
7692 unsafe fn encode(
7693 self,
7694 encoder: &mut fidl::encoding::Encoder<'_, D>,
7695 offset: usize,
7696 depth: fidl::encoding::Depth,
7697 ) -> fidl::Result<()> {
7698 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGain2Request>(offset);
7699 self.0.encode(encoder, offset + 0, depth)?;
7703 self.1.encode(encoder, offset + 4, depth)?;
7704 Ok(())
7705 }
7706 }
7707
7708 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7709 for AudioCoreSetCaptureUsageGain2Request
7710 {
7711 #[inline(always)]
7712 fn new_empty() -> Self {
7713 Self {
7714 usage: fidl::new_empty!(AudioCaptureUsage2, D),
7715 gain_db: fidl::new_empty!(f32, D),
7716 }
7717 }
7718
7719 #[inline]
7720 unsafe fn decode(
7721 &mut self,
7722 decoder: &mut fidl::encoding::Decoder<'_, D>,
7723 offset: usize,
7724 _depth: fidl::encoding::Depth,
7725 ) -> fidl::Result<()> {
7726 decoder.debug_check_bounds::<Self>(offset);
7727 fidl::decode!(AudioCaptureUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7729 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
7730 Ok(())
7731 }
7732 }
7733
7734 impl fidl::encoding::ValueTypeMarker for AudioCoreSetCaptureUsageGainRequest {
7735 type Borrowed<'a> = &'a Self;
7736 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7737 value
7738 }
7739 }
7740
7741 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetCaptureUsageGainRequest {
7742 type Owned = Self;
7743
7744 #[inline(always)]
7745 fn inline_align(_context: fidl::encoding::Context) -> usize {
7746 4
7747 }
7748
7749 #[inline(always)]
7750 fn inline_size(_context: fidl::encoding::Context) -> usize {
7751 8
7752 }
7753 }
7754
7755 unsafe impl<D: fidl::encoding::ResourceDialect>
7756 fidl::encoding::Encode<AudioCoreSetCaptureUsageGainRequest, D>
7757 for &AudioCoreSetCaptureUsageGainRequest
7758 {
7759 #[inline]
7760 unsafe fn encode(
7761 self,
7762 encoder: &mut fidl::encoding::Encoder<'_, D>,
7763 offset: usize,
7764 _depth: fidl::encoding::Depth,
7765 ) -> fidl::Result<()> {
7766 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGainRequest>(offset);
7767 fidl::encoding::Encode::<AudioCoreSetCaptureUsageGainRequest, D>::encode(
7769 (
7770 <AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7771 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7772 ),
7773 encoder,
7774 offset,
7775 _depth,
7776 )
7777 }
7778 }
7779 unsafe impl<
7780 D: fidl::encoding::ResourceDialect,
7781 T0: fidl::encoding::Encode<AudioCaptureUsage, D>,
7782 T1: fidl::encoding::Encode<f32, D>,
7783 > fidl::encoding::Encode<AudioCoreSetCaptureUsageGainRequest, D> for (T0, T1)
7784 {
7785 #[inline]
7786 unsafe fn encode(
7787 self,
7788 encoder: &mut fidl::encoding::Encoder<'_, D>,
7789 offset: usize,
7790 depth: fidl::encoding::Depth,
7791 ) -> fidl::Result<()> {
7792 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGainRequest>(offset);
7793 self.0.encode(encoder, offset + 0, depth)?;
7797 self.1.encode(encoder, offset + 4, depth)?;
7798 Ok(())
7799 }
7800 }
7801
7802 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7803 for AudioCoreSetCaptureUsageGainRequest
7804 {
7805 #[inline(always)]
7806 fn new_empty() -> Self {
7807 Self {
7808 usage: fidl::new_empty!(AudioCaptureUsage, D),
7809 gain_db: fidl::new_empty!(f32, D),
7810 }
7811 }
7812
7813 #[inline]
7814 unsafe fn decode(
7815 &mut self,
7816 decoder: &mut fidl::encoding::Decoder<'_, D>,
7817 offset: usize,
7818 _depth: fidl::encoding::Depth,
7819 ) -> fidl::Result<()> {
7820 decoder.debug_check_bounds::<Self>(offset);
7821 fidl::decode!(AudioCaptureUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7823 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
7824 Ok(())
7825 }
7826 }
7827
7828 impl fidl::encoding::ValueTypeMarker for AudioCoreSetInteraction2Request {
7829 type Borrowed<'a> = &'a Self;
7830 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7831 value
7832 }
7833 }
7834
7835 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetInteraction2Request {
7836 type Owned = Self;
7837
7838 #[inline(always)]
7839 fn inline_align(_context: fidl::encoding::Context) -> usize {
7840 8
7841 }
7842
7843 #[inline(always)]
7844 fn inline_size(_context: fidl::encoding::Context) -> usize {
7845 40
7846 }
7847 }
7848
7849 unsafe impl<D: fidl::encoding::ResourceDialect>
7850 fidl::encoding::Encode<AudioCoreSetInteraction2Request, D>
7851 for &AudioCoreSetInteraction2Request
7852 {
7853 #[inline]
7854 unsafe fn encode(
7855 self,
7856 encoder: &mut fidl::encoding::Encoder<'_, D>,
7857 offset: usize,
7858 _depth: fidl::encoding::Depth,
7859 ) -> fidl::Result<()> {
7860 encoder.debug_check_bounds::<AudioCoreSetInteraction2Request>(offset);
7861 fidl::encoding::Encode::<AudioCoreSetInteraction2Request, D>::encode(
7863 (
7864 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.active),
7865 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.affected),
7866 <Behavior as fidl::encoding::ValueTypeMarker>::borrow(&self.behavior),
7867 ),
7868 encoder,
7869 offset,
7870 _depth,
7871 )
7872 }
7873 }
7874 unsafe impl<
7875 D: fidl::encoding::ResourceDialect,
7876 T0: fidl::encoding::Encode<Usage2, D>,
7877 T1: fidl::encoding::Encode<Usage2, D>,
7878 T2: fidl::encoding::Encode<Behavior, D>,
7879 > fidl::encoding::Encode<AudioCoreSetInteraction2Request, D> for (T0, T1, T2)
7880 {
7881 #[inline]
7882 unsafe fn encode(
7883 self,
7884 encoder: &mut fidl::encoding::Encoder<'_, D>,
7885 offset: usize,
7886 depth: fidl::encoding::Depth,
7887 ) -> fidl::Result<()> {
7888 encoder.debug_check_bounds::<AudioCoreSetInteraction2Request>(offset);
7889 unsafe {
7892 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
7893 (ptr as *mut u64).write_unaligned(0);
7894 }
7895 self.0.encode(encoder, offset + 0, depth)?;
7897 self.1.encode(encoder, offset + 16, depth)?;
7898 self.2.encode(encoder, offset + 32, depth)?;
7899 Ok(())
7900 }
7901 }
7902
7903 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7904 for AudioCoreSetInteraction2Request
7905 {
7906 #[inline(always)]
7907 fn new_empty() -> Self {
7908 Self {
7909 active: fidl::new_empty!(Usage2, D),
7910 affected: fidl::new_empty!(Usage2, D),
7911 behavior: fidl::new_empty!(Behavior, D),
7912 }
7913 }
7914
7915 #[inline]
7916 unsafe fn decode(
7917 &mut self,
7918 decoder: &mut fidl::encoding::Decoder<'_, D>,
7919 offset: usize,
7920 _depth: fidl::encoding::Depth,
7921 ) -> fidl::Result<()> {
7922 decoder.debug_check_bounds::<Self>(offset);
7923 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
7925 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7926 let mask = 0xffffffff00000000u64;
7927 let maskedval = padval & mask;
7928 if maskedval != 0 {
7929 return Err(fidl::Error::NonZeroPadding {
7930 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
7931 });
7932 }
7933 fidl::decode!(Usage2, D, &mut self.active, decoder, offset + 0, _depth)?;
7934 fidl::decode!(Usage2, D, &mut self.affected, decoder, offset + 16, _depth)?;
7935 fidl::decode!(Behavior, D, &mut self.behavior, decoder, offset + 32, _depth)?;
7936 Ok(())
7937 }
7938 }
7939
7940 impl fidl::encoding::ValueTypeMarker for AudioCoreSetInteractionRequest {
7941 type Borrowed<'a> = &'a Self;
7942 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7943 value
7944 }
7945 }
7946
7947 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetInteractionRequest {
7948 type Owned = Self;
7949
7950 #[inline(always)]
7951 fn inline_align(_context: fidl::encoding::Context) -> usize {
7952 8
7953 }
7954
7955 #[inline(always)]
7956 fn inline_size(_context: fidl::encoding::Context) -> usize {
7957 40
7958 }
7959 }
7960
7961 unsafe impl<D: fidl::encoding::ResourceDialect>
7962 fidl::encoding::Encode<AudioCoreSetInteractionRequest, D>
7963 for &AudioCoreSetInteractionRequest
7964 {
7965 #[inline]
7966 unsafe fn encode(
7967 self,
7968 encoder: &mut fidl::encoding::Encoder<'_, D>,
7969 offset: usize,
7970 _depth: fidl::encoding::Depth,
7971 ) -> fidl::Result<()> {
7972 encoder.debug_check_bounds::<AudioCoreSetInteractionRequest>(offset);
7973 fidl::encoding::Encode::<AudioCoreSetInteractionRequest, D>::encode(
7975 (
7976 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.active),
7977 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.affected),
7978 <Behavior as fidl::encoding::ValueTypeMarker>::borrow(&self.behavior),
7979 ),
7980 encoder,
7981 offset,
7982 _depth,
7983 )
7984 }
7985 }
7986 unsafe impl<
7987 D: fidl::encoding::ResourceDialect,
7988 T0: fidl::encoding::Encode<Usage, D>,
7989 T1: fidl::encoding::Encode<Usage, D>,
7990 T2: fidl::encoding::Encode<Behavior, D>,
7991 > fidl::encoding::Encode<AudioCoreSetInteractionRequest, D> for (T0, T1, T2)
7992 {
7993 #[inline]
7994 unsafe fn encode(
7995 self,
7996 encoder: &mut fidl::encoding::Encoder<'_, D>,
7997 offset: usize,
7998 depth: fidl::encoding::Depth,
7999 ) -> fidl::Result<()> {
8000 encoder.debug_check_bounds::<AudioCoreSetInteractionRequest>(offset);
8001 unsafe {
8004 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
8005 (ptr as *mut u64).write_unaligned(0);
8006 }
8007 self.0.encode(encoder, offset + 0, depth)?;
8009 self.1.encode(encoder, offset + 16, depth)?;
8010 self.2.encode(encoder, offset + 32, depth)?;
8011 Ok(())
8012 }
8013 }
8014
8015 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8016 for AudioCoreSetInteractionRequest
8017 {
8018 #[inline(always)]
8019 fn new_empty() -> Self {
8020 Self {
8021 active: fidl::new_empty!(Usage, D),
8022 affected: fidl::new_empty!(Usage, D),
8023 behavior: fidl::new_empty!(Behavior, D),
8024 }
8025 }
8026
8027 #[inline]
8028 unsafe fn decode(
8029 &mut self,
8030 decoder: &mut fidl::encoding::Decoder<'_, D>,
8031 offset: usize,
8032 _depth: fidl::encoding::Depth,
8033 ) -> fidl::Result<()> {
8034 decoder.debug_check_bounds::<Self>(offset);
8035 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
8037 let padval = unsafe { (ptr as *const u64).read_unaligned() };
8038 let mask = 0xffffffff00000000u64;
8039 let maskedval = padval & mask;
8040 if maskedval != 0 {
8041 return Err(fidl::Error::NonZeroPadding {
8042 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
8043 });
8044 }
8045 fidl::decode!(Usage, D, &mut self.active, decoder, offset + 0, _depth)?;
8046 fidl::decode!(Usage, D, &mut self.affected, decoder, offset + 16, _depth)?;
8047 fidl::decode!(Behavior, D, &mut self.behavior, decoder, offset + 32, _depth)?;
8048 Ok(())
8049 }
8050 }
8051
8052 impl fidl::encoding::ValueTypeMarker for AudioCoreSetRenderUsageGain2Request {
8053 type Borrowed<'a> = &'a Self;
8054 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8055 value
8056 }
8057 }
8058
8059 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetRenderUsageGain2Request {
8060 type Owned = Self;
8061
8062 #[inline(always)]
8063 fn inline_align(_context: fidl::encoding::Context) -> usize {
8064 4
8065 }
8066
8067 #[inline(always)]
8068 fn inline_size(_context: fidl::encoding::Context) -> usize {
8069 8
8070 }
8071 }
8072
8073 unsafe impl<D: fidl::encoding::ResourceDialect>
8074 fidl::encoding::Encode<AudioCoreSetRenderUsageGain2Request, D>
8075 for &AudioCoreSetRenderUsageGain2Request
8076 {
8077 #[inline]
8078 unsafe fn encode(
8079 self,
8080 encoder: &mut fidl::encoding::Encoder<'_, D>,
8081 offset: usize,
8082 _depth: fidl::encoding::Depth,
8083 ) -> fidl::Result<()> {
8084 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGain2Request>(offset);
8085 fidl::encoding::Encode::<AudioCoreSetRenderUsageGain2Request, D>::encode(
8087 (
8088 <AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
8089 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
8090 ),
8091 encoder,
8092 offset,
8093 _depth,
8094 )
8095 }
8096 }
8097 unsafe impl<
8098 D: fidl::encoding::ResourceDialect,
8099 T0: fidl::encoding::Encode<AudioRenderUsage2, D>,
8100 T1: fidl::encoding::Encode<f32, D>,
8101 > fidl::encoding::Encode<AudioCoreSetRenderUsageGain2Request, D> for (T0, T1)
8102 {
8103 #[inline]
8104 unsafe fn encode(
8105 self,
8106 encoder: &mut fidl::encoding::Encoder<'_, D>,
8107 offset: usize,
8108 depth: fidl::encoding::Depth,
8109 ) -> fidl::Result<()> {
8110 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGain2Request>(offset);
8111 self.0.encode(encoder, offset + 0, depth)?;
8115 self.1.encode(encoder, offset + 4, depth)?;
8116 Ok(())
8117 }
8118 }
8119
8120 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8121 for AudioCoreSetRenderUsageGain2Request
8122 {
8123 #[inline(always)]
8124 fn new_empty() -> Self {
8125 Self {
8126 usage: fidl::new_empty!(AudioRenderUsage2, D),
8127 gain_db: fidl::new_empty!(f32, D),
8128 }
8129 }
8130
8131 #[inline]
8132 unsafe fn decode(
8133 &mut self,
8134 decoder: &mut fidl::encoding::Decoder<'_, D>,
8135 offset: usize,
8136 _depth: fidl::encoding::Depth,
8137 ) -> fidl::Result<()> {
8138 decoder.debug_check_bounds::<Self>(offset);
8139 fidl::decode!(AudioRenderUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
8141 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
8142 Ok(())
8143 }
8144 }
8145
8146 impl fidl::encoding::ValueTypeMarker for AudioCoreSetRenderUsageGainRequest {
8147 type Borrowed<'a> = &'a Self;
8148 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8149 value
8150 }
8151 }
8152
8153 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetRenderUsageGainRequest {
8154 type Owned = Self;
8155
8156 #[inline(always)]
8157 fn inline_align(_context: fidl::encoding::Context) -> usize {
8158 4
8159 }
8160
8161 #[inline(always)]
8162 fn inline_size(_context: fidl::encoding::Context) -> usize {
8163 8
8164 }
8165 }
8166
8167 unsafe impl<D: fidl::encoding::ResourceDialect>
8168 fidl::encoding::Encode<AudioCoreSetRenderUsageGainRequest, D>
8169 for &AudioCoreSetRenderUsageGainRequest
8170 {
8171 #[inline]
8172 unsafe fn encode(
8173 self,
8174 encoder: &mut fidl::encoding::Encoder<'_, D>,
8175 offset: usize,
8176 _depth: fidl::encoding::Depth,
8177 ) -> fidl::Result<()> {
8178 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGainRequest>(offset);
8179 fidl::encoding::Encode::<AudioCoreSetRenderUsageGainRequest, D>::encode(
8181 (
8182 <AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
8183 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
8184 ),
8185 encoder,
8186 offset,
8187 _depth,
8188 )
8189 }
8190 }
8191 unsafe impl<
8192 D: fidl::encoding::ResourceDialect,
8193 T0: fidl::encoding::Encode<AudioRenderUsage, D>,
8194 T1: fidl::encoding::Encode<f32, D>,
8195 > fidl::encoding::Encode<AudioCoreSetRenderUsageGainRequest, D> for (T0, T1)
8196 {
8197 #[inline]
8198 unsafe fn encode(
8199 self,
8200 encoder: &mut fidl::encoding::Encoder<'_, D>,
8201 offset: usize,
8202 depth: fidl::encoding::Depth,
8203 ) -> fidl::Result<()> {
8204 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGainRequest>(offset);
8205 self.0.encode(encoder, offset + 0, depth)?;
8209 self.1.encode(encoder, offset + 4, depth)?;
8210 Ok(())
8211 }
8212 }
8213
8214 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8215 for AudioCoreSetRenderUsageGainRequest
8216 {
8217 #[inline(always)]
8218 fn new_empty() -> Self {
8219 Self { usage: fidl::new_empty!(AudioRenderUsage, D), gain_db: fidl::new_empty!(f32, D) }
8220 }
8221
8222 #[inline]
8223 unsafe fn decode(
8224 &mut self,
8225 decoder: &mut fidl::encoding::Decoder<'_, D>,
8226 offset: usize,
8227 _depth: fidl::encoding::Depth,
8228 ) -> fidl::Result<()> {
8229 decoder.debug_check_bounds::<Self>(offset);
8230 fidl::decode!(AudioRenderUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
8232 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
8233 Ok(())
8234 }
8235 }
8236
8237 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolume2Response {
8238 type Borrowed<'a> = &'a Self;
8239 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8240 value
8241 }
8242 }
8243
8244 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolume2Response {
8245 type Owned = Self;
8246
8247 #[inline(always)]
8248 fn inline_align(_context: fidl::encoding::Context) -> usize {
8249 4
8250 }
8251
8252 #[inline(always)]
8253 fn inline_size(_context: fidl::encoding::Context) -> usize {
8254 4
8255 }
8256 }
8257
8258 unsafe impl<D: fidl::encoding::ResourceDialect>
8259 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Response, D>
8260 for &AudioCoreGetDbFromVolume2Response
8261 {
8262 #[inline]
8263 unsafe fn encode(
8264 self,
8265 encoder: &mut fidl::encoding::Encoder<'_, D>,
8266 offset: usize,
8267 _depth: fidl::encoding::Depth,
8268 ) -> fidl::Result<()> {
8269 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Response>(offset);
8270 fidl::encoding::Encode::<AudioCoreGetDbFromVolume2Response, D>::encode(
8272 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),),
8273 encoder,
8274 offset,
8275 _depth,
8276 )
8277 }
8278 }
8279 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
8280 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Response, D> for (T0,)
8281 {
8282 #[inline]
8283 unsafe fn encode(
8284 self,
8285 encoder: &mut fidl::encoding::Encoder<'_, D>,
8286 offset: usize,
8287 depth: fidl::encoding::Depth,
8288 ) -> fidl::Result<()> {
8289 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Response>(offset);
8290 self.0.encode(encoder, offset + 0, depth)?;
8294 Ok(())
8295 }
8296 }
8297
8298 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8299 for AudioCoreGetDbFromVolume2Response
8300 {
8301 #[inline(always)]
8302 fn new_empty() -> Self {
8303 Self { gain_db: fidl::new_empty!(f32, D) }
8304 }
8305
8306 #[inline]
8307 unsafe fn decode(
8308 &mut self,
8309 decoder: &mut fidl::encoding::Decoder<'_, D>,
8310 offset: usize,
8311 _depth: fidl::encoding::Depth,
8312 ) -> fidl::Result<()> {
8313 decoder.debug_check_bounds::<Self>(offset);
8314 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
8316 Ok(())
8317 }
8318 }
8319
8320 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDb2Response {
8321 type Borrowed<'a> = &'a Self;
8322 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8323 value
8324 }
8325 }
8326
8327 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDb2Response {
8328 type Owned = Self;
8329
8330 #[inline(always)]
8331 fn inline_align(_context: fidl::encoding::Context) -> usize {
8332 4
8333 }
8334
8335 #[inline(always)]
8336 fn inline_size(_context: fidl::encoding::Context) -> usize {
8337 4
8338 }
8339 }
8340
8341 unsafe impl<D: fidl::encoding::ResourceDialect>
8342 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Response, D>
8343 for &AudioCoreGetVolumeFromDb2Response
8344 {
8345 #[inline]
8346 unsafe fn encode(
8347 self,
8348 encoder: &mut fidl::encoding::Encoder<'_, D>,
8349 offset: usize,
8350 _depth: fidl::encoding::Depth,
8351 ) -> fidl::Result<()> {
8352 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Response>(offset);
8353 fidl::encoding::Encode::<AudioCoreGetVolumeFromDb2Response, D>::encode(
8355 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),),
8356 encoder,
8357 offset,
8358 _depth,
8359 )
8360 }
8361 }
8362 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
8363 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Response, D> for (T0,)
8364 {
8365 #[inline]
8366 unsafe fn encode(
8367 self,
8368 encoder: &mut fidl::encoding::Encoder<'_, D>,
8369 offset: usize,
8370 depth: fidl::encoding::Depth,
8371 ) -> fidl::Result<()> {
8372 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Response>(offset);
8373 self.0.encode(encoder, offset + 0, depth)?;
8377 Ok(())
8378 }
8379 }
8380
8381 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8382 for AudioCoreGetVolumeFromDb2Response
8383 {
8384 #[inline(always)]
8385 fn new_empty() -> Self {
8386 Self { volume: fidl::new_empty!(f32, D) }
8387 }
8388
8389 #[inline]
8390 unsafe fn decode(
8391 &mut self,
8392 decoder: &mut fidl::encoding::Decoder<'_, D>,
8393 offset: usize,
8394 _depth: fidl::encoding::Depth,
8395 ) -> fidl::Result<()> {
8396 decoder.debug_check_bounds::<Self>(offset);
8397 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 0, _depth)?;
8399 Ok(())
8400 }
8401 }
8402
8403 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDeviceGainRequest {
8404 type Borrowed<'a> = &'a Self;
8405 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8406 value
8407 }
8408 }
8409
8410 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDeviceGainRequest {
8411 type Owned = Self;
8412
8413 #[inline(always)]
8414 fn inline_align(_context: fidl::encoding::Context) -> usize {
8415 8
8416 }
8417
8418 #[inline(always)]
8419 fn inline_size(_context: fidl::encoding::Context) -> usize {
8420 8
8421 }
8422 #[inline(always)]
8423 fn encode_is_copy() -> bool {
8424 true
8425 }
8426
8427 #[inline(always)]
8428 fn decode_is_copy() -> bool {
8429 true
8430 }
8431 }
8432
8433 unsafe impl<D: fidl::encoding::ResourceDialect>
8434 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainRequest, D>
8435 for &AudioDeviceEnumeratorGetDeviceGainRequest
8436 {
8437 #[inline]
8438 unsafe fn encode(
8439 self,
8440 encoder: &mut fidl::encoding::Encoder<'_, D>,
8441 offset: usize,
8442 _depth: fidl::encoding::Depth,
8443 ) -> fidl::Result<()> {
8444 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainRequest>(offset);
8445 unsafe {
8446 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8448 (buf_ptr as *mut AudioDeviceEnumeratorGetDeviceGainRequest).write_unaligned(
8449 (self as *const AudioDeviceEnumeratorGetDeviceGainRequest).read(),
8450 );
8451 }
8454 Ok(())
8455 }
8456 }
8457 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
8458 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainRequest, D> for (T0,)
8459 {
8460 #[inline]
8461 unsafe fn encode(
8462 self,
8463 encoder: &mut fidl::encoding::Encoder<'_, D>,
8464 offset: usize,
8465 depth: fidl::encoding::Depth,
8466 ) -> fidl::Result<()> {
8467 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainRequest>(offset);
8468 self.0.encode(encoder, offset + 0, depth)?;
8472 Ok(())
8473 }
8474 }
8475
8476 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8477 for AudioDeviceEnumeratorGetDeviceGainRequest
8478 {
8479 #[inline(always)]
8480 fn new_empty() -> Self {
8481 Self { device_token: fidl::new_empty!(u64, D) }
8482 }
8483
8484 #[inline]
8485 unsafe fn decode(
8486 &mut self,
8487 decoder: &mut fidl::encoding::Decoder<'_, D>,
8488 offset: usize,
8489 _depth: fidl::encoding::Depth,
8490 ) -> fidl::Result<()> {
8491 decoder.debug_check_bounds::<Self>(offset);
8492 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8493 unsafe {
8496 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
8497 }
8498 Ok(())
8499 }
8500 }
8501
8502 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDeviceGainResponse {
8503 type Borrowed<'a> = &'a Self;
8504 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8505 value
8506 }
8507 }
8508
8509 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDeviceGainResponse {
8510 type Owned = Self;
8511
8512 #[inline(always)]
8513 fn inline_align(_context: fidl::encoding::Context) -> usize {
8514 8
8515 }
8516
8517 #[inline(always)]
8518 fn inline_size(_context: fidl::encoding::Context) -> usize {
8519 16
8520 }
8521 }
8522
8523 unsafe impl<D: fidl::encoding::ResourceDialect>
8524 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainResponse, D>
8525 for &AudioDeviceEnumeratorGetDeviceGainResponse
8526 {
8527 #[inline]
8528 unsafe fn encode(
8529 self,
8530 encoder: &mut fidl::encoding::Encoder<'_, D>,
8531 offset: usize,
8532 _depth: fidl::encoding::Depth,
8533 ) -> fidl::Result<()> {
8534 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainResponse>(offset);
8535 fidl::encoding::Encode::<AudioDeviceEnumeratorGetDeviceGainResponse, D>::encode(
8537 (
8538 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
8539 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
8540 ),
8541 encoder,
8542 offset,
8543 _depth,
8544 )
8545 }
8546 }
8547 unsafe impl<
8548 D: fidl::encoding::ResourceDialect,
8549 T0: fidl::encoding::Encode<u64, D>,
8550 T1: fidl::encoding::Encode<AudioGainInfo, D>,
8551 > fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainResponse, D> for (T0, T1)
8552 {
8553 #[inline]
8554 unsafe fn encode(
8555 self,
8556 encoder: &mut fidl::encoding::Encoder<'_, D>,
8557 offset: usize,
8558 depth: fidl::encoding::Depth,
8559 ) -> fidl::Result<()> {
8560 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainResponse>(offset);
8561 self.0.encode(encoder, offset + 0, depth)?;
8565 self.1.encode(encoder, offset + 8, depth)?;
8566 Ok(())
8567 }
8568 }
8569
8570 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8571 for AudioDeviceEnumeratorGetDeviceGainResponse
8572 {
8573 #[inline(always)]
8574 fn new_empty() -> Self {
8575 Self {
8576 device_token: fidl::new_empty!(u64, D),
8577 gain_info: fidl::new_empty!(AudioGainInfo, D),
8578 }
8579 }
8580
8581 #[inline]
8582 unsafe fn decode(
8583 &mut self,
8584 decoder: &mut fidl::encoding::Decoder<'_, D>,
8585 offset: usize,
8586 _depth: fidl::encoding::Depth,
8587 ) -> fidl::Result<()> {
8588 decoder.debug_check_bounds::<Self>(offset);
8589 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
8591 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
8592 Ok(())
8593 }
8594 }
8595
8596 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDevicesResponse {
8597 type Borrowed<'a> = &'a Self;
8598 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8599 value
8600 }
8601 }
8602
8603 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDevicesResponse {
8604 type Owned = Self;
8605
8606 #[inline(always)]
8607 fn inline_align(_context: fidl::encoding::Context) -> usize {
8608 8
8609 }
8610
8611 #[inline(always)]
8612 fn inline_size(_context: fidl::encoding::Context) -> usize {
8613 16
8614 }
8615 }
8616
8617 unsafe impl<D: fidl::encoding::ResourceDialect>
8618 fidl::encoding::Encode<AudioDeviceEnumeratorGetDevicesResponse, D>
8619 for &AudioDeviceEnumeratorGetDevicesResponse
8620 {
8621 #[inline]
8622 unsafe fn encode(
8623 self,
8624 encoder: &mut fidl::encoding::Encoder<'_, D>,
8625 offset: usize,
8626 _depth: fidl::encoding::Depth,
8627 ) -> fidl::Result<()> {
8628 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDevicesResponse>(offset);
8629 fidl::encoding::Encode::<AudioDeviceEnumeratorGetDevicesResponse, D>::encode(
8631 (
8632 <fidl::encoding::UnboundedVector<AudioDeviceInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.devices),
8633 ),
8634 encoder, offset, _depth
8635 )
8636 }
8637 }
8638 unsafe impl<
8639 D: fidl::encoding::ResourceDialect,
8640 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<AudioDeviceInfo>, D>,
8641 > fidl::encoding::Encode<AudioDeviceEnumeratorGetDevicesResponse, D> for (T0,)
8642 {
8643 #[inline]
8644 unsafe fn encode(
8645 self,
8646 encoder: &mut fidl::encoding::Encoder<'_, D>,
8647 offset: usize,
8648 depth: fidl::encoding::Depth,
8649 ) -> fidl::Result<()> {
8650 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDevicesResponse>(offset);
8651 self.0.encode(encoder, offset + 0, depth)?;
8655 Ok(())
8656 }
8657 }
8658
8659 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8660 for AudioDeviceEnumeratorGetDevicesResponse
8661 {
8662 #[inline(always)]
8663 fn new_empty() -> Self {
8664 Self { devices: fidl::new_empty!(fidl::encoding::UnboundedVector<AudioDeviceInfo>, D) }
8665 }
8666
8667 #[inline]
8668 unsafe fn decode(
8669 &mut self,
8670 decoder: &mut fidl::encoding::Decoder<'_, D>,
8671 offset: usize,
8672 _depth: fidl::encoding::Depth,
8673 ) -> fidl::Result<()> {
8674 decoder.debug_check_bounds::<Self>(offset);
8675 fidl::decode!(
8677 fidl::encoding::UnboundedVector<AudioDeviceInfo>,
8678 D,
8679 &mut self.devices,
8680 decoder,
8681 offset + 0,
8682 _depth
8683 )?;
8684 Ok(())
8685 }
8686 }
8687
8688 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
8689 type Borrowed<'a> = &'a Self;
8690 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8691 value
8692 }
8693 }
8694
8695 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
8696 type Owned = Self;
8697
8698 #[inline(always)]
8699 fn inline_align(_context: fidl::encoding::Context) -> usize {
8700 8
8701 }
8702
8703 #[inline(always)]
8704 fn inline_size(_context: fidl::encoding::Context) -> usize {
8705 16
8706 }
8707 #[inline(always)]
8708 fn encode_is_copy() -> bool {
8709 true
8710 }
8711
8712 #[inline(always)]
8713 fn decode_is_copy() -> bool {
8714 true
8715 }
8716 }
8717
8718 unsafe impl<D: fidl::encoding::ResourceDialect>
8719 fidl::encoding::Encode<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest, D>
8720 for &AudioDeviceEnumeratorOnDefaultDeviceChangedRequest
8721 {
8722 #[inline]
8723 unsafe fn encode(
8724 self,
8725 encoder: &mut fidl::encoding::Encoder<'_, D>,
8726 offset: usize,
8727 _depth: fidl::encoding::Depth,
8728 ) -> fidl::Result<()> {
8729 encoder
8730 .debug_check_bounds::<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest>(offset);
8731 unsafe {
8732 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8734 (buf_ptr as *mut AudioDeviceEnumeratorOnDefaultDeviceChangedRequest)
8735 .write_unaligned(
8736 (self as *const AudioDeviceEnumeratorOnDefaultDeviceChangedRequest).read(),
8737 );
8738 }
8741 Ok(())
8742 }
8743 }
8744 unsafe impl<
8745 D: fidl::encoding::ResourceDialect,
8746 T0: fidl::encoding::Encode<u64, D>,
8747 T1: fidl::encoding::Encode<u64, D>,
8748 > fidl::encoding::Encode<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest, D> for (T0, T1)
8749 {
8750 #[inline]
8751 unsafe fn encode(
8752 self,
8753 encoder: &mut fidl::encoding::Encoder<'_, D>,
8754 offset: usize,
8755 depth: fidl::encoding::Depth,
8756 ) -> fidl::Result<()> {
8757 encoder
8758 .debug_check_bounds::<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest>(offset);
8759 self.0.encode(encoder, offset + 0, depth)?;
8763 self.1.encode(encoder, offset + 8, depth)?;
8764 Ok(())
8765 }
8766 }
8767
8768 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8769 for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest
8770 {
8771 #[inline(always)]
8772 fn new_empty() -> Self {
8773 Self {
8774 old_default_token: fidl::new_empty!(u64, D),
8775 new_default_token: fidl::new_empty!(u64, D),
8776 }
8777 }
8778
8779 #[inline]
8780 unsafe fn decode(
8781 &mut self,
8782 decoder: &mut fidl::encoding::Decoder<'_, D>,
8783 offset: usize,
8784 _depth: fidl::encoding::Depth,
8785 ) -> fidl::Result<()> {
8786 decoder.debug_check_bounds::<Self>(offset);
8787 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8788 unsafe {
8791 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
8792 }
8793 Ok(())
8794 }
8795 }
8796
8797 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceAddedRequest {
8798 type Borrowed<'a> = &'a Self;
8799 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8800 value
8801 }
8802 }
8803
8804 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceAddedRequest {
8805 type Owned = Self;
8806
8807 #[inline(always)]
8808 fn inline_align(_context: fidl::encoding::Context) -> usize {
8809 8
8810 }
8811
8812 #[inline(always)]
8813 fn inline_size(_context: fidl::encoding::Context) -> usize {
8814 56
8815 }
8816 }
8817
8818 unsafe impl<D: fidl::encoding::ResourceDialect>
8819 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceAddedRequest, D>
8820 for &AudioDeviceEnumeratorOnDeviceAddedRequest
8821 {
8822 #[inline]
8823 unsafe fn encode(
8824 self,
8825 encoder: &mut fidl::encoding::Encoder<'_, D>,
8826 offset: usize,
8827 _depth: fidl::encoding::Depth,
8828 ) -> fidl::Result<()> {
8829 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceAddedRequest>(offset);
8830 fidl::encoding::Encode::<AudioDeviceEnumeratorOnDeviceAddedRequest, D>::encode(
8832 (<AudioDeviceInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
8833 encoder,
8834 offset,
8835 _depth,
8836 )
8837 }
8838 }
8839 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioDeviceInfo, D>>
8840 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceAddedRequest, D> for (T0,)
8841 {
8842 #[inline]
8843 unsafe fn encode(
8844 self,
8845 encoder: &mut fidl::encoding::Encoder<'_, D>,
8846 offset: usize,
8847 depth: fidl::encoding::Depth,
8848 ) -> fidl::Result<()> {
8849 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceAddedRequest>(offset);
8850 self.0.encode(encoder, offset + 0, depth)?;
8854 Ok(())
8855 }
8856 }
8857
8858 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8859 for AudioDeviceEnumeratorOnDeviceAddedRequest
8860 {
8861 #[inline(always)]
8862 fn new_empty() -> Self {
8863 Self { device: fidl::new_empty!(AudioDeviceInfo, D) }
8864 }
8865
8866 #[inline]
8867 unsafe fn decode(
8868 &mut self,
8869 decoder: &mut fidl::encoding::Decoder<'_, D>,
8870 offset: usize,
8871 _depth: fidl::encoding::Depth,
8872 ) -> fidl::Result<()> {
8873 decoder.debug_check_bounds::<Self>(offset);
8874 fidl::decode!(AudioDeviceInfo, D, &mut self.device, decoder, offset + 0, _depth)?;
8876 Ok(())
8877 }
8878 }
8879
8880 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceGainChangedRequest {
8881 type Borrowed<'a> = &'a Self;
8882 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8883 value
8884 }
8885 }
8886
8887 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceGainChangedRequest {
8888 type Owned = Self;
8889
8890 #[inline(always)]
8891 fn inline_align(_context: fidl::encoding::Context) -> usize {
8892 8
8893 }
8894
8895 #[inline(always)]
8896 fn inline_size(_context: fidl::encoding::Context) -> usize {
8897 16
8898 }
8899 }
8900
8901 unsafe impl<D: fidl::encoding::ResourceDialect>
8902 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D>
8903 for &AudioDeviceEnumeratorOnDeviceGainChangedRequest
8904 {
8905 #[inline]
8906 unsafe fn encode(
8907 self,
8908 encoder: &mut fidl::encoding::Encoder<'_, D>,
8909 offset: usize,
8910 _depth: fidl::encoding::Depth,
8911 ) -> fidl::Result<()> {
8912 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceGainChangedRequest>(offset);
8913 fidl::encoding::Encode::<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D>::encode(
8915 (
8916 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
8917 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
8918 ),
8919 encoder,
8920 offset,
8921 _depth,
8922 )
8923 }
8924 }
8925 unsafe impl<
8926 D: fidl::encoding::ResourceDialect,
8927 T0: fidl::encoding::Encode<u64, D>,
8928 T1: fidl::encoding::Encode<AudioGainInfo, D>,
8929 > fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D> for (T0, T1)
8930 {
8931 #[inline]
8932 unsafe fn encode(
8933 self,
8934 encoder: &mut fidl::encoding::Encoder<'_, D>,
8935 offset: usize,
8936 depth: fidl::encoding::Depth,
8937 ) -> fidl::Result<()> {
8938 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceGainChangedRequest>(offset);
8939 self.0.encode(encoder, offset + 0, depth)?;
8943 self.1.encode(encoder, offset + 8, depth)?;
8944 Ok(())
8945 }
8946 }
8947
8948 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8949 for AudioDeviceEnumeratorOnDeviceGainChangedRequest
8950 {
8951 #[inline(always)]
8952 fn new_empty() -> Self {
8953 Self {
8954 device_token: fidl::new_empty!(u64, D),
8955 gain_info: fidl::new_empty!(AudioGainInfo, D),
8956 }
8957 }
8958
8959 #[inline]
8960 unsafe fn decode(
8961 &mut self,
8962 decoder: &mut fidl::encoding::Decoder<'_, D>,
8963 offset: usize,
8964 _depth: fidl::encoding::Depth,
8965 ) -> fidl::Result<()> {
8966 decoder.debug_check_bounds::<Self>(offset);
8967 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
8969 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
8970 Ok(())
8971 }
8972 }
8973
8974 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceRemovedRequest {
8975 type Borrowed<'a> = &'a Self;
8976 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8977 value
8978 }
8979 }
8980
8981 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceRemovedRequest {
8982 type Owned = Self;
8983
8984 #[inline(always)]
8985 fn inline_align(_context: fidl::encoding::Context) -> usize {
8986 8
8987 }
8988
8989 #[inline(always)]
8990 fn inline_size(_context: fidl::encoding::Context) -> usize {
8991 8
8992 }
8993 #[inline(always)]
8994 fn encode_is_copy() -> bool {
8995 true
8996 }
8997
8998 #[inline(always)]
8999 fn decode_is_copy() -> bool {
9000 true
9001 }
9002 }
9003
9004 unsafe impl<D: fidl::encoding::ResourceDialect>
9005 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceRemovedRequest, D>
9006 for &AudioDeviceEnumeratorOnDeviceRemovedRequest
9007 {
9008 #[inline]
9009 unsafe fn encode(
9010 self,
9011 encoder: &mut fidl::encoding::Encoder<'_, D>,
9012 offset: usize,
9013 _depth: fidl::encoding::Depth,
9014 ) -> fidl::Result<()> {
9015 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceRemovedRequest>(offset);
9016 unsafe {
9017 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9019 (buf_ptr as *mut AudioDeviceEnumeratorOnDeviceRemovedRequest).write_unaligned(
9020 (self as *const AudioDeviceEnumeratorOnDeviceRemovedRequest).read(),
9021 );
9022 }
9025 Ok(())
9026 }
9027 }
9028 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
9029 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceRemovedRequest, D> for (T0,)
9030 {
9031 #[inline]
9032 unsafe fn encode(
9033 self,
9034 encoder: &mut fidl::encoding::Encoder<'_, D>,
9035 offset: usize,
9036 depth: fidl::encoding::Depth,
9037 ) -> fidl::Result<()> {
9038 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceRemovedRequest>(offset);
9039 self.0.encode(encoder, offset + 0, depth)?;
9043 Ok(())
9044 }
9045 }
9046
9047 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9048 for AudioDeviceEnumeratorOnDeviceRemovedRequest
9049 {
9050 #[inline(always)]
9051 fn new_empty() -> Self {
9052 Self { device_token: fidl::new_empty!(u64, D) }
9053 }
9054
9055 #[inline]
9056 unsafe fn decode(
9057 &mut self,
9058 decoder: &mut fidl::encoding::Decoder<'_, D>,
9059 offset: usize,
9060 _depth: fidl::encoding::Depth,
9061 ) -> fidl::Result<()> {
9062 decoder.debug_check_bounds::<Self>(offset);
9063 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9064 unsafe {
9067 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9068 }
9069 Ok(())
9070 }
9071 }
9072
9073 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorSetDeviceGainRequest {
9074 type Borrowed<'a> = &'a Self;
9075 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9076 value
9077 }
9078 }
9079
9080 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorSetDeviceGainRequest {
9081 type Owned = Self;
9082
9083 #[inline(always)]
9084 fn inline_align(_context: fidl::encoding::Context) -> usize {
9085 8
9086 }
9087
9088 #[inline(always)]
9089 fn inline_size(_context: fidl::encoding::Context) -> usize {
9090 24
9091 }
9092 }
9093
9094 unsafe impl<D: fidl::encoding::ResourceDialect>
9095 fidl::encoding::Encode<AudioDeviceEnumeratorSetDeviceGainRequest, D>
9096 for &AudioDeviceEnumeratorSetDeviceGainRequest
9097 {
9098 #[inline]
9099 unsafe fn encode(
9100 self,
9101 encoder: &mut fidl::encoding::Encoder<'_, D>,
9102 offset: usize,
9103 _depth: fidl::encoding::Depth,
9104 ) -> fidl::Result<()> {
9105 encoder.debug_check_bounds::<AudioDeviceEnumeratorSetDeviceGainRequest>(offset);
9106 fidl::encoding::Encode::<AudioDeviceEnumeratorSetDeviceGainRequest, D>::encode(
9108 (
9109 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
9110 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
9111 <AudioGainValidFlags as fidl::encoding::ValueTypeMarker>::borrow(
9112 &self.valid_flags,
9113 ),
9114 ),
9115 encoder,
9116 offset,
9117 _depth,
9118 )
9119 }
9120 }
9121 unsafe impl<
9122 D: fidl::encoding::ResourceDialect,
9123 T0: fidl::encoding::Encode<u64, D>,
9124 T1: fidl::encoding::Encode<AudioGainInfo, D>,
9125 T2: fidl::encoding::Encode<AudioGainValidFlags, D>,
9126 > fidl::encoding::Encode<AudioDeviceEnumeratorSetDeviceGainRequest, D> for (T0, T1, T2)
9127 {
9128 #[inline]
9129 unsafe fn encode(
9130 self,
9131 encoder: &mut fidl::encoding::Encoder<'_, D>,
9132 offset: usize,
9133 depth: fidl::encoding::Depth,
9134 ) -> fidl::Result<()> {
9135 encoder.debug_check_bounds::<AudioDeviceEnumeratorSetDeviceGainRequest>(offset);
9136 unsafe {
9139 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
9140 (ptr as *mut u64).write_unaligned(0);
9141 }
9142 self.0.encode(encoder, offset + 0, depth)?;
9144 self.1.encode(encoder, offset + 8, depth)?;
9145 self.2.encode(encoder, offset + 16, depth)?;
9146 Ok(())
9147 }
9148 }
9149
9150 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9151 for AudioDeviceEnumeratorSetDeviceGainRequest
9152 {
9153 #[inline(always)]
9154 fn new_empty() -> Self {
9155 Self {
9156 device_token: fidl::new_empty!(u64, D),
9157 gain_info: fidl::new_empty!(AudioGainInfo, D),
9158 valid_flags: fidl::new_empty!(AudioGainValidFlags, D),
9159 }
9160 }
9161
9162 #[inline]
9163 unsafe fn decode(
9164 &mut self,
9165 decoder: &mut fidl::encoding::Decoder<'_, D>,
9166 offset: usize,
9167 _depth: fidl::encoding::Depth,
9168 ) -> fidl::Result<()> {
9169 decoder.debug_check_bounds::<Self>(offset);
9170 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
9172 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9173 let mask = 0xffffffff00000000u64;
9174 let maskedval = padval & mask;
9175 if maskedval != 0 {
9176 return Err(fidl::Error::NonZeroPadding {
9177 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
9178 });
9179 }
9180 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
9181 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
9182 fidl::decode!(
9183 AudioGainValidFlags,
9184 D,
9185 &mut self.valid_flags,
9186 decoder,
9187 offset + 16,
9188 _depth
9189 )?;
9190 Ok(())
9191 }
9192 }
9193
9194 impl fidl::encoding::ValueTypeMarker for AudioDeviceInfo {
9195 type Borrowed<'a> = &'a Self;
9196 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9197 value
9198 }
9199 }
9200
9201 unsafe impl fidl::encoding::TypeMarker for AudioDeviceInfo {
9202 type Owned = Self;
9203
9204 #[inline(always)]
9205 fn inline_align(_context: fidl::encoding::Context) -> usize {
9206 8
9207 }
9208
9209 #[inline(always)]
9210 fn inline_size(_context: fidl::encoding::Context) -> usize {
9211 56
9212 }
9213 }
9214
9215 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioDeviceInfo, D>
9216 for &AudioDeviceInfo
9217 {
9218 #[inline]
9219 unsafe fn encode(
9220 self,
9221 encoder: &mut fidl::encoding::Encoder<'_, D>,
9222 offset: usize,
9223 _depth: fidl::encoding::Depth,
9224 ) -> fidl::Result<()> {
9225 encoder.debug_check_bounds::<AudioDeviceInfo>(offset);
9226 fidl::encoding::Encode::<AudioDeviceInfo, D>::encode(
9228 (
9229 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
9230 &self.name,
9231 ),
9232 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
9233 &self.unique_id,
9234 ),
9235 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.token_id),
9236 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_input),
9237 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
9238 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_default),
9239 ),
9240 encoder,
9241 offset,
9242 _depth,
9243 )
9244 }
9245 }
9246 unsafe impl<
9247 D: fidl::encoding::ResourceDialect,
9248 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
9249 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
9250 T2: fidl::encoding::Encode<u64, D>,
9251 T3: fidl::encoding::Encode<bool, D>,
9252 T4: fidl::encoding::Encode<AudioGainInfo, D>,
9253 T5: fidl::encoding::Encode<bool, D>,
9254 > fidl::encoding::Encode<AudioDeviceInfo, D> for (T0, T1, T2, T3, T4, T5)
9255 {
9256 #[inline]
9257 unsafe fn encode(
9258 self,
9259 encoder: &mut fidl::encoding::Encoder<'_, D>,
9260 offset: usize,
9261 depth: fidl::encoding::Depth,
9262 ) -> fidl::Result<()> {
9263 encoder.debug_check_bounds::<AudioDeviceInfo>(offset);
9264 unsafe {
9267 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
9268 (ptr as *mut u64).write_unaligned(0);
9269 }
9270 unsafe {
9271 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(48);
9272 (ptr as *mut u64).write_unaligned(0);
9273 }
9274 self.0.encode(encoder, offset + 0, depth)?;
9276 self.1.encode(encoder, offset + 16, depth)?;
9277 self.2.encode(encoder, offset + 32, depth)?;
9278 self.3.encode(encoder, offset + 40, depth)?;
9279 self.4.encode(encoder, offset + 44, depth)?;
9280 self.5.encode(encoder, offset + 52, depth)?;
9281 Ok(())
9282 }
9283 }
9284
9285 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioDeviceInfo {
9286 #[inline(always)]
9287 fn new_empty() -> Self {
9288 Self {
9289 name: fidl::new_empty!(fidl::encoding::UnboundedString, D),
9290 unique_id: fidl::new_empty!(fidl::encoding::UnboundedString, D),
9291 token_id: fidl::new_empty!(u64, D),
9292 is_input: fidl::new_empty!(bool, D),
9293 gain_info: fidl::new_empty!(AudioGainInfo, D),
9294 is_default: fidl::new_empty!(bool, D),
9295 }
9296 }
9297
9298 #[inline]
9299 unsafe fn decode(
9300 &mut self,
9301 decoder: &mut fidl::encoding::Decoder<'_, D>,
9302 offset: usize,
9303 _depth: fidl::encoding::Depth,
9304 ) -> fidl::Result<()> {
9305 decoder.debug_check_bounds::<Self>(offset);
9306 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
9308 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9309 let mask = 0xffffff00u64;
9310 let maskedval = padval & mask;
9311 if maskedval != 0 {
9312 return Err(fidl::Error::NonZeroPadding {
9313 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
9314 });
9315 }
9316 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(48) };
9317 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9318 let mask = 0xffffff0000000000u64;
9319 let maskedval = padval & mask;
9320 if maskedval != 0 {
9321 return Err(fidl::Error::NonZeroPadding {
9322 padding_start: offset + 48 + ((mask as u64).trailing_zeros() / 8) as usize,
9323 });
9324 }
9325 fidl::decode!(
9326 fidl::encoding::UnboundedString,
9327 D,
9328 &mut self.name,
9329 decoder,
9330 offset + 0,
9331 _depth
9332 )?;
9333 fidl::decode!(
9334 fidl::encoding::UnboundedString,
9335 D,
9336 &mut self.unique_id,
9337 decoder,
9338 offset + 16,
9339 _depth
9340 )?;
9341 fidl::decode!(u64, D, &mut self.token_id, decoder, offset + 32, _depth)?;
9342 fidl::decode!(bool, D, &mut self.is_input, decoder, offset + 40, _depth)?;
9343 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 44, _depth)?;
9344 fidl::decode!(bool, D, &mut self.is_default, decoder, offset + 52, _depth)?;
9345 Ok(())
9346 }
9347 }
9348
9349 impl fidl::encoding::ValueTypeMarker for AudioGainInfo {
9350 type Borrowed<'a> = &'a Self;
9351 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9352 value
9353 }
9354 }
9355
9356 unsafe impl fidl::encoding::TypeMarker for AudioGainInfo {
9357 type Owned = Self;
9358
9359 #[inline(always)]
9360 fn inline_align(_context: fidl::encoding::Context) -> usize {
9361 4
9362 }
9363
9364 #[inline(always)]
9365 fn inline_size(_context: fidl::encoding::Context) -> usize {
9366 8
9367 }
9368 }
9369
9370 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioGainInfo, D>
9371 for &AudioGainInfo
9372 {
9373 #[inline]
9374 unsafe fn encode(
9375 self,
9376 encoder: &mut fidl::encoding::Encoder<'_, D>,
9377 offset: usize,
9378 _depth: fidl::encoding::Depth,
9379 ) -> fidl::Result<()> {
9380 encoder.debug_check_bounds::<AudioGainInfo>(offset);
9381 fidl::encoding::Encode::<AudioGainInfo, D>::encode(
9383 (
9384 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
9385 <AudioGainInfoFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.flags),
9386 ),
9387 encoder,
9388 offset,
9389 _depth,
9390 )
9391 }
9392 }
9393 unsafe impl<
9394 D: fidl::encoding::ResourceDialect,
9395 T0: fidl::encoding::Encode<f32, D>,
9396 T1: fidl::encoding::Encode<AudioGainInfoFlags, D>,
9397 > fidl::encoding::Encode<AudioGainInfo, D> for (T0, T1)
9398 {
9399 #[inline]
9400 unsafe fn encode(
9401 self,
9402 encoder: &mut fidl::encoding::Encoder<'_, D>,
9403 offset: usize,
9404 depth: fidl::encoding::Depth,
9405 ) -> fidl::Result<()> {
9406 encoder.debug_check_bounds::<AudioGainInfo>(offset);
9407 self.0.encode(encoder, offset + 0, depth)?;
9411 self.1.encode(encoder, offset + 4, depth)?;
9412 Ok(())
9413 }
9414 }
9415
9416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainInfo {
9417 #[inline(always)]
9418 fn new_empty() -> Self {
9419 Self {
9420 gain_db: fidl::new_empty!(f32, D),
9421 flags: fidl::new_empty!(AudioGainInfoFlags, D),
9422 }
9423 }
9424
9425 #[inline]
9426 unsafe fn decode(
9427 &mut self,
9428 decoder: &mut fidl::encoding::Decoder<'_, D>,
9429 offset: usize,
9430 _depth: fidl::encoding::Depth,
9431 ) -> fidl::Result<()> {
9432 decoder.debug_check_bounds::<Self>(offset);
9433 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
9435 fidl::decode!(AudioGainInfoFlags, D, &mut self.flags, decoder, offset + 4, _depth)?;
9436 Ok(())
9437 }
9438 }
9439
9440 impl fidl::encoding::ValueTypeMarker for AudioRendererEnableMinLeadTimeEventsRequest {
9441 type Borrowed<'a> = &'a Self;
9442 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9443 value
9444 }
9445 }
9446
9447 unsafe impl fidl::encoding::TypeMarker for AudioRendererEnableMinLeadTimeEventsRequest {
9448 type Owned = Self;
9449
9450 #[inline(always)]
9451 fn inline_align(_context: fidl::encoding::Context) -> usize {
9452 1
9453 }
9454
9455 #[inline(always)]
9456 fn inline_size(_context: fidl::encoding::Context) -> usize {
9457 1
9458 }
9459 }
9460
9461 unsafe impl<D: fidl::encoding::ResourceDialect>
9462 fidl::encoding::Encode<AudioRendererEnableMinLeadTimeEventsRequest, D>
9463 for &AudioRendererEnableMinLeadTimeEventsRequest
9464 {
9465 #[inline]
9466 unsafe fn encode(
9467 self,
9468 encoder: &mut fidl::encoding::Encoder<'_, D>,
9469 offset: usize,
9470 _depth: fidl::encoding::Depth,
9471 ) -> fidl::Result<()> {
9472 encoder.debug_check_bounds::<AudioRendererEnableMinLeadTimeEventsRequest>(offset);
9473 fidl::encoding::Encode::<AudioRendererEnableMinLeadTimeEventsRequest, D>::encode(
9475 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
9476 encoder,
9477 offset,
9478 _depth,
9479 )
9480 }
9481 }
9482 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
9483 fidl::encoding::Encode<AudioRendererEnableMinLeadTimeEventsRequest, D> for (T0,)
9484 {
9485 #[inline]
9486 unsafe fn encode(
9487 self,
9488 encoder: &mut fidl::encoding::Encoder<'_, D>,
9489 offset: usize,
9490 depth: fidl::encoding::Depth,
9491 ) -> fidl::Result<()> {
9492 encoder.debug_check_bounds::<AudioRendererEnableMinLeadTimeEventsRequest>(offset);
9493 self.0.encode(encoder, offset + 0, depth)?;
9497 Ok(())
9498 }
9499 }
9500
9501 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9502 for AudioRendererEnableMinLeadTimeEventsRequest
9503 {
9504 #[inline(always)]
9505 fn new_empty() -> Self {
9506 Self { enabled: fidl::new_empty!(bool, D) }
9507 }
9508
9509 #[inline]
9510 unsafe fn decode(
9511 &mut self,
9512 decoder: &mut fidl::encoding::Decoder<'_, D>,
9513 offset: usize,
9514 _depth: fidl::encoding::Depth,
9515 ) -> fidl::Result<()> {
9516 decoder.debug_check_bounds::<Self>(offset);
9517 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
9519 Ok(())
9520 }
9521 }
9522
9523 impl fidl::encoding::ValueTypeMarker for AudioRendererGetMinLeadTimeResponse {
9524 type Borrowed<'a> = &'a Self;
9525 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9526 value
9527 }
9528 }
9529
9530 unsafe impl fidl::encoding::TypeMarker for AudioRendererGetMinLeadTimeResponse {
9531 type Owned = Self;
9532
9533 #[inline(always)]
9534 fn inline_align(_context: fidl::encoding::Context) -> usize {
9535 8
9536 }
9537
9538 #[inline(always)]
9539 fn inline_size(_context: fidl::encoding::Context) -> usize {
9540 8
9541 }
9542 #[inline(always)]
9543 fn encode_is_copy() -> bool {
9544 true
9545 }
9546
9547 #[inline(always)]
9548 fn decode_is_copy() -> bool {
9549 true
9550 }
9551 }
9552
9553 unsafe impl<D: fidl::encoding::ResourceDialect>
9554 fidl::encoding::Encode<AudioRendererGetMinLeadTimeResponse, D>
9555 for &AudioRendererGetMinLeadTimeResponse
9556 {
9557 #[inline]
9558 unsafe fn encode(
9559 self,
9560 encoder: &mut fidl::encoding::Encoder<'_, D>,
9561 offset: usize,
9562 _depth: fidl::encoding::Depth,
9563 ) -> fidl::Result<()> {
9564 encoder.debug_check_bounds::<AudioRendererGetMinLeadTimeResponse>(offset);
9565 unsafe {
9566 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9568 (buf_ptr as *mut AudioRendererGetMinLeadTimeResponse)
9569 .write_unaligned((self as *const AudioRendererGetMinLeadTimeResponse).read());
9570 }
9573 Ok(())
9574 }
9575 }
9576 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
9577 fidl::encoding::Encode<AudioRendererGetMinLeadTimeResponse, D> for (T0,)
9578 {
9579 #[inline]
9580 unsafe fn encode(
9581 self,
9582 encoder: &mut fidl::encoding::Encoder<'_, D>,
9583 offset: usize,
9584 depth: fidl::encoding::Depth,
9585 ) -> fidl::Result<()> {
9586 encoder.debug_check_bounds::<AudioRendererGetMinLeadTimeResponse>(offset);
9587 self.0.encode(encoder, offset + 0, depth)?;
9591 Ok(())
9592 }
9593 }
9594
9595 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9596 for AudioRendererGetMinLeadTimeResponse
9597 {
9598 #[inline(always)]
9599 fn new_empty() -> Self {
9600 Self { min_lead_time_nsec: fidl::new_empty!(i64, D) }
9601 }
9602
9603 #[inline]
9604 unsafe fn decode(
9605 &mut self,
9606 decoder: &mut fidl::encoding::Decoder<'_, D>,
9607 offset: usize,
9608 _depth: fidl::encoding::Depth,
9609 ) -> fidl::Result<()> {
9610 decoder.debug_check_bounds::<Self>(offset);
9611 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9612 unsafe {
9615 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9616 }
9617 Ok(())
9618 }
9619 }
9620
9621 impl fidl::encoding::ValueTypeMarker for AudioRendererOnMinLeadTimeChangedRequest {
9622 type Borrowed<'a> = &'a Self;
9623 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9624 value
9625 }
9626 }
9627
9628 unsafe impl fidl::encoding::TypeMarker for AudioRendererOnMinLeadTimeChangedRequest {
9629 type Owned = Self;
9630
9631 #[inline(always)]
9632 fn inline_align(_context: fidl::encoding::Context) -> usize {
9633 8
9634 }
9635
9636 #[inline(always)]
9637 fn inline_size(_context: fidl::encoding::Context) -> usize {
9638 8
9639 }
9640 #[inline(always)]
9641 fn encode_is_copy() -> bool {
9642 true
9643 }
9644
9645 #[inline(always)]
9646 fn decode_is_copy() -> bool {
9647 true
9648 }
9649 }
9650
9651 unsafe impl<D: fidl::encoding::ResourceDialect>
9652 fidl::encoding::Encode<AudioRendererOnMinLeadTimeChangedRequest, D>
9653 for &AudioRendererOnMinLeadTimeChangedRequest
9654 {
9655 #[inline]
9656 unsafe fn encode(
9657 self,
9658 encoder: &mut fidl::encoding::Encoder<'_, D>,
9659 offset: usize,
9660 _depth: fidl::encoding::Depth,
9661 ) -> fidl::Result<()> {
9662 encoder.debug_check_bounds::<AudioRendererOnMinLeadTimeChangedRequest>(offset);
9663 unsafe {
9664 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9666 (buf_ptr as *mut AudioRendererOnMinLeadTimeChangedRequest).write_unaligned(
9667 (self as *const AudioRendererOnMinLeadTimeChangedRequest).read(),
9668 );
9669 }
9672 Ok(())
9673 }
9674 }
9675 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
9676 fidl::encoding::Encode<AudioRendererOnMinLeadTimeChangedRequest, D> for (T0,)
9677 {
9678 #[inline]
9679 unsafe fn encode(
9680 self,
9681 encoder: &mut fidl::encoding::Encoder<'_, D>,
9682 offset: usize,
9683 depth: fidl::encoding::Depth,
9684 ) -> fidl::Result<()> {
9685 encoder.debug_check_bounds::<AudioRendererOnMinLeadTimeChangedRequest>(offset);
9686 self.0.encode(encoder, offset + 0, depth)?;
9690 Ok(())
9691 }
9692 }
9693
9694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9695 for AudioRendererOnMinLeadTimeChangedRequest
9696 {
9697 #[inline(always)]
9698 fn new_empty() -> Self {
9699 Self { min_lead_time_nsec: fidl::new_empty!(i64, D) }
9700 }
9701
9702 #[inline]
9703 unsafe fn decode(
9704 &mut self,
9705 decoder: &mut fidl::encoding::Decoder<'_, D>,
9706 offset: usize,
9707 _depth: fidl::encoding::Depth,
9708 ) -> fidl::Result<()> {
9709 decoder.debug_check_bounds::<Self>(offset);
9710 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9711 unsafe {
9714 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9715 }
9716 Ok(())
9717 }
9718 }
9719
9720 impl fidl::encoding::ValueTypeMarker for AudioRendererPauseResponse {
9721 type Borrowed<'a> = &'a Self;
9722 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9723 value
9724 }
9725 }
9726
9727 unsafe impl fidl::encoding::TypeMarker for AudioRendererPauseResponse {
9728 type Owned = Self;
9729
9730 #[inline(always)]
9731 fn inline_align(_context: fidl::encoding::Context) -> usize {
9732 8
9733 }
9734
9735 #[inline(always)]
9736 fn inline_size(_context: fidl::encoding::Context) -> usize {
9737 16
9738 }
9739 #[inline(always)]
9740 fn encode_is_copy() -> bool {
9741 true
9742 }
9743
9744 #[inline(always)]
9745 fn decode_is_copy() -> bool {
9746 true
9747 }
9748 }
9749
9750 unsafe impl<D: fidl::encoding::ResourceDialect>
9751 fidl::encoding::Encode<AudioRendererPauseResponse, D> for &AudioRendererPauseResponse
9752 {
9753 #[inline]
9754 unsafe fn encode(
9755 self,
9756 encoder: &mut fidl::encoding::Encoder<'_, D>,
9757 offset: usize,
9758 _depth: fidl::encoding::Depth,
9759 ) -> fidl::Result<()> {
9760 encoder.debug_check_bounds::<AudioRendererPauseResponse>(offset);
9761 unsafe {
9762 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9764 (buf_ptr as *mut AudioRendererPauseResponse)
9765 .write_unaligned((self as *const AudioRendererPauseResponse).read());
9766 }
9769 Ok(())
9770 }
9771 }
9772 unsafe impl<
9773 D: fidl::encoding::ResourceDialect,
9774 T0: fidl::encoding::Encode<i64, D>,
9775 T1: fidl::encoding::Encode<i64, D>,
9776 > fidl::encoding::Encode<AudioRendererPauseResponse, D> for (T0, T1)
9777 {
9778 #[inline]
9779 unsafe fn encode(
9780 self,
9781 encoder: &mut fidl::encoding::Encoder<'_, D>,
9782 offset: usize,
9783 depth: fidl::encoding::Depth,
9784 ) -> fidl::Result<()> {
9785 encoder.debug_check_bounds::<AudioRendererPauseResponse>(offset);
9786 self.0.encode(encoder, offset + 0, depth)?;
9790 self.1.encode(encoder, offset + 8, depth)?;
9791 Ok(())
9792 }
9793 }
9794
9795 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9796 for AudioRendererPauseResponse
9797 {
9798 #[inline(always)]
9799 fn new_empty() -> Self {
9800 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
9801 }
9802
9803 #[inline]
9804 unsafe fn decode(
9805 &mut self,
9806 decoder: &mut fidl::encoding::Decoder<'_, D>,
9807 offset: usize,
9808 _depth: fidl::encoding::Depth,
9809 ) -> fidl::Result<()> {
9810 decoder.debug_check_bounds::<Self>(offset);
9811 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9812 unsafe {
9815 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
9816 }
9817 Ok(())
9818 }
9819 }
9820
9821 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayNoReplyRequest {
9822 type Borrowed<'a> = &'a Self;
9823 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9824 value
9825 }
9826 }
9827
9828 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayNoReplyRequest {
9829 type Owned = Self;
9830
9831 #[inline(always)]
9832 fn inline_align(_context: fidl::encoding::Context) -> usize {
9833 8
9834 }
9835
9836 #[inline(always)]
9837 fn inline_size(_context: fidl::encoding::Context) -> usize {
9838 16
9839 }
9840 #[inline(always)]
9841 fn encode_is_copy() -> bool {
9842 true
9843 }
9844
9845 #[inline(always)]
9846 fn decode_is_copy() -> bool {
9847 true
9848 }
9849 }
9850
9851 unsafe impl<D: fidl::encoding::ResourceDialect>
9852 fidl::encoding::Encode<AudioRendererPlayNoReplyRequest, D>
9853 for &AudioRendererPlayNoReplyRequest
9854 {
9855 #[inline]
9856 unsafe fn encode(
9857 self,
9858 encoder: &mut fidl::encoding::Encoder<'_, D>,
9859 offset: usize,
9860 _depth: fidl::encoding::Depth,
9861 ) -> fidl::Result<()> {
9862 encoder.debug_check_bounds::<AudioRendererPlayNoReplyRequest>(offset);
9863 unsafe {
9864 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9866 (buf_ptr as *mut AudioRendererPlayNoReplyRequest)
9867 .write_unaligned((self as *const AudioRendererPlayNoReplyRequest).read());
9868 }
9871 Ok(())
9872 }
9873 }
9874 unsafe impl<
9875 D: fidl::encoding::ResourceDialect,
9876 T0: fidl::encoding::Encode<i64, D>,
9877 T1: fidl::encoding::Encode<i64, D>,
9878 > fidl::encoding::Encode<AudioRendererPlayNoReplyRequest, D> for (T0, T1)
9879 {
9880 #[inline]
9881 unsafe fn encode(
9882 self,
9883 encoder: &mut fidl::encoding::Encoder<'_, D>,
9884 offset: usize,
9885 depth: fidl::encoding::Depth,
9886 ) -> fidl::Result<()> {
9887 encoder.debug_check_bounds::<AudioRendererPlayNoReplyRequest>(offset);
9888 self.0.encode(encoder, offset + 0, depth)?;
9892 self.1.encode(encoder, offset + 8, depth)?;
9893 Ok(())
9894 }
9895 }
9896
9897 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9898 for AudioRendererPlayNoReplyRequest
9899 {
9900 #[inline(always)]
9901 fn new_empty() -> Self {
9902 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
9903 }
9904
9905 #[inline]
9906 unsafe fn decode(
9907 &mut self,
9908 decoder: &mut fidl::encoding::Decoder<'_, D>,
9909 offset: usize,
9910 _depth: fidl::encoding::Depth,
9911 ) -> fidl::Result<()> {
9912 decoder.debug_check_bounds::<Self>(offset);
9913 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9914 unsafe {
9917 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
9918 }
9919 Ok(())
9920 }
9921 }
9922
9923 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayRequest {
9924 type Borrowed<'a> = &'a Self;
9925 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9926 value
9927 }
9928 }
9929
9930 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayRequest {
9931 type Owned = Self;
9932
9933 #[inline(always)]
9934 fn inline_align(_context: fidl::encoding::Context) -> usize {
9935 8
9936 }
9937
9938 #[inline(always)]
9939 fn inline_size(_context: fidl::encoding::Context) -> usize {
9940 16
9941 }
9942 #[inline(always)]
9943 fn encode_is_copy() -> bool {
9944 true
9945 }
9946
9947 #[inline(always)]
9948 fn decode_is_copy() -> bool {
9949 true
9950 }
9951 }
9952
9953 unsafe impl<D: fidl::encoding::ResourceDialect>
9954 fidl::encoding::Encode<AudioRendererPlayRequest, D> for &AudioRendererPlayRequest
9955 {
9956 #[inline]
9957 unsafe fn encode(
9958 self,
9959 encoder: &mut fidl::encoding::Encoder<'_, D>,
9960 offset: usize,
9961 _depth: fidl::encoding::Depth,
9962 ) -> fidl::Result<()> {
9963 encoder.debug_check_bounds::<AudioRendererPlayRequest>(offset);
9964 unsafe {
9965 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9967 (buf_ptr as *mut AudioRendererPlayRequest)
9968 .write_unaligned((self as *const AudioRendererPlayRequest).read());
9969 }
9972 Ok(())
9973 }
9974 }
9975 unsafe impl<
9976 D: fidl::encoding::ResourceDialect,
9977 T0: fidl::encoding::Encode<i64, D>,
9978 T1: fidl::encoding::Encode<i64, D>,
9979 > fidl::encoding::Encode<AudioRendererPlayRequest, D> for (T0, T1)
9980 {
9981 #[inline]
9982 unsafe fn encode(
9983 self,
9984 encoder: &mut fidl::encoding::Encoder<'_, D>,
9985 offset: usize,
9986 depth: fidl::encoding::Depth,
9987 ) -> fidl::Result<()> {
9988 encoder.debug_check_bounds::<AudioRendererPlayRequest>(offset);
9989 self.0.encode(encoder, offset + 0, depth)?;
9993 self.1.encode(encoder, offset + 8, depth)?;
9994 Ok(())
9995 }
9996 }
9997
9998 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9999 for AudioRendererPlayRequest
10000 {
10001 #[inline(always)]
10002 fn new_empty() -> Self {
10003 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
10004 }
10005
10006 #[inline]
10007 unsafe fn decode(
10008 &mut self,
10009 decoder: &mut fidl::encoding::Decoder<'_, D>,
10010 offset: usize,
10011 _depth: fidl::encoding::Depth,
10012 ) -> fidl::Result<()> {
10013 decoder.debug_check_bounds::<Self>(offset);
10014 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10015 unsafe {
10018 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
10019 }
10020 Ok(())
10021 }
10022 }
10023
10024 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayResponse {
10025 type Borrowed<'a> = &'a Self;
10026 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10027 value
10028 }
10029 }
10030
10031 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayResponse {
10032 type Owned = Self;
10033
10034 #[inline(always)]
10035 fn inline_align(_context: fidl::encoding::Context) -> usize {
10036 8
10037 }
10038
10039 #[inline(always)]
10040 fn inline_size(_context: fidl::encoding::Context) -> usize {
10041 16
10042 }
10043 #[inline(always)]
10044 fn encode_is_copy() -> bool {
10045 true
10046 }
10047
10048 #[inline(always)]
10049 fn decode_is_copy() -> bool {
10050 true
10051 }
10052 }
10053
10054 unsafe impl<D: fidl::encoding::ResourceDialect>
10055 fidl::encoding::Encode<AudioRendererPlayResponse, D> for &AudioRendererPlayResponse
10056 {
10057 #[inline]
10058 unsafe fn encode(
10059 self,
10060 encoder: &mut fidl::encoding::Encoder<'_, D>,
10061 offset: usize,
10062 _depth: fidl::encoding::Depth,
10063 ) -> fidl::Result<()> {
10064 encoder.debug_check_bounds::<AudioRendererPlayResponse>(offset);
10065 unsafe {
10066 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10068 (buf_ptr as *mut AudioRendererPlayResponse)
10069 .write_unaligned((self as *const AudioRendererPlayResponse).read());
10070 }
10073 Ok(())
10074 }
10075 }
10076 unsafe impl<
10077 D: fidl::encoding::ResourceDialect,
10078 T0: fidl::encoding::Encode<i64, D>,
10079 T1: fidl::encoding::Encode<i64, D>,
10080 > fidl::encoding::Encode<AudioRendererPlayResponse, D> for (T0, T1)
10081 {
10082 #[inline]
10083 unsafe fn encode(
10084 self,
10085 encoder: &mut fidl::encoding::Encoder<'_, D>,
10086 offset: usize,
10087 depth: fidl::encoding::Depth,
10088 ) -> fidl::Result<()> {
10089 encoder.debug_check_bounds::<AudioRendererPlayResponse>(offset);
10090 self.0.encode(encoder, offset + 0, depth)?;
10094 self.1.encode(encoder, offset + 8, depth)?;
10095 Ok(())
10096 }
10097 }
10098
10099 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10100 for AudioRendererPlayResponse
10101 {
10102 #[inline(always)]
10103 fn new_empty() -> Self {
10104 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
10105 }
10106
10107 #[inline]
10108 unsafe fn decode(
10109 &mut self,
10110 decoder: &mut fidl::encoding::Decoder<'_, D>,
10111 offset: usize,
10112 _depth: fidl::encoding::Depth,
10113 ) -> fidl::Result<()> {
10114 decoder.debug_check_bounds::<Self>(offset);
10115 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10116 unsafe {
10119 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
10120 }
10121 Ok(())
10122 }
10123 }
10124
10125 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPcmStreamTypeRequest {
10126 type Borrowed<'a> = &'a Self;
10127 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10128 value
10129 }
10130 }
10131
10132 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPcmStreamTypeRequest {
10133 type Owned = Self;
10134
10135 #[inline(always)]
10136 fn inline_align(_context: fidl::encoding::Context) -> usize {
10137 4
10138 }
10139
10140 #[inline(always)]
10141 fn inline_size(_context: fidl::encoding::Context) -> usize {
10142 12
10143 }
10144 }
10145
10146 unsafe impl<D: fidl::encoding::ResourceDialect>
10147 fidl::encoding::Encode<AudioRendererSetPcmStreamTypeRequest, D>
10148 for &AudioRendererSetPcmStreamTypeRequest
10149 {
10150 #[inline]
10151 unsafe fn encode(
10152 self,
10153 encoder: &mut fidl::encoding::Encoder<'_, D>,
10154 offset: usize,
10155 _depth: fidl::encoding::Depth,
10156 ) -> fidl::Result<()> {
10157 encoder.debug_check_bounds::<AudioRendererSetPcmStreamTypeRequest>(offset);
10158 fidl::encoding::Encode::<AudioRendererSetPcmStreamTypeRequest, D>::encode(
10160 (<AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),),
10161 encoder,
10162 offset,
10163 _depth,
10164 )
10165 }
10166 }
10167 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioStreamType, D>>
10168 fidl::encoding::Encode<AudioRendererSetPcmStreamTypeRequest, D> for (T0,)
10169 {
10170 #[inline]
10171 unsafe fn encode(
10172 self,
10173 encoder: &mut fidl::encoding::Encoder<'_, D>,
10174 offset: usize,
10175 depth: fidl::encoding::Depth,
10176 ) -> fidl::Result<()> {
10177 encoder.debug_check_bounds::<AudioRendererSetPcmStreamTypeRequest>(offset);
10178 self.0.encode(encoder, offset + 0, depth)?;
10182 Ok(())
10183 }
10184 }
10185
10186 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10187 for AudioRendererSetPcmStreamTypeRequest
10188 {
10189 #[inline(always)]
10190 fn new_empty() -> Self {
10191 Self { type_: fidl::new_empty!(AudioStreamType, D) }
10192 }
10193
10194 #[inline]
10195 unsafe fn decode(
10196 &mut self,
10197 decoder: &mut fidl::encoding::Decoder<'_, D>,
10198 offset: usize,
10199 _depth: fidl::encoding::Depth,
10200 ) -> fidl::Result<()> {
10201 decoder.debug_check_bounds::<Self>(offset);
10202 fidl::decode!(AudioStreamType, D, &mut self.type_, decoder, offset + 0, _depth)?;
10204 Ok(())
10205 }
10206 }
10207
10208 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPtsContinuityThresholdRequest {
10209 type Borrowed<'a> = &'a Self;
10210 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10211 value
10212 }
10213 }
10214
10215 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPtsContinuityThresholdRequest {
10216 type Owned = Self;
10217
10218 #[inline(always)]
10219 fn inline_align(_context: fidl::encoding::Context) -> usize {
10220 4
10221 }
10222
10223 #[inline(always)]
10224 fn inline_size(_context: fidl::encoding::Context) -> usize {
10225 4
10226 }
10227 }
10228
10229 unsafe impl<D: fidl::encoding::ResourceDialect>
10230 fidl::encoding::Encode<AudioRendererSetPtsContinuityThresholdRequest, D>
10231 for &AudioRendererSetPtsContinuityThresholdRequest
10232 {
10233 #[inline]
10234 unsafe fn encode(
10235 self,
10236 encoder: &mut fidl::encoding::Encoder<'_, D>,
10237 offset: usize,
10238 _depth: fidl::encoding::Depth,
10239 ) -> fidl::Result<()> {
10240 encoder.debug_check_bounds::<AudioRendererSetPtsContinuityThresholdRequest>(offset);
10241 fidl::encoding::Encode::<AudioRendererSetPtsContinuityThresholdRequest, D>::encode(
10243 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.threshold_seconds),),
10244 encoder,
10245 offset,
10246 _depth,
10247 )
10248 }
10249 }
10250 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
10251 fidl::encoding::Encode<AudioRendererSetPtsContinuityThresholdRequest, D> for (T0,)
10252 {
10253 #[inline]
10254 unsafe fn encode(
10255 self,
10256 encoder: &mut fidl::encoding::Encoder<'_, D>,
10257 offset: usize,
10258 depth: fidl::encoding::Depth,
10259 ) -> fidl::Result<()> {
10260 encoder.debug_check_bounds::<AudioRendererSetPtsContinuityThresholdRequest>(offset);
10261 self.0.encode(encoder, offset + 0, depth)?;
10265 Ok(())
10266 }
10267 }
10268
10269 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10270 for AudioRendererSetPtsContinuityThresholdRequest
10271 {
10272 #[inline(always)]
10273 fn new_empty() -> Self {
10274 Self { threshold_seconds: fidl::new_empty!(f32, D) }
10275 }
10276
10277 #[inline]
10278 unsafe fn decode(
10279 &mut self,
10280 decoder: &mut fidl::encoding::Decoder<'_, D>,
10281 offset: usize,
10282 _depth: fidl::encoding::Depth,
10283 ) -> fidl::Result<()> {
10284 decoder.debug_check_bounds::<Self>(offset);
10285 fidl::decode!(f32, D, &mut self.threshold_seconds, decoder, offset + 0, _depth)?;
10287 Ok(())
10288 }
10289 }
10290
10291 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPtsUnitsRequest {
10292 type Borrowed<'a> = &'a Self;
10293 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10294 value
10295 }
10296 }
10297
10298 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPtsUnitsRequest {
10299 type Owned = Self;
10300
10301 #[inline(always)]
10302 fn inline_align(_context: fidl::encoding::Context) -> usize {
10303 4
10304 }
10305
10306 #[inline(always)]
10307 fn inline_size(_context: fidl::encoding::Context) -> usize {
10308 8
10309 }
10310 #[inline(always)]
10311 fn encode_is_copy() -> bool {
10312 true
10313 }
10314
10315 #[inline(always)]
10316 fn decode_is_copy() -> bool {
10317 true
10318 }
10319 }
10320
10321 unsafe impl<D: fidl::encoding::ResourceDialect>
10322 fidl::encoding::Encode<AudioRendererSetPtsUnitsRequest, D>
10323 for &AudioRendererSetPtsUnitsRequest
10324 {
10325 #[inline]
10326 unsafe fn encode(
10327 self,
10328 encoder: &mut fidl::encoding::Encoder<'_, D>,
10329 offset: usize,
10330 _depth: fidl::encoding::Depth,
10331 ) -> fidl::Result<()> {
10332 encoder.debug_check_bounds::<AudioRendererSetPtsUnitsRequest>(offset);
10333 unsafe {
10334 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10336 (buf_ptr as *mut AudioRendererSetPtsUnitsRequest)
10337 .write_unaligned((self as *const AudioRendererSetPtsUnitsRequest).read());
10338 }
10341 Ok(())
10342 }
10343 }
10344 unsafe impl<
10345 D: fidl::encoding::ResourceDialect,
10346 T0: fidl::encoding::Encode<u32, D>,
10347 T1: fidl::encoding::Encode<u32, D>,
10348 > fidl::encoding::Encode<AudioRendererSetPtsUnitsRequest, D> for (T0, T1)
10349 {
10350 #[inline]
10351 unsafe fn encode(
10352 self,
10353 encoder: &mut fidl::encoding::Encoder<'_, D>,
10354 offset: usize,
10355 depth: fidl::encoding::Depth,
10356 ) -> fidl::Result<()> {
10357 encoder.debug_check_bounds::<AudioRendererSetPtsUnitsRequest>(offset);
10358 self.0.encode(encoder, offset + 0, depth)?;
10362 self.1.encode(encoder, offset + 4, depth)?;
10363 Ok(())
10364 }
10365 }
10366
10367 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10368 for AudioRendererSetPtsUnitsRequest
10369 {
10370 #[inline(always)]
10371 fn new_empty() -> Self {
10372 Self {
10373 tick_per_second_numerator: fidl::new_empty!(u32, D),
10374 tick_per_second_denominator: fidl::new_empty!(u32, D),
10375 }
10376 }
10377
10378 #[inline]
10379 unsafe fn decode(
10380 &mut self,
10381 decoder: &mut fidl::encoding::Decoder<'_, D>,
10382 offset: usize,
10383 _depth: fidl::encoding::Depth,
10384 ) -> fidl::Result<()> {
10385 decoder.debug_check_bounds::<Self>(offset);
10386 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10387 unsafe {
10390 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
10391 }
10392 Ok(())
10393 }
10394 }
10395
10396 impl fidl::encoding::ValueTypeMarker for AudioRendererSetUsage2Request {
10397 type Borrowed<'a> = &'a Self;
10398 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10399 value
10400 }
10401 }
10402
10403 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetUsage2Request {
10404 type Owned = Self;
10405
10406 #[inline(always)]
10407 fn inline_align(_context: fidl::encoding::Context) -> usize {
10408 4
10409 }
10410
10411 #[inline(always)]
10412 fn inline_size(_context: fidl::encoding::Context) -> usize {
10413 4
10414 }
10415 }
10416
10417 unsafe impl<D: fidl::encoding::ResourceDialect>
10418 fidl::encoding::Encode<AudioRendererSetUsage2Request, D>
10419 for &AudioRendererSetUsage2Request
10420 {
10421 #[inline]
10422 unsafe fn encode(
10423 self,
10424 encoder: &mut fidl::encoding::Encoder<'_, D>,
10425 offset: usize,
10426 _depth: fidl::encoding::Depth,
10427 ) -> fidl::Result<()> {
10428 encoder.debug_check_bounds::<AudioRendererSetUsage2Request>(offset);
10429 fidl::encoding::Encode::<AudioRendererSetUsage2Request, D>::encode(
10431 (<AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage2),),
10432 encoder,
10433 offset,
10434 _depth,
10435 )
10436 }
10437 }
10438 unsafe impl<
10439 D: fidl::encoding::ResourceDialect,
10440 T0: fidl::encoding::Encode<AudioRenderUsage2, D>,
10441 > fidl::encoding::Encode<AudioRendererSetUsage2Request, D> for (T0,)
10442 {
10443 #[inline]
10444 unsafe fn encode(
10445 self,
10446 encoder: &mut fidl::encoding::Encoder<'_, D>,
10447 offset: usize,
10448 depth: fidl::encoding::Depth,
10449 ) -> fidl::Result<()> {
10450 encoder.debug_check_bounds::<AudioRendererSetUsage2Request>(offset);
10451 self.0.encode(encoder, offset + 0, depth)?;
10455 Ok(())
10456 }
10457 }
10458
10459 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10460 for AudioRendererSetUsage2Request
10461 {
10462 #[inline(always)]
10463 fn new_empty() -> Self {
10464 Self { usage2: fidl::new_empty!(AudioRenderUsage2, D) }
10465 }
10466
10467 #[inline]
10468 unsafe fn decode(
10469 &mut self,
10470 decoder: &mut fidl::encoding::Decoder<'_, D>,
10471 offset: usize,
10472 _depth: fidl::encoding::Depth,
10473 ) -> fidl::Result<()> {
10474 decoder.debug_check_bounds::<Self>(offset);
10475 fidl::decode!(AudioRenderUsage2, D, &mut self.usage2, decoder, offset + 0, _depth)?;
10477 Ok(())
10478 }
10479 }
10480
10481 impl fidl::encoding::ValueTypeMarker for AudioRendererSetUsageRequest {
10482 type Borrowed<'a> = &'a Self;
10483 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10484 value
10485 }
10486 }
10487
10488 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetUsageRequest {
10489 type Owned = Self;
10490
10491 #[inline(always)]
10492 fn inline_align(_context: fidl::encoding::Context) -> usize {
10493 4
10494 }
10495
10496 #[inline(always)]
10497 fn inline_size(_context: fidl::encoding::Context) -> usize {
10498 4
10499 }
10500 }
10501
10502 unsafe impl<D: fidl::encoding::ResourceDialect>
10503 fidl::encoding::Encode<AudioRendererSetUsageRequest, D> for &AudioRendererSetUsageRequest
10504 {
10505 #[inline]
10506 unsafe fn encode(
10507 self,
10508 encoder: &mut fidl::encoding::Encoder<'_, D>,
10509 offset: usize,
10510 _depth: fidl::encoding::Depth,
10511 ) -> fidl::Result<()> {
10512 encoder.debug_check_bounds::<AudioRendererSetUsageRequest>(offset);
10513 fidl::encoding::Encode::<AudioRendererSetUsageRequest, D>::encode(
10515 (<AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
10516 encoder,
10517 offset,
10518 _depth,
10519 )
10520 }
10521 }
10522 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioRenderUsage, D>>
10523 fidl::encoding::Encode<AudioRendererSetUsageRequest, D> for (T0,)
10524 {
10525 #[inline]
10526 unsafe fn encode(
10527 self,
10528 encoder: &mut fidl::encoding::Encoder<'_, D>,
10529 offset: usize,
10530 depth: fidl::encoding::Depth,
10531 ) -> fidl::Result<()> {
10532 encoder.debug_check_bounds::<AudioRendererSetUsageRequest>(offset);
10533 self.0.encode(encoder, offset + 0, depth)?;
10537 Ok(())
10538 }
10539 }
10540
10541 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10542 for AudioRendererSetUsageRequest
10543 {
10544 #[inline(always)]
10545 fn new_empty() -> Self {
10546 Self { usage: fidl::new_empty!(AudioRenderUsage, D) }
10547 }
10548
10549 #[inline]
10550 unsafe fn decode(
10551 &mut self,
10552 decoder: &mut fidl::encoding::Decoder<'_, D>,
10553 offset: usize,
10554 _depth: fidl::encoding::Depth,
10555 ) -> fidl::Result<()> {
10556 decoder.debug_check_bounds::<Self>(offset);
10557 fidl::decode!(AudioRenderUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
10559 Ok(())
10560 }
10561 }
10562
10563 impl fidl::encoding::ValueTypeMarker for AudioStreamType {
10564 type Borrowed<'a> = &'a Self;
10565 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10566 value
10567 }
10568 }
10569
10570 unsafe impl fidl::encoding::TypeMarker for AudioStreamType {
10571 type Owned = Self;
10572
10573 #[inline(always)]
10574 fn inline_align(_context: fidl::encoding::Context) -> usize {
10575 4
10576 }
10577
10578 #[inline(always)]
10579 fn inline_size(_context: fidl::encoding::Context) -> usize {
10580 12
10581 }
10582 }
10583
10584 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioStreamType, D>
10585 for &AudioStreamType
10586 {
10587 #[inline]
10588 unsafe fn encode(
10589 self,
10590 encoder: &mut fidl::encoding::Encoder<'_, D>,
10591 offset: usize,
10592 _depth: fidl::encoding::Depth,
10593 ) -> fidl::Result<()> {
10594 encoder.debug_check_bounds::<AudioStreamType>(offset);
10595 fidl::encoding::Encode::<AudioStreamType, D>::encode(
10597 (
10598 <AudioSampleFormat as fidl::encoding::ValueTypeMarker>::borrow(
10599 &self.sample_format,
10600 ),
10601 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.channels),
10602 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frames_per_second),
10603 ),
10604 encoder,
10605 offset,
10606 _depth,
10607 )
10608 }
10609 }
10610 unsafe impl<
10611 D: fidl::encoding::ResourceDialect,
10612 T0: fidl::encoding::Encode<AudioSampleFormat, D>,
10613 T1: fidl::encoding::Encode<u32, D>,
10614 T2: fidl::encoding::Encode<u32, D>,
10615 > fidl::encoding::Encode<AudioStreamType, D> for (T0, T1, T2)
10616 {
10617 #[inline]
10618 unsafe fn encode(
10619 self,
10620 encoder: &mut fidl::encoding::Encoder<'_, D>,
10621 offset: usize,
10622 depth: fidl::encoding::Depth,
10623 ) -> fidl::Result<()> {
10624 encoder.debug_check_bounds::<AudioStreamType>(offset);
10625 self.0.encode(encoder, offset + 0, depth)?;
10629 self.1.encode(encoder, offset + 4, depth)?;
10630 self.2.encode(encoder, offset + 8, depth)?;
10631 Ok(())
10632 }
10633 }
10634
10635 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioStreamType {
10636 #[inline(always)]
10637 fn new_empty() -> Self {
10638 Self {
10639 sample_format: fidl::new_empty!(AudioSampleFormat, D),
10640 channels: fidl::new_empty!(u32, D),
10641 frames_per_second: fidl::new_empty!(u32, D),
10642 }
10643 }
10644
10645 #[inline]
10646 unsafe fn decode(
10647 &mut self,
10648 decoder: &mut fidl::encoding::Decoder<'_, D>,
10649 offset: usize,
10650 _depth: fidl::encoding::Depth,
10651 ) -> fidl::Result<()> {
10652 decoder.debug_check_bounds::<Self>(offset);
10653 fidl::decode!(
10655 AudioSampleFormat,
10656 D,
10657 &mut self.sample_format,
10658 decoder,
10659 offset + 0,
10660 _depth
10661 )?;
10662 fidl::decode!(u32, D, &mut self.channels, decoder, offset + 4, _depth)?;
10663 fidl::decode!(u32, D, &mut self.frames_per_second, decoder, offset + 8, _depth)?;
10664 Ok(())
10665 }
10666 }
10667
10668 impl fidl::encoding::ValueTypeMarker for Compression {
10669 type Borrowed<'a> = &'a Self;
10670 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10671 value
10672 }
10673 }
10674
10675 unsafe impl fidl::encoding::TypeMarker for Compression {
10676 type Owned = Self;
10677
10678 #[inline(always)]
10679 fn inline_align(_context: fidl::encoding::Context) -> usize {
10680 8
10681 }
10682
10683 #[inline(always)]
10684 fn inline_size(_context: fidl::encoding::Context) -> usize {
10685 32
10686 }
10687 }
10688
10689 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Compression, D>
10690 for &Compression
10691 {
10692 #[inline]
10693 unsafe fn encode(
10694 self,
10695 encoder: &mut fidl::encoding::Encoder<'_, D>,
10696 offset: usize,
10697 _depth: fidl::encoding::Depth,
10698 ) -> fidl::Result<()> {
10699 encoder.debug_check_bounds::<Compression>(offset);
10700 fidl::encoding::Encode::<Compression, D>::encode(
10702 (
10703 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),
10704 <fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
10705 ),
10706 encoder, offset, _depth
10707 )
10708 }
10709 }
10710 unsafe impl<
10711 D: fidl::encoding::ResourceDialect,
10712 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
10713 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>, D>,
10714 > fidl::encoding::Encode<Compression, D> for (T0, T1)
10715 {
10716 #[inline]
10717 unsafe fn encode(
10718 self,
10719 encoder: &mut fidl::encoding::Encoder<'_, D>,
10720 offset: usize,
10721 depth: fidl::encoding::Depth,
10722 ) -> fidl::Result<()> {
10723 encoder.debug_check_bounds::<Compression>(offset);
10724 self.0.encode(encoder, offset + 0, depth)?;
10728 self.1.encode(encoder, offset + 16, depth)?;
10729 Ok(())
10730 }
10731 }
10732
10733 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Compression {
10734 #[inline(always)]
10735 fn new_empty() -> Self {
10736 Self {
10737 type_: fidl::new_empty!(fidl::encoding::BoundedString<256>, D),
10738 parameters: fidl::new_empty!(
10739 fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>,
10740 D
10741 ),
10742 }
10743 }
10744
10745 #[inline]
10746 unsafe fn decode(
10747 &mut self,
10748 decoder: &mut fidl::encoding::Decoder<'_, D>,
10749 offset: usize,
10750 _depth: fidl::encoding::Depth,
10751 ) -> fidl::Result<()> {
10752 decoder.debug_check_bounds::<Self>(offset);
10753 fidl::decode!(
10755 fidl::encoding::BoundedString<256>,
10756 D,
10757 &mut self.type_,
10758 decoder,
10759 offset + 0,
10760 _depth
10761 )?;
10762 fidl::decode!(
10763 fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>,
10764 D,
10765 &mut self.parameters,
10766 decoder,
10767 offset + 16,
10768 _depth
10769 )?;
10770 Ok(())
10771 }
10772 }
10773
10774 impl fidl::encoding::ValueTypeMarker for EncryptionPattern {
10775 type Borrowed<'a> = &'a Self;
10776 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10777 value
10778 }
10779 }
10780
10781 unsafe impl fidl::encoding::TypeMarker for EncryptionPattern {
10782 type Owned = Self;
10783
10784 #[inline(always)]
10785 fn inline_align(_context: fidl::encoding::Context) -> usize {
10786 4
10787 }
10788
10789 #[inline(always)]
10790 fn inline_size(_context: fidl::encoding::Context) -> usize {
10791 8
10792 }
10793 #[inline(always)]
10794 fn encode_is_copy() -> bool {
10795 true
10796 }
10797
10798 #[inline(always)]
10799 fn decode_is_copy() -> bool {
10800 true
10801 }
10802 }
10803
10804 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncryptionPattern, D>
10805 for &EncryptionPattern
10806 {
10807 #[inline]
10808 unsafe fn encode(
10809 self,
10810 encoder: &mut fidl::encoding::Encoder<'_, D>,
10811 offset: usize,
10812 _depth: fidl::encoding::Depth,
10813 ) -> fidl::Result<()> {
10814 encoder.debug_check_bounds::<EncryptionPattern>(offset);
10815 unsafe {
10816 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10818 (buf_ptr as *mut EncryptionPattern)
10819 .write_unaligned((self as *const EncryptionPattern).read());
10820 }
10823 Ok(())
10824 }
10825 }
10826 unsafe impl<
10827 D: fidl::encoding::ResourceDialect,
10828 T0: fidl::encoding::Encode<u32, D>,
10829 T1: fidl::encoding::Encode<u32, D>,
10830 > fidl::encoding::Encode<EncryptionPattern, D> for (T0, T1)
10831 {
10832 #[inline]
10833 unsafe fn encode(
10834 self,
10835 encoder: &mut fidl::encoding::Encoder<'_, D>,
10836 offset: usize,
10837 depth: fidl::encoding::Depth,
10838 ) -> fidl::Result<()> {
10839 encoder.debug_check_bounds::<EncryptionPattern>(offset);
10840 self.0.encode(encoder, offset + 0, depth)?;
10844 self.1.encode(encoder, offset + 4, depth)?;
10845 Ok(())
10846 }
10847 }
10848
10849 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncryptionPattern {
10850 #[inline(always)]
10851 fn new_empty() -> Self {
10852 Self {
10853 clear_blocks: fidl::new_empty!(u32, D),
10854 encrypted_blocks: fidl::new_empty!(u32, D),
10855 }
10856 }
10857
10858 #[inline]
10859 unsafe fn decode(
10860 &mut self,
10861 decoder: &mut fidl::encoding::Decoder<'_, D>,
10862 offset: usize,
10863 _depth: fidl::encoding::Depth,
10864 ) -> fidl::Result<()> {
10865 decoder.debug_check_bounds::<Self>(offset);
10866 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10867 unsafe {
10870 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
10871 }
10872 Ok(())
10873 }
10874 }
10875
10876 impl fidl::encoding::ValueTypeMarker for Metadata {
10877 type Borrowed<'a> = &'a Self;
10878 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10879 value
10880 }
10881 }
10882
10883 unsafe impl fidl::encoding::TypeMarker for Metadata {
10884 type Owned = Self;
10885
10886 #[inline(always)]
10887 fn inline_align(_context: fidl::encoding::Context) -> usize {
10888 8
10889 }
10890
10891 #[inline(always)]
10892 fn inline_size(_context: fidl::encoding::Context) -> usize {
10893 16
10894 }
10895 }
10896
10897 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Metadata, D> for &Metadata {
10898 #[inline]
10899 unsafe fn encode(
10900 self,
10901 encoder: &mut fidl::encoding::Encoder<'_, D>,
10902 offset: usize,
10903 _depth: fidl::encoding::Depth,
10904 ) -> fidl::Result<()> {
10905 encoder.debug_check_bounds::<Metadata>(offset);
10906 fidl::encoding::Encode::<Metadata, D>::encode(
10908 (
10909 <fidl::encoding::UnboundedVector<Property> as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),
10910 ),
10911 encoder, offset, _depth
10912 )
10913 }
10914 }
10915 unsafe impl<
10916 D: fidl::encoding::ResourceDialect,
10917 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Property>, D>,
10918 > fidl::encoding::Encode<Metadata, D> for (T0,)
10919 {
10920 #[inline]
10921 unsafe fn encode(
10922 self,
10923 encoder: &mut fidl::encoding::Encoder<'_, D>,
10924 offset: usize,
10925 depth: fidl::encoding::Depth,
10926 ) -> fidl::Result<()> {
10927 encoder.debug_check_bounds::<Metadata>(offset);
10928 self.0.encode(encoder, offset + 0, depth)?;
10932 Ok(())
10933 }
10934 }
10935
10936 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Metadata {
10937 #[inline(always)]
10938 fn new_empty() -> Self {
10939 Self { properties: fidl::new_empty!(fidl::encoding::UnboundedVector<Property>, D) }
10940 }
10941
10942 #[inline]
10943 unsafe fn decode(
10944 &mut self,
10945 decoder: &mut fidl::encoding::Decoder<'_, D>,
10946 offset: usize,
10947 _depth: fidl::encoding::Depth,
10948 ) -> fidl::Result<()> {
10949 decoder.debug_check_bounds::<Self>(offset);
10950 fidl::decode!(
10952 fidl::encoding::UnboundedVector<Property>,
10953 D,
10954 &mut self.properties,
10955 decoder,
10956 offset + 0,
10957 _depth
10958 )?;
10959 Ok(())
10960 }
10961 }
10962
10963 impl fidl::encoding::ValueTypeMarker for Parameter {
10964 type Borrowed<'a> = &'a Self;
10965 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10966 value
10967 }
10968 }
10969
10970 unsafe impl fidl::encoding::TypeMarker for Parameter {
10971 type Owned = Self;
10972
10973 #[inline(always)]
10974 fn inline_align(_context: fidl::encoding::Context) -> usize {
10975 8
10976 }
10977
10978 #[inline(always)]
10979 fn inline_size(_context: fidl::encoding::Context) -> usize {
10980 48
10981 }
10982 }
10983
10984 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Parameter, D>
10985 for &Parameter
10986 {
10987 #[inline]
10988 unsafe fn encode(
10989 self,
10990 encoder: &mut fidl::encoding::Encoder<'_, D>,
10991 offset: usize,
10992 _depth: fidl::encoding::Depth,
10993 ) -> fidl::Result<()> {
10994 encoder.debug_check_bounds::<Parameter>(offset);
10995 fidl::encoding::Encode::<Parameter, D>::encode(
10997 (
10998 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
10999 &self.scope,
11000 ),
11001 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11002 &self.name,
11003 ),
11004 <Value as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
11005 ),
11006 encoder,
11007 offset,
11008 _depth,
11009 )
11010 }
11011 }
11012 unsafe impl<
11013 D: fidl::encoding::ResourceDialect,
11014 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11015 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11016 T2: fidl::encoding::Encode<Value, D>,
11017 > fidl::encoding::Encode<Parameter, D> for (T0, T1, T2)
11018 {
11019 #[inline]
11020 unsafe fn encode(
11021 self,
11022 encoder: &mut fidl::encoding::Encoder<'_, D>,
11023 offset: usize,
11024 depth: fidl::encoding::Depth,
11025 ) -> fidl::Result<()> {
11026 encoder.debug_check_bounds::<Parameter>(offset);
11027 self.0.encode(encoder, offset + 0, depth)?;
11031 self.1.encode(encoder, offset + 16, depth)?;
11032 self.2.encode(encoder, offset + 32, depth)?;
11033 Ok(())
11034 }
11035 }
11036
11037 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Parameter {
11038 #[inline(always)]
11039 fn new_empty() -> Self {
11040 Self {
11041 scope: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11042 name: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11043 value: fidl::new_empty!(Value, D),
11044 }
11045 }
11046
11047 #[inline]
11048 unsafe fn decode(
11049 &mut self,
11050 decoder: &mut fidl::encoding::Decoder<'_, D>,
11051 offset: usize,
11052 _depth: fidl::encoding::Depth,
11053 ) -> fidl::Result<()> {
11054 decoder.debug_check_bounds::<Self>(offset);
11055 fidl::decode!(
11057 fidl::encoding::UnboundedString,
11058 D,
11059 &mut self.scope,
11060 decoder,
11061 offset + 0,
11062 _depth
11063 )?;
11064 fidl::decode!(
11065 fidl::encoding::UnboundedString,
11066 D,
11067 &mut self.name,
11068 decoder,
11069 offset + 16,
11070 _depth
11071 )?;
11072 fidl::decode!(Value, D, &mut self.value, decoder, offset + 32, _depth)?;
11073 Ok(())
11074 }
11075 }
11076
11077 impl fidl::encoding::ValueTypeMarker for PcmFormat {
11078 type Borrowed<'a> = &'a Self;
11079 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11080 value
11081 }
11082 }
11083
11084 unsafe impl fidl::encoding::TypeMarker for PcmFormat {
11085 type Owned = Self;
11086
11087 #[inline(always)]
11088 fn inline_align(_context: fidl::encoding::Context) -> usize {
11089 8
11090 }
11091
11092 #[inline(always)]
11093 fn inline_size(_context: fidl::encoding::Context) -> usize {
11094 32
11095 }
11096 }
11097
11098 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmFormat, D>
11099 for &PcmFormat
11100 {
11101 #[inline]
11102 unsafe fn encode(
11103 self,
11104 encoder: &mut fidl::encoding::Encoder<'_, D>,
11105 offset: usize,
11106 _depth: fidl::encoding::Depth,
11107 ) -> fidl::Result<()> {
11108 encoder.debug_check_bounds::<PcmFormat>(offset);
11109 fidl::encoding::Encode::<PcmFormat, D>::encode(
11111 (
11112 <AudioPcmMode as fidl::encoding::ValueTypeMarker>::borrow(&self.pcm_mode),
11113 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
11114 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frames_per_second),
11115 <fidl::encoding::Vector<AudioChannelId, 16> as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_map),
11116 ),
11117 encoder, offset, _depth
11118 )
11119 }
11120 }
11121 unsafe impl<
11122 D: fidl::encoding::ResourceDialect,
11123 T0: fidl::encoding::Encode<AudioPcmMode, D>,
11124 T1: fidl::encoding::Encode<u32, D>,
11125 T2: fidl::encoding::Encode<u32, D>,
11126 T3: fidl::encoding::Encode<fidl::encoding::Vector<AudioChannelId, 16>, D>,
11127 > fidl::encoding::Encode<PcmFormat, D> for (T0, T1, T2, T3)
11128 {
11129 #[inline]
11130 unsafe fn encode(
11131 self,
11132 encoder: &mut fidl::encoding::Encoder<'_, D>,
11133 offset: usize,
11134 depth: fidl::encoding::Depth,
11135 ) -> fidl::Result<()> {
11136 encoder.debug_check_bounds::<PcmFormat>(offset);
11137 unsafe {
11140 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11141 (ptr as *mut u64).write_unaligned(0);
11142 }
11143 self.0.encode(encoder, offset + 0, depth)?;
11145 self.1.encode(encoder, offset + 4, depth)?;
11146 self.2.encode(encoder, offset + 8, depth)?;
11147 self.3.encode(encoder, offset + 16, depth)?;
11148 Ok(())
11149 }
11150 }
11151
11152 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmFormat {
11153 #[inline(always)]
11154 fn new_empty() -> Self {
11155 Self {
11156 pcm_mode: fidl::new_empty!(AudioPcmMode, D),
11157 bits_per_sample: fidl::new_empty!(u32, D),
11158 frames_per_second: fidl::new_empty!(u32, D),
11159 channel_map: fidl::new_empty!(fidl::encoding::Vector<AudioChannelId, 16>, D),
11160 }
11161 }
11162
11163 #[inline]
11164 unsafe fn decode(
11165 &mut self,
11166 decoder: &mut fidl::encoding::Decoder<'_, D>,
11167 offset: usize,
11168 _depth: fidl::encoding::Depth,
11169 ) -> fidl::Result<()> {
11170 decoder.debug_check_bounds::<Self>(offset);
11171 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
11173 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11174 let mask = 0xffffffff00000000u64;
11175 let maskedval = padval & mask;
11176 if maskedval != 0 {
11177 return Err(fidl::Error::NonZeroPadding {
11178 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11179 });
11180 }
11181 fidl::decode!(AudioPcmMode, D, &mut self.pcm_mode, decoder, offset + 0, _depth)?;
11182 fidl::decode!(u32, D, &mut self.bits_per_sample, decoder, offset + 4, _depth)?;
11183 fidl::decode!(u32, D, &mut self.frames_per_second, decoder, offset + 8, _depth)?;
11184 fidl::decode!(fidl::encoding::Vector<AudioChannelId, 16>, D, &mut self.channel_map, decoder, offset + 16, _depth)?;
11185 Ok(())
11186 }
11187 }
11188
11189 impl fidl::encoding::ValueTypeMarker for ProfileProviderRegisterHandlerWithCapacityResponse {
11190 type Borrowed<'a> = &'a Self;
11191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11192 value
11193 }
11194 }
11195
11196 unsafe impl fidl::encoding::TypeMarker for ProfileProviderRegisterHandlerWithCapacityResponse {
11197 type Owned = Self;
11198
11199 #[inline(always)]
11200 fn inline_align(_context: fidl::encoding::Context) -> usize {
11201 8
11202 }
11203
11204 #[inline(always)]
11205 fn inline_size(_context: fidl::encoding::Context) -> usize {
11206 16
11207 }
11208 #[inline(always)]
11209 fn encode_is_copy() -> bool {
11210 true
11211 }
11212
11213 #[inline(always)]
11214 fn decode_is_copy() -> bool {
11215 true
11216 }
11217 }
11218
11219 unsafe impl<D: fidl::encoding::ResourceDialect>
11220 fidl::encoding::Encode<ProfileProviderRegisterHandlerWithCapacityResponse, D>
11221 for &ProfileProviderRegisterHandlerWithCapacityResponse
11222 {
11223 #[inline]
11224 unsafe fn encode(
11225 self,
11226 encoder: &mut fidl::encoding::Encoder<'_, D>,
11227 offset: usize,
11228 _depth: fidl::encoding::Depth,
11229 ) -> fidl::Result<()> {
11230 encoder
11231 .debug_check_bounds::<ProfileProviderRegisterHandlerWithCapacityResponse>(offset);
11232 unsafe {
11233 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11235 (buf_ptr as *mut ProfileProviderRegisterHandlerWithCapacityResponse)
11236 .write_unaligned(
11237 (self as *const ProfileProviderRegisterHandlerWithCapacityResponse).read(),
11238 );
11239 }
11242 Ok(())
11243 }
11244 }
11245 unsafe impl<
11246 D: fidl::encoding::ResourceDialect,
11247 T0: fidl::encoding::Encode<i64, D>,
11248 T1: fidl::encoding::Encode<i64, D>,
11249 > fidl::encoding::Encode<ProfileProviderRegisterHandlerWithCapacityResponse, D> for (T0, T1)
11250 {
11251 #[inline]
11252 unsafe fn encode(
11253 self,
11254 encoder: &mut fidl::encoding::Encoder<'_, D>,
11255 offset: usize,
11256 depth: fidl::encoding::Depth,
11257 ) -> fidl::Result<()> {
11258 encoder
11259 .debug_check_bounds::<ProfileProviderRegisterHandlerWithCapacityResponse>(offset);
11260 self.0.encode(encoder, offset + 0, depth)?;
11264 self.1.encode(encoder, offset + 8, depth)?;
11265 Ok(())
11266 }
11267 }
11268
11269 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11270 for ProfileProviderRegisterHandlerWithCapacityResponse
11271 {
11272 #[inline(always)]
11273 fn new_empty() -> Self {
11274 Self { period: fidl::new_empty!(i64, D), capacity: fidl::new_empty!(i64, D) }
11275 }
11276
11277 #[inline]
11278 unsafe fn decode(
11279 &mut self,
11280 decoder: &mut fidl::encoding::Decoder<'_, D>,
11281 offset: usize,
11282 _depth: fidl::encoding::Depth,
11283 ) -> fidl::Result<()> {
11284 decoder.debug_check_bounds::<Self>(offset);
11285 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11286 unsafe {
11289 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
11290 }
11291 Ok(())
11292 }
11293 }
11294
11295 impl fidl::encoding::ValueTypeMarker for Property {
11296 type Borrowed<'a> = &'a Self;
11297 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11298 value
11299 }
11300 }
11301
11302 unsafe impl fidl::encoding::TypeMarker for Property {
11303 type Owned = Self;
11304
11305 #[inline(always)]
11306 fn inline_align(_context: fidl::encoding::Context) -> usize {
11307 8
11308 }
11309
11310 #[inline(always)]
11311 fn inline_size(_context: fidl::encoding::Context) -> usize {
11312 32
11313 }
11314 }
11315
11316 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Property, D> for &Property {
11317 #[inline]
11318 unsafe fn encode(
11319 self,
11320 encoder: &mut fidl::encoding::Encoder<'_, D>,
11321 offset: usize,
11322 _depth: fidl::encoding::Depth,
11323 ) -> fidl::Result<()> {
11324 encoder.debug_check_bounds::<Property>(offset);
11325 fidl::encoding::Encode::<Property, D>::encode(
11327 (
11328 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11329 &self.label,
11330 ),
11331 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11332 &self.value,
11333 ),
11334 ),
11335 encoder,
11336 offset,
11337 _depth,
11338 )
11339 }
11340 }
11341 unsafe impl<
11342 D: fidl::encoding::ResourceDialect,
11343 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11344 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11345 > fidl::encoding::Encode<Property, D> for (T0, T1)
11346 {
11347 #[inline]
11348 unsafe fn encode(
11349 self,
11350 encoder: &mut fidl::encoding::Encoder<'_, D>,
11351 offset: usize,
11352 depth: fidl::encoding::Depth,
11353 ) -> fidl::Result<()> {
11354 encoder.debug_check_bounds::<Property>(offset);
11355 self.0.encode(encoder, offset + 0, depth)?;
11359 self.1.encode(encoder, offset + 16, depth)?;
11360 Ok(())
11361 }
11362 }
11363
11364 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Property {
11365 #[inline(always)]
11366 fn new_empty() -> Self {
11367 Self {
11368 label: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11369 value: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11370 }
11371 }
11372
11373 #[inline]
11374 unsafe fn decode(
11375 &mut self,
11376 decoder: &mut fidl::encoding::Decoder<'_, D>,
11377 offset: usize,
11378 _depth: fidl::encoding::Depth,
11379 ) -> fidl::Result<()> {
11380 decoder.debug_check_bounds::<Self>(offset);
11381 fidl::decode!(
11383 fidl::encoding::UnboundedString,
11384 D,
11385 &mut self.label,
11386 decoder,
11387 offset + 0,
11388 _depth
11389 )?;
11390 fidl::decode!(
11391 fidl::encoding::UnboundedString,
11392 D,
11393 &mut self.value,
11394 decoder,
11395 offset + 16,
11396 _depth
11397 )?;
11398 Ok(())
11399 }
11400 }
11401
11402 impl fidl::encoding::ValueTypeMarker for SbcEncoderSettings {
11403 type Borrowed<'a> = &'a Self;
11404 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11405 value
11406 }
11407 }
11408
11409 unsafe impl fidl::encoding::TypeMarker for SbcEncoderSettings {
11410 type Owned = Self;
11411
11412 #[inline(always)]
11413 fn inline_align(_context: fidl::encoding::Context) -> usize {
11414 8
11415 }
11416
11417 #[inline(always)]
11418 fn inline_size(_context: fidl::encoding::Context) -> usize {
11419 24
11420 }
11421 }
11422
11423 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SbcEncoderSettings, D>
11424 for &SbcEncoderSettings
11425 {
11426 #[inline]
11427 unsafe fn encode(
11428 self,
11429 encoder: &mut fidl::encoding::Encoder<'_, D>,
11430 offset: usize,
11431 _depth: fidl::encoding::Depth,
11432 ) -> fidl::Result<()> {
11433 encoder.debug_check_bounds::<SbcEncoderSettings>(offset);
11434 fidl::encoding::Encode::<SbcEncoderSettings, D>::encode(
11436 (
11437 <SbcSubBands as fidl::encoding::ValueTypeMarker>::borrow(&self.sub_bands),
11438 <SbcAllocation as fidl::encoding::ValueTypeMarker>::borrow(&self.allocation),
11439 <SbcBlockCount as fidl::encoding::ValueTypeMarker>::borrow(&self.block_count),
11440 <SbcChannelMode as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_mode),
11441 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.bit_pool),
11442 ),
11443 encoder,
11444 offset,
11445 _depth,
11446 )
11447 }
11448 }
11449 unsafe impl<
11450 D: fidl::encoding::ResourceDialect,
11451 T0: fidl::encoding::Encode<SbcSubBands, D>,
11452 T1: fidl::encoding::Encode<SbcAllocation, D>,
11453 T2: fidl::encoding::Encode<SbcBlockCount, D>,
11454 T3: fidl::encoding::Encode<SbcChannelMode, D>,
11455 T4: fidl::encoding::Encode<u64, D>,
11456 > fidl::encoding::Encode<SbcEncoderSettings, D> for (T0, T1, T2, T3, T4)
11457 {
11458 #[inline]
11459 unsafe fn encode(
11460 self,
11461 encoder: &mut fidl::encoding::Encoder<'_, D>,
11462 offset: usize,
11463 depth: fidl::encoding::Depth,
11464 ) -> fidl::Result<()> {
11465 encoder.debug_check_bounds::<SbcEncoderSettings>(offset);
11466 self.0.encode(encoder, offset + 0, depth)?;
11470 self.1.encode(encoder, offset + 4, depth)?;
11471 self.2.encode(encoder, offset + 8, depth)?;
11472 self.3.encode(encoder, offset + 12, depth)?;
11473 self.4.encode(encoder, offset + 16, depth)?;
11474 Ok(())
11475 }
11476 }
11477
11478 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcEncoderSettings {
11479 #[inline(always)]
11480 fn new_empty() -> Self {
11481 Self {
11482 sub_bands: fidl::new_empty!(SbcSubBands, D),
11483 allocation: fidl::new_empty!(SbcAllocation, D),
11484 block_count: fidl::new_empty!(SbcBlockCount, D),
11485 channel_mode: fidl::new_empty!(SbcChannelMode, D),
11486 bit_pool: fidl::new_empty!(u64, D),
11487 }
11488 }
11489
11490 #[inline]
11491 unsafe fn decode(
11492 &mut self,
11493 decoder: &mut fidl::encoding::Decoder<'_, D>,
11494 offset: usize,
11495 _depth: fidl::encoding::Depth,
11496 ) -> fidl::Result<()> {
11497 decoder.debug_check_bounds::<Self>(offset);
11498 fidl::decode!(SbcSubBands, D, &mut self.sub_bands, decoder, offset + 0, _depth)?;
11500 fidl::decode!(SbcAllocation, D, &mut self.allocation, decoder, offset + 4, _depth)?;
11501 fidl::decode!(SbcBlockCount, D, &mut self.block_count, decoder, offset + 8, _depth)?;
11502 fidl::decode!(SbcChannelMode, D, &mut self.channel_mode, decoder, offset + 12, _depth)?;
11503 fidl::decode!(u64, D, &mut self.bit_pool, decoder, offset + 16, _depth)?;
11504 Ok(())
11505 }
11506 }
11507
11508 impl fidl::encoding::ValueTypeMarker for StreamBufferSetRemovePayloadBufferRequest {
11509 type Borrowed<'a> = &'a Self;
11510 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11511 value
11512 }
11513 }
11514
11515 unsafe impl fidl::encoding::TypeMarker for StreamBufferSetRemovePayloadBufferRequest {
11516 type Owned = Self;
11517
11518 #[inline(always)]
11519 fn inline_align(_context: fidl::encoding::Context) -> usize {
11520 4
11521 }
11522
11523 #[inline(always)]
11524 fn inline_size(_context: fidl::encoding::Context) -> usize {
11525 4
11526 }
11527 #[inline(always)]
11528 fn encode_is_copy() -> bool {
11529 true
11530 }
11531
11532 #[inline(always)]
11533 fn decode_is_copy() -> bool {
11534 true
11535 }
11536 }
11537
11538 unsafe impl<D: fidl::encoding::ResourceDialect>
11539 fidl::encoding::Encode<StreamBufferSetRemovePayloadBufferRequest, D>
11540 for &StreamBufferSetRemovePayloadBufferRequest
11541 {
11542 #[inline]
11543 unsafe fn encode(
11544 self,
11545 encoder: &mut fidl::encoding::Encoder<'_, D>,
11546 offset: usize,
11547 _depth: fidl::encoding::Depth,
11548 ) -> fidl::Result<()> {
11549 encoder.debug_check_bounds::<StreamBufferSetRemovePayloadBufferRequest>(offset);
11550 unsafe {
11551 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11553 (buf_ptr as *mut StreamBufferSetRemovePayloadBufferRequest).write_unaligned(
11554 (self as *const StreamBufferSetRemovePayloadBufferRequest).read(),
11555 );
11556 }
11559 Ok(())
11560 }
11561 }
11562 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
11563 fidl::encoding::Encode<StreamBufferSetRemovePayloadBufferRequest, D> for (T0,)
11564 {
11565 #[inline]
11566 unsafe fn encode(
11567 self,
11568 encoder: &mut fidl::encoding::Encoder<'_, D>,
11569 offset: usize,
11570 depth: fidl::encoding::Depth,
11571 ) -> fidl::Result<()> {
11572 encoder.debug_check_bounds::<StreamBufferSetRemovePayloadBufferRequest>(offset);
11573 self.0.encode(encoder, offset + 0, depth)?;
11577 Ok(())
11578 }
11579 }
11580
11581 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11582 for StreamBufferSetRemovePayloadBufferRequest
11583 {
11584 #[inline(always)]
11585 fn new_empty() -> Self {
11586 Self { id: fidl::new_empty!(u32, D) }
11587 }
11588
11589 #[inline]
11590 unsafe fn decode(
11591 &mut self,
11592 decoder: &mut fidl::encoding::Decoder<'_, D>,
11593 offset: usize,
11594 _depth: fidl::encoding::Depth,
11595 ) -> fidl::Result<()> {
11596 decoder.debug_check_bounds::<Self>(offset);
11597 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11598 unsafe {
11601 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
11602 }
11603 Ok(())
11604 }
11605 }
11606
11607 impl fidl::encoding::ValueTypeMarker for StreamPacket {
11608 type Borrowed<'a> = &'a Self;
11609 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11610 value
11611 }
11612 }
11613
11614 unsafe impl fidl::encoding::TypeMarker for StreamPacket {
11615 type Owned = Self;
11616
11617 #[inline(always)]
11618 fn inline_align(_context: fidl::encoding::Context) -> usize {
11619 8
11620 }
11621
11622 #[inline(always)]
11623 fn inline_size(_context: fidl::encoding::Context) -> usize {
11624 56
11625 }
11626 }
11627
11628 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamPacket, D>
11629 for &StreamPacket
11630 {
11631 #[inline]
11632 unsafe fn encode(
11633 self,
11634 encoder: &mut fidl::encoding::Encoder<'_, D>,
11635 offset: usize,
11636 _depth: fidl::encoding::Depth,
11637 ) -> fidl::Result<()> {
11638 encoder.debug_check_bounds::<StreamPacket>(offset);
11639 unsafe {
11640 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11642 (buf_ptr as *mut StreamPacket)
11643 .write_unaligned((self as *const StreamPacket).read());
11644 let padding_ptr = buf_ptr.offset(8) as *mut u64;
11647 let padding_mask = 0xffffffff00000000u64;
11648 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
11649 let padding_ptr = buf_ptr.offset(32) as *mut u64;
11650 let padding_mask = 0xffffffff00000000u64;
11651 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
11652 }
11653 Ok(())
11654 }
11655 }
11656 unsafe impl<
11657 D: fidl::encoding::ResourceDialect,
11658 T0: fidl::encoding::Encode<i64, D>,
11659 T1: fidl::encoding::Encode<u32, D>,
11660 T2: fidl::encoding::Encode<u64, D>,
11661 T3: fidl::encoding::Encode<u64, D>,
11662 T4: fidl::encoding::Encode<u32, D>,
11663 T5: fidl::encoding::Encode<u64, D>,
11664 T6: fidl::encoding::Encode<u64, D>,
11665 > fidl::encoding::Encode<StreamPacket, D> for (T0, T1, T2, T3, T4, T5, T6)
11666 {
11667 #[inline]
11668 unsafe fn encode(
11669 self,
11670 encoder: &mut fidl::encoding::Encoder<'_, D>,
11671 offset: usize,
11672 depth: fidl::encoding::Depth,
11673 ) -> fidl::Result<()> {
11674 encoder.debug_check_bounds::<StreamPacket>(offset);
11675 unsafe {
11678 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11679 (ptr as *mut u64).write_unaligned(0);
11680 }
11681 unsafe {
11682 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
11683 (ptr as *mut u64).write_unaligned(0);
11684 }
11685 self.0.encode(encoder, offset + 0, depth)?;
11687 self.1.encode(encoder, offset + 8, depth)?;
11688 self.2.encode(encoder, offset + 16, depth)?;
11689 self.3.encode(encoder, offset + 24, depth)?;
11690 self.4.encode(encoder, offset + 32, depth)?;
11691 self.5.encode(encoder, offset + 40, depth)?;
11692 self.6.encode(encoder, offset + 48, depth)?;
11693 Ok(())
11694 }
11695 }
11696
11697 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamPacket {
11698 #[inline(always)]
11699 fn new_empty() -> Self {
11700 Self {
11701 pts: fidl::new_empty!(i64, D),
11702 payload_buffer_id: fidl::new_empty!(u32, D),
11703 payload_offset: fidl::new_empty!(u64, D),
11704 payload_size: fidl::new_empty!(u64, D),
11705 flags: fidl::new_empty!(u32, D),
11706 buffer_config: fidl::new_empty!(u64, D),
11707 stream_segment_id: fidl::new_empty!(u64, D),
11708 }
11709 }
11710
11711 #[inline]
11712 unsafe fn decode(
11713 &mut self,
11714 decoder: &mut fidl::encoding::Decoder<'_, D>,
11715 offset: usize,
11716 _depth: fidl::encoding::Depth,
11717 ) -> fidl::Result<()> {
11718 decoder.debug_check_bounds::<Self>(offset);
11719 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11720 let ptr = unsafe { buf_ptr.offset(8) };
11722 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11723 let mask = 0xffffffff00000000u64;
11724 let maskedval = padval & mask;
11725 if maskedval != 0 {
11726 return Err(fidl::Error::NonZeroPadding {
11727 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11728 });
11729 }
11730 let ptr = unsafe { buf_ptr.offset(32) };
11731 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11732 let mask = 0xffffffff00000000u64;
11733 let maskedval = padval & mask;
11734 if maskedval != 0 {
11735 return Err(fidl::Error::NonZeroPadding {
11736 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
11737 });
11738 }
11739 unsafe {
11741 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
11742 }
11743 Ok(())
11744 }
11745 }
11746
11747 impl fidl::encoding::ValueTypeMarker for StreamProcessorCloseCurrentStreamRequest {
11748 type Borrowed<'a> = &'a Self;
11749 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11750 value
11751 }
11752 }
11753
11754 unsafe impl fidl::encoding::TypeMarker for StreamProcessorCloseCurrentStreamRequest {
11755 type Owned = Self;
11756
11757 #[inline(always)]
11758 fn inline_align(_context: fidl::encoding::Context) -> usize {
11759 8
11760 }
11761
11762 #[inline(always)]
11763 fn inline_size(_context: fidl::encoding::Context) -> usize {
11764 16
11765 }
11766 }
11767
11768 unsafe impl<D: fidl::encoding::ResourceDialect>
11769 fidl::encoding::Encode<StreamProcessorCloseCurrentStreamRequest, D>
11770 for &StreamProcessorCloseCurrentStreamRequest
11771 {
11772 #[inline]
11773 unsafe fn encode(
11774 self,
11775 encoder: &mut fidl::encoding::Encoder<'_, D>,
11776 offset: usize,
11777 _depth: fidl::encoding::Depth,
11778 ) -> fidl::Result<()> {
11779 encoder.debug_check_bounds::<StreamProcessorCloseCurrentStreamRequest>(offset);
11780 fidl::encoding::Encode::<StreamProcessorCloseCurrentStreamRequest, D>::encode(
11782 (
11783 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
11784 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.release_input_buffers),
11785 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.release_output_buffers),
11786 ),
11787 encoder,
11788 offset,
11789 _depth,
11790 )
11791 }
11792 }
11793 unsafe impl<
11794 D: fidl::encoding::ResourceDialect,
11795 T0: fidl::encoding::Encode<u64, D>,
11796 T1: fidl::encoding::Encode<bool, D>,
11797 T2: fidl::encoding::Encode<bool, D>,
11798 > fidl::encoding::Encode<StreamProcessorCloseCurrentStreamRequest, D> for (T0, T1, T2)
11799 {
11800 #[inline]
11801 unsafe fn encode(
11802 self,
11803 encoder: &mut fidl::encoding::Encoder<'_, D>,
11804 offset: usize,
11805 depth: fidl::encoding::Depth,
11806 ) -> fidl::Result<()> {
11807 encoder.debug_check_bounds::<StreamProcessorCloseCurrentStreamRequest>(offset);
11808 unsafe {
11811 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11812 (ptr as *mut u64).write_unaligned(0);
11813 }
11814 self.0.encode(encoder, offset + 0, depth)?;
11816 self.1.encode(encoder, offset + 8, depth)?;
11817 self.2.encode(encoder, offset + 9, depth)?;
11818 Ok(())
11819 }
11820 }
11821
11822 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11823 for StreamProcessorCloseCurrentStreamRequest
11824 {
11825 #[inline(always)]
11826 fn new_empty() -> Self {
11827 Self {
11828 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
11829 release_input_buffers: fidl::new_empty!(bool, D),
11830 release_output_buffers: fidl::new_empty!(bool, D),
11831 }
11832 }
11833
11834 #[inline]
11835 unsafe fn decode(
11836 &mut self,
11837 decoder: &mut fidl::encoding::Decoder<'_, D>,
11838 offset: usize,
11839 _depth: fidl::encoding::Depth,
11840 ) -> fidl::Result<()> {
11841 decoder.debug_check_bounds::<Self>(offset);
11842 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
11844 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11845 let mask = 0xffffffffffff0000u64;
11846 let maskedval = padval & mask;
11847 if maskedval != 0 {
11848 return Err(fidl::Error::NonZeroPadding {
11849 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11850 });
11851 }
11852 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
11853 fidl::decode!(bool, D, &mut self.release_input_buffers, decoder, offset + 8, _depth)?;
11854 fidl::decode!(bool, D, &mut self.release_output_buffers, decoder, offset + 9, _depth)?;
11855 Ok(())
11856 }
11857 }
11858
11859 impl fidl::encoding::ValueTypeMarker for StreamProcessorCompleteOutputBufferPartialSettingsRequest {
11860 type Borrowed<'a> = &'a Self;
11861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11862 value
11863 }
11864 }
11865
11866 unsafe impl fidl::encoding::TypeMarker
11867 for StreamProcessorCompleteOutputBufferPartialSettingsRequest
11868 {
11869 type Owned = Self;
11870
11871 #[inline(always)]
11872 fn inline_align(_context: fidl::encoding::Context) -> usize {
11873 8
11874 }
11875
11876 #[inline(always)]
11877 fn inline_size(_context: fidl::encoding::Context) -> usize {
11878 8
11879 }
11880 #[inline(always)]
11881 fn encode_is_copy() -> bool {
11882 true
11883 }
11884
11885 #[inline(always)]
11886 fn decode_is_copy() -> bool {
11887 true
11888 }
11889 }
11890
11891 unsafe impl<D: fidl::encoding::ResourceDialect>
11892 fidl::encoding::Encode<StreamProcessorCompleteOutputBufferPartialSettingsRequest, D>
11893 for &StreamProcessorCompleteOutputBufferPartialSettingsRequest
11894 {
11895 #[inline]
11896 unsafe fn encode(
11897 self,
11898 encoder: &mut fidl::encoding::Encoder<'_, D>,
11899 offset: usize,
11900 _depth: fidl::encoding::Depth,
11901 ) -> fidl::Result<()> {
11902 encoder
11903 .debug_check_bounds::<StreamProcessorCompleteOutputBufferPartialSettingsRequest>(
11904 offset,
11905 );
11906 unsafe {
11907 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11909 (buf_ptr as *mut StreamProcessorCompleteOutputBufferPartialSettingsRequest)
11910 .write_unaligned(
11911 (self as *const StreamProcessorCompleteOutputBufferPartialSettingsRequest)
11912 .read(),
11913 );
11914 }
11917 Ok(())
11918 }
11919 }
11920 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
11921 fidl::encoding::Encode<StreamProcessorCompleteOutputBufferPartialSettingsRequest, D>
11922 for (T0,)
11923 {
11924 #[inline]
11925 unsafe fn encode(
11926 self,
11927 encoder: &mut fidl::encoding::Encoder<'_, D>,
11928 offset: usize,
11929 depth: fidl::encoding::Depth,
11930 ) -> fidl::Result<()> {
11931 encoder
11932 .debug_check_bounds::<StreamProcessorCompleteOutputBufferPartialSettingsRequest>(
11933 offset,
11934 );
11935 self.0.encode(encoder, offset + 0, depth)?;
11939 Ok(())
11940 }
11941 }
11942
11943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11944 for StreamProcessorCompleteOutputBufferPartialSettingsRequest
11945 {
11946 #[inline(always)]
11947 fn new_empty() -> Self {
11948 Self { buffer_lifetime_ordinal: fidl::new_empty!(u64, D) }
11949 }
11950
11951 #[inline]
11952 unsafe fn decode(
11953 &mut self,
11954 decoder: &mut fidl::encoding::Decoder<'_, D>,
11955 offset: usize,
11956 _depth: fidl::encoding::Depth,
11957 ) -> fidl::Result<()> {
11958 decoder.debug_check_bounds::<Self>(offset);
11959 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11960 unsafe {
11963 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
11964 }
11965 Ok(())
11966 }
11967 }
11968
11969 impl fidl::encoding::ValueTypeMarker for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
11970 type Borrowed<'a> = &'a Self;
11971 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11972 value
11973 }
11974 }
11975
11976 unsafe impl fidl::encoding::TypeMarker for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
11977 type Owned = Self;
11978
11979 #[inline(always)]
11980 fn inline_align(_context: fidl::encoding::Context) -> usize {
11981 8
11982 }
11983
11984 #[inline(always)]
11985 fn inline_size(_context: fidl::encoding::Context) -> usize {
11986 8
11987 }
11988 #[inline(always)]
11989 fn encode_is_copy() -> bool {
11990 true
11991 }
11992
11993 #[inline(always)]
11994 fn decode_is_copy() -> bool {
11995 true
11996 }
11997 }
11998
11999 unsafe impl<D: fidl::encoding::ResourceDialect>
12000 fidl::encoding::Encode<StreamProcessorFlushEndOfStreamAndCloseStreamRequest, D>
12001 for &StreamProcessorFlushEndOfStreamAndCloseStreamRequest
12002 {
12003 #[inline]
12004 unsafe fn encode(
12005 self,
12006 encoder: &mut fidl::encoding::Encoder<'_, D>,
12007 offset: usize,
12008 _depth: fidl::encoding::Depth,
12009 ) -> fidl::Result<()> {
12010 encoder
12011 .debug_check_bounds::<StreamProcessorFlushEndOfStreamAndCloseStreamRequest>(offset);
12012 unsafe {
12013 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
12015 (buf_ptr as *mut StreamProcessorFlushEndOfStreamAndCloseStreamRequest)
12016 .write_unaligned(
12017 (self as *const StreamProcessorFlushEndOfStreamAndCloseStreamRequest)
12018 .read(),
12019 );
12020 }
12023 Ok(())
12024 }
12025 }
12026 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
12027 fidl::encoding::Encode<StreamProcessorFlushEndOfStreamAndCloseStreamRequest, D> for (T0,)
12028 {
12029 #[inline]
12030 unsafe fn encode(
12031 self,
12032 encoder: &mut fidl::encoding::Encoder<'_, D>,
12033 offset: usize,
12034 depth: fidl::encoding::Depth,
12035 ) -> fidl::Result<()> {
12036 encoder
12037 .debug_check_bounds::<StreamProcessorFlushEndOfStreamAndCloseStreamRequest>(offset);
12038 self.0.encode(encoder, offset + 0, depth)?;
12042 Ok(())
12043 }
12044 }
12045
12046 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12047 for StreamProcessorFlushEndOfStreamAndCloseStreamRequest
12048 {
12049 #[inline(always)]
12050 fn new_empty() -> Self {
12051 Self { stream_lifetime_ordinal: fidl::new_empty!(u64, D) }
12052 }
12053
12054 #[inline]
12055 unsafe fn decode(
12056 &mut self,
12057 decoder: &mut fidl::encoding::Decoder<'_, D>,
12058 offset: usize,
12059 _depth: fidl::encoding::Depth,
12060 ) -> fidl::Result<()> {
12061 decoder.debug_check_bounds::<Self>(offset);
12062 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
12063 unsafe {
12066 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
12067 }
12068 Ok(())
12069 }
12070 }
12071
12072 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnFreeInputPacketRequest {
12073 type Borrowed<'a> = &'a Self;
12074 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12075 value
12076 }
12077 }
12078
12079 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnFreeInputPacketRequest {
12080 type Owned = Self;
12081
12082 #[inline(always)]
12083 fn inline_align(_context: fidl::encoding::Context) -> usize {
12084 8
12085 }
12086
12087 #[inline(always)]
12088 fn inline_size(_context: fidl::encoding::Context) -> usize {
12089 16
12090 }
12091 }
12092
12093 unsafe impl<D: fidl::encoding::ResourceDialect>
12094 fidl::encoding::Encode<StreamProcessorOnFreeInputPacketRequest, D>
12095 for &StreamProcessorOnFreeInputPacketRequest
12096 {
12097 #[inline]
12098 unsafe fn encode(
12099 self,
12100 encoder: &mut fidl::encoding::Encoder<'_, D>,
12101 offset: usize,
12102 _depth: fidl::encoding::Depth,
12103 ) -> fidl::Result<()> {
12104 encoder.debug_check_bounds::<StreamProcessorOnFreeInputPacketRequest>(offset);
12105 fidl::encoding::Encode::<StreamProcessorOnFreeInputPacketRequest, D>::encode(
12107 (<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow(
12108 &self.free_input_packet,
12109 ),),
12110 encoder,
12111 offset,
12112 _depth,
12113 )
12114 }
12115 }
12116 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PacketHeader, D>>
12117 fidl::encoding::Encode<StreamProcessorOnFreeInputPacketRequest, D> for (T0,)
12118 {
12119 #[inline]
12120 unsafe fn encode(
12121 self,
12122 encoder: &mut fidl::encoding::Encoder<'_, D>,
12123 offset: usize,
12124 depth: fidl::encoding::Depth,
12125 ) -> fidl::Result<()> {
12126 encoder.debug_check_bounds::<StreamProcessorOnFreeInputPacketRequest>(offset);
12127 self.0.encode(encoder, offset + 0, depth)?;
12131 Ok(())
12132 }
12133 }
12134
12135 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12136 for StreamProcessorOnFreeInputPacketRequest
12137 {
12138 #[inline(always)]
12139 fn new_empty() -> Self {
12140 Self { free_input_packet: fidl::new_empty!(PacketHeader, D) }
12141 }
12142
12143 #[inline]
12144 unsafe fn decode(
12145 &mut self,
12146 decoder: &mut fidl::encoding::Decoder<'_, D>,
12147 offset: usize,
12148 _depth: fidl::encoding::Depth,
12149 ) -> fidl::Result<()> {
12150 decoder.debug_check_bounds::<Self>(offset);
12151 fidl::decode!(
12153 PacketHeader,
12154 D,
12155 &mut self.free_input_packet,
12156 decoder,
12157 offset + 0,
12158 _depth
12159 )?;
12160 Ok(())
12161 }
12162 }
12163
12164 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnInputConstraintsRequest {
12165 type Borrowed<'a> = &'a Self;
12166 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12167 value
12168 }
12169 }
12170
12171 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnInputConstraintsRequest {
12172 type Owned = Self;
12173
12174 #[inline(always)]
12175 fn inline_align(_context: fidl::encoding::Context) -> usize {
12176 8
12177 }
12178
12179 #[inline(always)]
12180 fn inline_size(_context: fidl::encoding::Context) -> usize {
12181 16
12182 }
12183 }
12184
12185 unsafe impl<D: fidl::encoding::ResourceDialect>
12186 fidl::encoding::Encode<StreamProcessorOnInputConstraintsRequest, D>
12187 for &StreamProcessorOnInputConstraintsRequest
12188 {
12189 #[inline]
12190 unsafe fn encode(
12191 self,
12192 encoder: &mut fidl::encoding::Encoder<'_, D>,
12193 offset: usize,
12194 _depth: fidl::encoding::Depth,
12195 ) -> fidl::Result<()> {
12196 encoder.debug_check_bounds::<StreamProcessorOnInputConstraintsRequest>(offset);
12197 fidl::encoding::Encode::<StreamProcessorOnInputConstraintsRequest, D>::encode(
12199 (<StreamBufferConstraints as fidl::encoding::ValueTypeMarker>::borrow(
12200 &self.input_constraints,
12201 ),),
12202 encoder,
12203 offset,
12204 _depth,
12205 )
12206 }
12207 }
12208 unsafe impl<
12209 D: fidl::encoding::ResourceDialect,
12210 T0: fidl::encoding::Encode<StreamBufferConstraints, D>,
12211 > fidl::encoding::Encode<StreamProcessorOnInputConstraintsRequest, D> for (T0,)
12212 {
12213 #[inline]
12214 unsafe fn encode(
12215 self,
12216 encoder: &mut fidl::encoding::Encoder<'_, D>,
12217 offset: usize,
12218 depth: fidl::encoding::Depth,
12219 ) -> fidl::Result<()> {
12220 encoder.debug_check_bounds::<StreamProcessorOnInputConstraintsRequest>(offset);
12221 self.0.encode(encoder, offset + 0, depth)?;
12225 Ok(())
12226 }
12227 }
12228
12229 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12230 for StreamProcessorOnInputConstraintsRequest
12231 {
12232 #[inline(always)]
12233 fn new_empty() -> Self {
12234 Self { input_constraints: fidl::new_empty!(StreamBufferConstraints, D) }
12235 }
12236
12237 #[inline]
12238 unsafe fn decode(
12239 &mut self,
12240 decoder: &mut fidl::encoding::Decoder<'_, D>,
12241 offset: usize,
12242 _depth: fidl::encoding::Depth,
12243 ) -> fidl::Result<()> {
12244 decoder.debug_check_bounds::<Self>(offset);
12245 fidl::decode!(
12247 StreamBufferConstraints,
12248 D,
12249 &mut self.input_constraints,
12250 decoder,
12251 offset + 0,
12252 _depth
12253 )?;
12254 Ok(())
12255 }
12256 }
12257
12258 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputConstraintsRequest {
12259 type Borrowed<'a> = &'a Self;
12260 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12261 value
12262 }
12263 }
12264
12265 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputConstraintsRequest {
12266 type Owned = Self;
12267
12268 #[inline(always)]
12269 fn inline_align(_context: fidl::encoding::Context) -> usize {
12270 8
12271 }
12272
12273 #[inline(always)]
12274 fn inline_size(_context: fidl::encoding::Context) -> usize {
12275 16
12276 }
12277 }
12278
12279 unsafe impl<D: fidl::encoding::ResourceDialect>
12280 fidl::encoding::Encode<StreamProcessorOnOutputConstraintsRequest, D>
12281 for &StreamProcessorOnOutputConstraintsRequest
12282 {
12283 #[inline]
12284 unsafe fn encode(
12285 self,
12286 encoder: &mut fidl::encoding::Encoder<'_, D>,
12287 offset: usize,
12288 _depth: fidl::encoding::Depth,
12289 ) -> fidl::Result<()> {
12290 encoder.debug_check_bounds::<StreamProcessorOnOutputConstraintsRequest>(offset);
12291 fidl::encoding::Encode::<StreamProcessorOnOutputConstraintsRequest, D>::encode(
12293 (<StreamOutputConstraints as fidl::encoding::ValueTypeMarker>::borrow(
12294 &self.output_config,
12295 ),),
12296 encoder,
12297 offset,
12298 _depth,
12299 )
12300 }
12301 }
12302 unsafe impl<
12303 D: fidl::encoding::ResourceDialect,
12304 T0: fidl::encoding::Encode<StreamOutputConstraints, D>,
12305 > fidl::encoding::Encode<StreamProcessorOnOutputConstraintsRequest, D> for (T0,)
12306 {
12307 #[inline]
12308 unsafe fn encode(
12309 self,
12310 encoder: &mut fidl::encoding::Encoder<'_, D>,
12311 offset: usize,
12312 depth: fidl::encoding::Depth,
12313 ) -> fidl::Result<()> {
12314 encoder.debug_check_bounds::<StreamProcessorOnOutputConstraintsRequest>(offset);
12315 self.0.encode(encoder, offset + 0, depth)?;
12319 Ok(())
12320 }
12321 }
12322
12323 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12324 for StreamProcessorOnOutputConstraintsRequest
12325 {
12326 #[inline(always)]
12327 fn new_empty() -> Self {
12328 Self { output_config: fidl::new_empty!(StreamOutputConstraints, D) }
12329 }
12330
12331 #[inline]
12332 unsafe fn decode(
12333 &mut self,
12334 decoder: &mut fidl::encoding::Decoder<'_, D>,
12335 offset: usize,
12336 _depth: fidl::encoding::Depth,
12337 ) -> fidl::Result<()> {
12338 decoder.debug_check_bounds::<Self>(offset);
12339 fidl::decode!(
12341 StreamOutputConstraints,
12342 D,
12343 &mut self.output_config,
12344 decoder,
12345 offset + 0,
12346 _depth
12347 )?;
12348 Ok(())
12349 }
12350 }
12351
12352 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputEndOfStreamRequest {
12353 type Borrowed<'a> = &'a Self;
12354 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12355 value
12356 }
12357 }
12358
12359 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputEndOfStreamRequest {
12360 type Owned = Self;
12361
12362 #[inline(always)]
12363 fn inline_align(_context: fidl::encoding::Context) -> usize {
12364 8
12365 }
12366
12367 #[inline(always)]
12368 fn inline_size(_context: fidl::encoding::Context) -> usize {
12369 16
12370 }
12371 }
12372
12373 unsafe impl<D: fidl::encoding::ResourceDialect>
12374 fidl::encoding::Encode<StreamProcessorOnOutputEndOfStreamRequest, D>
12375 for &StreamProcessorOnOutputEndOfStreamRequest
12376 {
12377 #[inline]
12378 unsafe fn encode(
12379 self,
12380 encoder: &mut fidl::encoding::Encoder<'_, D>,
12381 offset: usize,
12382 _depth: fidl::encoding::Depth,
12383 ) -> fidl::Result<()> {
12384 encoder.debug_check_bounds::<StreamProcessorOnOutputEndOfStreamRequest>(offset);
12385 fidl::encoding::Encode::<StreamProcessorOnOutputEndOfStreamRequest, D>::encode(
12387 (
12388 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12389 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_before),
12390 ),
12391 encoder,
12392 offset,
12393 _depth,
12394 )
12395 }
12396 }
12397 unsafe impl<
12398 D: fidl::encoding::ResourceDialect,
12399 T0: fidl::encoding::Encode<u64, D>,
12400 T1: fidl::encoding::Encode<bool, D>,
12401 > fidl::encoding::Encode<StreamProcessorOnOutputEndOfStreamRequest, D> for (T0, T1)
12402 {
12403 #[inline]
12404 unsafe fn encode(
12405 self,
12406 encoder: &mut fidl::encoding::Encoder<'_, D>,
12407 offset: usize,
12408 depth: fidl::encoding::Depth,
12409 ) -> fidl::Result<()> {
12410 encoder.debug_check_bounds::<StreamProcessorOnOutputEndOfStreamRequest>(offset);
12411 unsafe {
12414 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
12415 (ptr as *mut u64).write_unaligned(0);
12416 }
12417 self.0.encode(encoder, offset + 0, depth)?;
12419 self.1.encode(encoder, offset + 8, depth)?;
12420 Ok(())
12421 }
12422 }
12423
12424 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12425 for StreamProcessorOnOutputEndOfStreamRequest
12426 {
12427 #[inline(always)]
12428 fn new_empty() -> Self {
12429 Self {
12430 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12431 error_detected_before: fidl::new_empty!(bool, D),
12432 }
12433 }
12434
12435 #[inline]
12436 unsafe fn decode(
12437 &mut self,
12438 decoder: &mut fidl::encoding::Decoder<'_, D>,
12439 offset: usize,
12440 _depth: fidl::encoding::Depth,
12441 ) -> fidl::Result<()> {
12442 decoder.debug_check_bounds::<Self>(offset);
12443 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
12445 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12446 let mask = 0xffffffffffffff00u64;
12447 let maskedval = padval & mask;
12448 if maskedval != 0 {
12449 return Err(fidl::Error::NonZeroPadding {
12450 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
12451 });
12452 }
12453 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12454 fidl::decode!(bool, D, &mut self.error_detected_before, decoder, offset + 8, _depth)?;
12455 Ok(())
12456 }
12457 }
12458
12459 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputFormatRequest {
12460 type Borrowed<'a> = &'a Self;
12461 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12462 value
12463 }
12464 }
12465
12466 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputFormatRequest {
12467 type Owned = Self;
12468
12469 #[inline(always)]
12470 fn inline_align(_context: fidl::encoding::Context) -> usize {
12471 8
12472 }
12473
12474 #[inline(always)]
12475 fn inline_size(_context: fidl::encoding::Context) -> usize {
12476 16
12477 }
12478 }
12479
12480 unsafe impl<D: fidl::encoding::ResourceDialect>
12481 fidl::encoding::Encode<StreamProcessorOnOutputFormatRequest, D>
12482 for &StreamProcessorOnOutputFormatRequest
12483 {
12484 #[inline]
12485 unsafe fn encode(
12486 self,
12487 encoder: &mut fidl::encoding::Encoder<'_, D>,
12488 offset: usize,
12489 _depth: fidl::encoding::Depth,
12490 ) -> fidl::Result<()> {
12491 encoder.debug_check_bounds::<StreamProcessorOnOutputFormatRequest>(offset);
12492 fidl::encoding::Encode::<StreamProcessorOnOutputFormatRequest, D>::encode(
12494 (<StreamOutputFormat as fidl::encoding::ValueTypeMarker>::borrow(
12495 &self.output_format,
12496 ),),
12497 encoder,
12498 offset,
12499 _depth,
12500 )
12501 }
12502 }
12503 unsafe impl<
12504 D: fidl::encoding::ResourceDialect,
12505 T0: fidl::encoding::Encode<StreamOutputFormat, D>,
12506 > fidl::encoding::Encode<StreamProcessorOnOutputFormatRequest, D> for (T0,)
12507 {
12508 #[inline]
12509 unsafe fn encode(
12510 self,
12511 encoder: &mut fidl::encoding::Encoder<'_, D>,
12512 offset: usize,
12513 depth: fidl::encoding::Depth,
12514 ) -> fidl::Result<()> {
12515 encoder.debug_check_bounds::<StreamProcessorOnOutputFormatRequest>(offset);
12516 self.0.encode(encoder, offset + 0, depth)?;
12520 Ok(())
12521 }
12522 }
12523
12524 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12525 for StreamProcessorOnOutputFormatRequest
12526 {
12527 #[inline(always)]
12528 fn new_empty() -> Self {
12529 Self { output_format: fidl::new_empty!(StreamOutputFormat, D) }
12530 }
12531
12532 #[inline]
12533 unsafe fn decode(
12534 &mut self,
12535 decoder: &mut fidl::encoding::Decoder<'_, D>,
12536 offset: usize,
12537 _depth: fidl::encoding::Depth,
12538 ) -> fidl::Result<()> {
12539 decoder.debug_check_bounds::<Self>(offset);
12540 fidl::decode!(
12542 StreamOutputFormat,
12543 D,
12544 &mut self.output_format,
12545 decoder,
12546 offset + 0,
12547 _depth
12548 )?;
12549 Ok(())
12550 }
12551 }
12552
12553 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputPacketRequest {
12554 type Borrowed<'a> = &'a Self;
12555 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12556 value
12557 }
12558 }
12559
12560 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputPacketRequest {
12561 type Owned = Self;
12562
12563 #[inline(always)]
12564 fn inline_align(_context: fidl::encoding::Context) -> usize {
12565 8
12566 }
12567
12568 #[inline(always)]
12569 fn inline_size(_context: fidl::encoding::Context) -> usize {
12570 24
12571 }
12572 }
12573
12574 unsafe impl<D: fidl::encoding::ResourceDialect>
12575 fidl::encoding::Encode<StreamProcessorOnOutputPacketRequest, D>
12576 for &StreamProcessorOnOutputPacketRequest
12577 {
12578 #[inline]
12579 unsafe fn encode(
12580 self,
12581 encoder: &mut fidl::encoding::Encoder<'_, D>,
12582 offset: usize,
12583 _depth: fidl::encoding::Depth,
12584 ) -> fidl::Result<()> {
12585 encoder.debug_check_bounds::<StreamProcessorOnOutputPacketRequest>(offset);
12586 fidl::encoding::Encode::<StreamProcessorOnOutputPacketRequest, D>::encode(
12588 (
12589 <Packet as fidl::encoding::ValueTypeMarker>::borrow(&self.output_packet),
12590 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_before),
12591 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_during),
12592 ),
12593 encoder,
12594 offset,
12595 _depth,
12596 )
12597 }
12598 }
12599 unsafe impl<
12600 D: fidl::encoding::ResourceDialect,
12601 T0: fidl::encoding::Encode<Packet, D>,
12602 T1: fidl::encoding::Encode<bool, D>,
12603 T2: fidl::encoding::Encode<bool, D>,
12604 > fidl::encoding::Encode<StreamProcessorOnOutputPacketRequest, D> for (T0, T1, T2)
12605 {
12606 #[inline]
12607 unsafe fn encode(
12608 self,
12609 encoder: &mut fidl::encoding::Encoder<'_, D>,
12610 offset: usize,
12611 depth: fidl::encoding::Depth,
12612 ) -> fidl::Result<()> {
12613 encoder.debug_check_bounds::<StreamProcessorOnOutputPacketRequest>(offset);
12614 unsafe {
12617 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
12618 (ptr as *mut u64).write_unaligned(0);
12619 }
12620 self.0.encode(encoder, offset + 0, depth)?;
12622 self.1.encode(encoder, offset + 16, depth)?;
12623 self.2.encode(encoder, offset + 17, depth)?;
12624 Ok(())
12625 }
12626 }
12627
12628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12629 for StreamProcessorOnOutputPacketRequest
12630 {
12631 #[inline(always)]
12632 fn new_empty() -> Self {
12633 Self {
12634 output_packet: fidl::new_empty!(Packet, D),
12635 error_detected_before: fidl::new_empty!(bool, D),
12636 error_detected_during: fidl::new_empty!(bool, D),
12637 }
12638 }
12639
12640 #[inline]
12641 unsafe fn decode(
12642 &mut self,
12643 decoder: &mut fidl::encoding::Decoder<'_, D>,
12644 offset: usize,
12645 _depth: fidl::encoding::Depth,
12646 ) -> fidl::Result<()> {
12647 decoder.debug_check_bounds::<Self>(offset);
12648 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
12650 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12651 let mask = 0xffffffffffff0000u64;
12652 let maskedval = padval & mask;
12653 if maskedval != 0 {
12654 return Err(fidl::Error::NonZeroPadding {
12655 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
12656 });
12657 }
12658 fidl::decode!(Packet, D, &mut self.output_packet, decoder, offset + 0, _depth)?;
12659 fidl::decode!(bool, D, &mut self.error_detected_before, decoder, offset + 16, _depth)?;
12660 fidl::decode!(bool, D, &mut self.error_detected_during, decoder, offset + 17, _depth)?;
12661 Ok(())
12662 }
12663 }
12664
12665 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnStreamFailedRequest {
12666 type Borrowed<'a> = &'a Self;
12667 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12668 value
12669 }
12670 }
12671
12672 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnStreamFailedRequest {
12673 type Owned = Self;
12674
12675 #[inline(always)]
12676 fn inline_align(_context: fidl::encoding::Context) -> usize {
12677 8
12678 }
12679
12680 #[inline(always)]
12681 fn inline_size(_context: fidl::encoding::Context) -> usize {
12682 16
12683 }
12684 }
12685
12686 unsafe impl<D: fidl::encoding::ResourceDialect>
12687 fidl::encoding::Encode<StreamProcessorOnStreamFailedRequest, D>
12688 for &StreamProcessorOnStreamFailedRequest
12689 {
12690 #[inline]
12691 unsafe fn encode(
12692 self,
12693 encoder: &mut fidl::encoding::Encoder<'_, D>,
12694 offset: usize,
12695 _depth: fidl::encoding::Depth,
12696 ) -> fidl::Result<()> {
12697 encoder.debug_check_bounds::<StreamProcessorOnStreamFailedRequest>(offset);
12698 fidl::encoding::Encode::<StreamProcessorOnStreamFailedRequest, D>::encode(
12700 (
12701 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12702 <StreamError as fidl::encoding::ValueTypeMarker>::borrow(&self.error),
12703 ),
12704 encoder,
12705 offset,
12706 _depth,
12707 )
12708 }
12709 }
12710 unsafe impl<
12711 D: fidl::encoding::ResourceDialect,
12712 T0: fidl::encoding::Encode<u64, D>,
12713 T1: fidl::encoding::Encode<StreamError, D>,
12714 > fidl::encoding::Encode<StreamProcessorOnStreamFailedRequest, D> for (T0, T1)
12715 {
12716 #[inline]
12717 unsafe fn encode(
12718 self,
12719 encoder: &mut fidl::encoding::Encoder<'_, D>,
12720 offset: usize,
12721 depth: fidl::encoding::Depth,
12722 ) -> fidl::Result<()> {
12723 encoder.debug_check_bounds::<StreamProcessorOnStreamFailedRequest>(offset);
12724 unsafe {
12727 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
12728 (ptr as *mut u64).write_unaligned(0);
12729 }
12730 self.0.encode(encoder, offset + 0, depth)?;
12732 self.1.encode(encoder, offset + 8, depth)?;
12733 Ok(())
12734 }
12735 }
12736
12737 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12738 for StreamProcessorOnStreamFailedRequest
12739 {
12740 #[inline(always)]
12741 fn new_empty() -> Self {
12742 Self {
12743 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12744 error: fidl::new_empty!(StreamError, D),
12745 }
12746 }
12747
12748 #[inline]
12749 unsafe fn decode(
12750 &mut self,
12751 decoder: &mut fidl::encoding::Decoder<'_, D>,
12752 offset: usize,
12753 _depth: fidl::encoding::Depth,
12754 ) -> fidl::Result<()> {
12755 decoder.debug_check_bounds::<Self>(offset);
12756 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
12758 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12759 let mask = 0xffffffff00000000u64;
12760 let maskedval = padval & mask;
12761 if maskedval != 0 {
12762 return Err(fidl::Error::NonZeroPadding {
12763 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
12764 });
12765 }
12766 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12767 fidl::decode!(StreamError, D, &mut self.error, decoder, offset + 8, _depth)?;
12768 Ok(())
12769 }
12770 }
12771
12772 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputEndOfStreamRequest {
12773 type Borrowed<'a> = &'a Self;
12774 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12775 value
12776 }
12777 }
12778
12779 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputEndOfStreamRequest {
12780 type Owned = Self;
12781
12782 #[inline(always)]
12783 fn inline_align(_context: fidl::encoding::Context) -> usize {
12784 8
12785 }
12786
12787 #[inline(always)]
12788 fn inline_size(_context: fidl::encoding::Context) -> usize {
12789 8
12790 }
12791 #[inline(always)]
12792 fn encode_is_copy() -> bool {
12793 true
12794 }
12795
12796 #[inline(always)]
12797 fn decode_is_copy() -> bool {
12798 true
12799 }
12800 }
12801
12802 unsafe impl<D: fidl::encoding::ResourceDialect>
12803 fidl::encoding::Encode<StreamProcessorQueueInputEndOfStreamRequest, D>
12804 for &StreamProcessorQueueInputEndOfStreamRequest
12805 {
12806 #[inline]
12807 unsafe fn encode(
12808 self,
12809 encoder: &mut fidl::encoding::Encoder<'_, D>,
12810 offset: usize,
12811 _depth: fidl::encoding::Depth,
12812 ) -> fidl::Result<()> {
12813 encoder.debug_check_bounds::<StreamProcessorQueueInputEndOfStreamRequest>(offset);
12814 unsafe {
12815 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
12817 (buf_ptr as *mut StreamProcessorQueueInputEndOfStreamRequest).write_unaligned(
12818 (self as *const StreamProcessorQueueInputEndOfStreamRequest).read(),
12819 );
12820 }
12823 Ok(())
12824 }
12825 }
12826 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
12827 fidl::encoding::Encode<StreamProcessorQueueInputEndOfStreamRequest, D> for (T0,)
12828 {
12829 #[inline]
12830 unsafe fn encode(
12831 self,
12832 encoder: &mut fidl::encoding::Encoder<'_, D>,
12833 offset: usize,
12834 depth: fidl::encoding::Depth,
12835 ) -> fidl::Result<()> {
12836 encoder.debug_check_bounds::<StreamProcessorQueueInputEndOfStreamRequest>(offset);
12837 self.0.encode(encoder, offset + 0, depth)?;
12841 Ok(())
12842 }
12843 }
12844
12845 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12846 for StreamProcessorQueueInputEndOfStreamRequest
12847 {
12848 #[inline(always)]
12849 fn new_empty() -> Self {
12850 Self { stream_lifetime_ordinal: fidl::new_empty!(u64, D) }
12851 }
12852
12853 #[inline]
12854 unsafe fn decode(
12855 &mut self,
12856 decoder: &mut fidl::encoding::Decoder<'_, D>,
12857 offset: usize,
12858 _depth: fidl::encoding::Depth,
12859 ) -> fidl::Result<()> {
12860 decoder.debug_check_bounds::<Self>(offset);
12861 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
12862 unsafe {
12865 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
12866 }
12867 Ok(())
12868 }
12869 }
12870
12871 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputFormatDetailsRequest {
12872 type Borrowed<'a> = &'a Self;
12873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12874 value
12875 }
12876 }
12877
12878 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputFormatDetailsRequest {
12879 type Owned = Self;
12880
12881 #[inline(always)]
12882 fn inline_align(_context: fidl::encoding::Context) -> usize {
12883 8
12884 }
12885
12886 #[inline(always)]
12887 fn inline_size(_context: fidl::encoding::Context) -> usize {
12888 24
12889 }
12890 }
12891
12892 unsafe impl<D: fidl::encoding::ResourceDialect>
12893 fidl::encoding::Encode<StreamProcessorQueueInputFormatDetailsRequest, D>
12894 for &StreamProcessorQueueInputFormatDetailsRequest
12895 {
12896 #[inline]
12897 unsafe fn encode(
12898 self,
12899 encoder: &mut fidl::encoding::Encoder<'_, D>,
12900 offset: usize,
12901 _depth: fidl::encoding::Depth,
12902 ) -> fidl::Result<()> {
12903 encoder.debug_check_bounds::<StreamProcessorQueueInputFormatDetailsRequest>(offset);
12904 fidl::encoding::Encode::<StreamProcessorQueueInputFormatDetailsRequest, D>::encode(
12906 (
12907 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12908 <FormatDetails as fidl::encoding::ValueTypeMarker>::borrow(
12909 &self.format_details,
12910 ),
12911 ),
12912 encoder,
12913 offset,
12914 _depth,
12915 )
12916 }
12917 }
12918 unsafe impl<
12919 D: fidl::encoding::ResourceDialect,
12920 T0: fidl::encoding::Encode<u64, D>,
12921 T1: fidl::encoding::Encode<FormatDetails, D>,
12922 > fidl::encoding::Encode<StreamProcessorQueueInputFormatDetailsRequest, D> for (T0, T1)
12923 {
12924 #[inline]
12925 unsafe fn encode(
12926 self,
12927 encoder: &mut fidl::encoding::Encoder<'_, D>,
12928 offset: usize,
12929 depth: fidl::encoding::Depth,
12930 ) -> fidl::Result<()> {
12931 encoder.debug_check_bounds::<StreamProcessorQueueInputFormatDetailsRequest>(offset);
12932 self.0.encode(encoder, offset + 0, depth)?;
12936 self.1.encode(encoder, offset + 8, depth)?;
12937 Ok(())
12938 }
12939 }
12940
12941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12942 for StreamProcessorQueueInputFormatDetailsRequest
12943 {
12944 #[inline(always)]
12945 fn new_empty() -> Self {
12946 Self {
12947 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12948 format_details: fidl::new_empty!(FormatDetails, D),
12949 }
12950 }
12951
12952 #[inline]
12953 unsafe fn decode(
12954 &mut self,
12955 decoder: &mut fidl::encoding::Decoder<'_, D>,
12956 offset: usize,
12957 _depth: fidl::encoding::Depth,
12958 ) -> fidl::Result<()> {
12959 decoder.debug_check_bounds::<Self>(offset);
12960 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12962 fidl::decode!(FormatDetails, D, &mut self.format_details, decoder, offset + 8, _depth)?;
12963 Ok(())
12964 }
12965 }
12966
12967 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputPacketRequest {
12968 type Borrowed<'a> = &'a Self;
12969 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12970 value
12971 }
12972 }
12973
12974 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputPacketRequest {
12975 type Owned = Self;
12976
12977 #[inline(always)]
12978 fn inline_align(_context: fidl::encoding::Context) -> usize {
12979 8
12980 }
12981
12982 #[inline(always)]
12983 fn inline_size(_context: fidl::encoding::Context) -> usize {
12984 16
12985 }
12986 }
12987
12988 unsafe impl<D: fidl::encoding::ResourceDialect>
12989 fidl::encoding::Encode<StreamProcessorQueueInputPacketRequest, D>
12990 for &StreamProcessorQueueInputPacketRequest
12991 {
12992 #[inline]
12993 unsafe fn encode(
12994 self,
12995 encoder: &mut fidl::encoding::Encoder<'_, D>,
12996 offset: usize,
12997 _depth: fidl::encoding::Depth,
12998 ) -> fidl::Result<()> {
12999 encoder.debug_check_bounds::<StreamProcessorQueueInputPacketRequest>(offset);
13000 fidl::encoding::Encode::<StreamProcessorQueueInputPacketRequest, D>::encode(
13002 (<Packet as fidl::encoding::ValueTypeMarker>::borrow(&self.packet),),
13003 encoder,
13004 offset,
13005 _depth,
13006 )
13007 }
13008 }
13009 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Packet, D>>
13010 fidl::encoding::Encode<StreamProcessorQueueInputPacketRequest, D> for (T0,)
13011 {
13012 #[inline]
13013 unsafe fn encode(
13014 self,
13015 encoder: &mut fidl::encoding::Encoder<'_, D>,
13016 offset: usize,
13017 depth: fidl::encoding::Depth,
13018 ) -> fidl::Result<()> {
13019 encoder.debug_check_bounds::<StreamProcessorQueueInputPacketRequest>(offset);
13020 self.0.encode(encoder, offset + 0, depth)?;
13024 Ok(())
13025 }
13026 }
13027
13028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13029 for StreamProcessorQueueInputPacketRequest
13030 {
13031 #[inline(always)]
13032 fn new_empty() -> Self {
13033 Self { packet: fidl::new_empty!(Packet, D) }
13034 }
13035
13036 #[inline]
13037 unsafe fn decode(
13038 &mut self,
13039 decoder: &mut fidl::encoding::Decoder<'_, D>,
13040 offset: usize,
13041 _depth: fidl::encoding::Depth,
13042 ) -> fidl::Result<()> {
13043 decoder.debug_check_bounds::<Self>(offset);
13044 fidl::decode!(Packet, D, &mut self.packet, decoder, offset + 0, _depth)?;
13046 Ok(())
13047 }
13048 }
13049
13050 impl fidl::encoding::ValueTypeMarker for StreamProcessorRecycleOutputPacketRequest {
13051 type Borrowed<'a> = &'a Self;
13052 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13053 value
13054 }
13055 }
13056
13057 unsafe impl fidl::encoding::TypeMarker for StreamProcessorRecycleOutputPacketRequest {
13058 type Owned = Self;
13059
13060 #[inline(always)]
13061 fn inline_align(_context: fidl::encoding::Context) -> usize {
13062 8
13063 }
13064
13065 #[inline(always)]
13066 fn inline_size(_context: fidl::encoding::Context) -> usize {
13067 16
13068 }
13069 }
13070
13071 unsafe impl<D: fidl::encoding::ResourceDialect>
13072 fidl::encoding::Encode<StreamProcessorRecycleOutputPacketRequest, D>
13073 for &StreamProcessorRecycleOutputPacketRequest
13074 {
13075 #[inline]
13076 unsafe fn encode(
13077 self,
13078 encoder: &mut fidl::encoding::Encoder<'_, D>,
13079 offset: usize,
13080 _depth: fidl::encoding::Depth,
13081 ) -> fidl::Result<()> {
13082 encoder.debug_check_bounds::<StreamProcessorRecycleOutputPacketRequest>(offset);
13083 fidl::encoding::Encode::<StreamProcessorRecycleOutputPacketRequest, D>::encode(
13085 (<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow(
13086 &self.available_output_packet,
13087 ),),
13088 encoder,
13089 offset,
13090 _depth,
13091 )
13092 }
13093 }
13094 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PacketHeader, D>>
13095 fidl::encoding::Encode<StreamProcessorRecycleOutputPacketRequest, D> for (T0,)
13096 {
13097 #[inline]
13098 unsafe fn encode(
13099 self,
13100 encoder: &mut fidl::encoding::Encoder<'_, D>,
13101 offset: usize,
13102 depth: fidl::encoding::Depth,
13103 ) -> fidl::Result<()> {
13104 encoder.debug_check_bounds::<StreamProcessorRecycleOutputPacketRequest>(offset);
13105 self.0.encode(encoder, offset + 0, depth)?;
13109 Ok(())
13110 }
13111 }
13112
13113 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13114 for StreamProcessorRecycleOutputPacketRequest
13115 {
13116 #[inline(always)]
13117 fn new_empty() -> Self {
13118 Self { available_output_packet: fidl::new_empty!(PacketHeader, D) }
13119 }
13120
13121 #[inline]
13122 unsafe fn decode(
13123 &mut self,
13124 decoder: &mut fidl::encoding::Decoder<'_, D>,
13125 offset: usize,
13126 _depth: fidl::encoding::Depth,
13127 ) -> fidl::Result<()> {
13128 decoder.debug_check_bounds::<Self>(offset);
13129 fidl::decode!(
13131 PacketHeader,
13132 D,
13133 &mut self.available_output_packet,
13134 decoder,
13135 offset + 0,
13136 _depth
13137 )?;
13138 Ok(())
13139 }
13140 }
13141
13142 impl fidl::encoding::ValueTypeMarker for StreamSinkSendPacketNoReplyRequest {
13143 type Borrowed<'a> = &'a Self;
13144 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13145 value
13146 }
13147 }
13148
13149 unsafe impl fidl::encoding::TypeMarker for StreamSinkSendPacketNoReplyRequest {
13150 type Owned = Self;
13151
13152 #[inline(always)]
13153 fn inline_align(_context: fidl::encoding::Context) -> usize {
13154 8
13155 }
13156
13157 #[inline(always)]
13158 fn inline_size(_context: fidl::encoding::Context) -> usize {
13159 56
13160 }
13161 }
13162
13163 unsafe impl<D: fidl::encoding::ResourceDialect>
13164 fidl::encoding::Encode<StreamSinkSendPacketNoReplyRequest, D>
13165 for &StreamSinkSendPacketNoReplyRequest
13166 {
13167 #[inline]
13168 unsafe fn encode(
13169 self,
13170 encoder: &mut fidl::encoding::Encoder<'_, D>,
13171 offset: usize,
13172 _depth: fidl::encoding::Depth,
13173 ) -> fidl::Result<()> {
13174 encoder.debug_check_bounds::<StreamSinkSendPacketNoReplyRequest>(offset);
13175 unsafe {
13176 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13178 (buf_ptr as *mut StreamSinkSendPacketNoReplyRequest)
13179 .write_unaligned((self as *const StreamSinkSendPacketNoReplyRequest).read());
13180 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13183 let padding_mask = 0xffffffff00000000u64;
13184 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13185 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13186 let padding_mask = 0xffffffff00000000u64;
13187 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13188 }
13189 Ok(())
13190 }
13191 }
13192 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13193 fidl::encoding::Encode<StreamSinkSendPacketNoReplyRequest, D> for (T0,)
13194 {
13195 #[inline]
13196 unsafe fn encode(
13197 self,
13198 encoder: &mut fidl::encoding::Encoder<'_, D>,
13199 offset: usize,
13200 depth: fidl::encoding::Depth,
13201 ) -> fidl::Result<()> {
13202 encoder.debug_check_bounds::<StreamSinkSendPacketNoReplyRequest>(offset);
13203 self.0.encode(encoder, offset + 0, depth)?;
13207 Ok(())
13208 }
13209 }
13210
13211 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13212 for StreamSinkSendPacketNoReplyRequest
13213 {
13214 #[inline(always)]
13215 fn new_empty() -> Self {
13216 Self { packet: fidl::new_empty!(StreamPacket, D) }
13217 }
13218
13219 #[inline]
13220 unsafe fn decode(
13221 &mut self,
13222 decoder: &mut fidl::encoding::Decoder<'_, D>,
13223 offset: usize,
13224 _depth: fidl::encoding::Depth,
13225 ) -> fidl::Result<()> {
13226 decoder.debug_check_bounds::<Self>(offset);
13227 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13228 let ptr = unsafe { buf_ptr.offset(8) };
13230 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13231 let mask = 0xffffffff00000000u64;
13232 let maskedval = padval & mask;
13233 if maskedval != 0 {
13234 return Err(fidl::Error::NonZeroPadding {
13235 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13236 });
13237 }
13238 let ptr = unsafe { buf_ptr.offset(32) };
13239 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13240 let mask = 0xffffffff00000000u64;
13241 let maskedval = padval & mask;
13242 if maskedval != 0 {
13243 return Err(fidl::Error::NonZeroPadding {
13244 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13245 });
13246 }
13247 unsafe {
13249 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13250 }
13251 Ok(())
13252 }
13253 }
13254
13255 impl fidl::encoding::ValueTypeMarker for StreamSinkSendPacketRequest {
13256 type Borrowed<'a> = &'a Self;
13257 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13258 value
13259 }
13260 }
13261
13262 unsafe impl fidl::encoding::TypeMarker for StreamSinkSendPacketRequest {
13263 type Owned = Self;
13264
13265 #[inline(always)]
13266 fn inline_align(_context: fidl::encoding::Context) -> usize {
13267 8
13268 }
13269
13270 #[inline(always)]
13271 fn inline_size(_context: fidl::encoding::Context) -> usize {
13272 56
13273 }
13274 }
13275
13276 unsafe impl<D: fidl::encoding::ResourceDialect>
13277 fidl::encoding::Encode<StreamSinkSendPacketRequest, D> for &StreamSinkSendPacketRequest
13278 {
13279 #[inline]
13280 unsafe fn encode(
13281 self,
13282 encoder: &mut fidl::encoding::Encoder<'_, D>,
13283 offset: usize,
13284 _depth: fidl::encoding::Depth,
13285 ) -> fidl::Result<()> {
13286 encoder.debug_check_bounds::<StreamSinkSendPacketRequest>(offset);
13287 unsafe {
13288 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13290 (buf_ptr as *mut StreamSinkSendPacketRequest)
13291 .write_unaligned((self as *const StreamSinkSendPacketRequest).read());
13292 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13295 let padding_mask = 0xffffffff00000000u64;
13296 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13297 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13298 let padding_mask = 0xffffffff00000000u64;
13299 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13300 }
13301 Ok(())
13302 }
13303 }
13304 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13305 fidl::encoding::Encode<StreamSinkSendPacketRequest, D> for (T0,)
13306 {
13307 #[inline]
13308 unsafe fn encode(
13309 self,
13310 encoder: &mut fidl::encoding::Encoder<'_, D>,
13311 offset: usize,
13312 depth: fidl::encoding::Depth,
13313 ) -> fidl::Result<()> {
13314 encoder.debug_check_bounds::<StreamSinkSendPacketRequest>(offset);
13315 self.0.encode(encoder, offset + 0, depth)?;
13319 Ok(())
13320 }
13321 }
13322
13323 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13324 for StreamSinkSendPacketRequest
13325 {
13326 #[inline(always)]
13327 fn new_empty() -> Self {
13328 Self { packet: fidl::new_empty!(StreamPacket, D) }
13329 }
13330
13331 #[inline]
13332 unsafe fn decode(
13333 &mut self,
13334 decoder: &mut fidl::encoding::Decoder<'_, D>,
13335 offset: usize,
13336 _depth: fidl::encoding::Depth,
13337 ) -> fidl::Result<()> {
13338 decoder.debug_check_bounds::<Self>(offset);
13339 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13340 let ptr = unsafe { buf_ptr.offset(8) };
13342 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13343 let mask = 0xffffffff00000000u64;
13344 let maskedval = padval & mask;
13345 if maskedval != 0 {
13346 return Err(fidl::Error::NonZeroPadding {
13347 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13348 });
13349 }
13350 let ptr = unsafe { buf_ptr.offset(32) };
13351 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13352 let mask = 0xffffffff00000000u64;
13353 let maskedval = padval & mask;
13354 if maskedval != 0 {
13355 return Err(fidl::Error::NonZeroPadding {
13356 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13357 });
13358 }
13359 unsafe {
13361 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13362 }
13363 Ok(())
13364 }
13365 }
13366
13367 impl fidl::encoding::ValueTypeMarker for StreamSourceOnPacketProducedRequest {
13368 type Borrowed<'a> = &'a Self;
13369 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13370 value
13371 }
13372 }
13373
13374 unsafe impl fidl::encoding::TypeMarker for StreamSourceOnPacketProducedRequest {
13375 type Owned = Self;
13376
13377 #[inline(always)]
13378 fn inline_align(_context: fidl::encoding::Context) -> usize {
13379 8
13380 }
13381
13382 #[inline(always)]
13383 fn inline_size(_context: fidl::encoding::Context) -> usize {
13384 56
13385 }
13386 }
13387
13388 unsafe impl<D: fidl::encoding::ResourceDialect>
13389 fidl::encoding::Encode<StreamSourceOnPacketProducedRequest, D>
13390 for &StreamSourceOnPacketProducedRequest
13391 {
13392 #[inline]
13393 unsafe fn encode(
13394 self,
13395 encoder: &mut fidl::encoding::Encoder<'_, D>,
13396 offset: usize,
13397 _depth: fidl::encoding::Depth,
13398 ) -> fidl::Result<()> {
13399 encoder.debug_check_bounds::<StreamSourceOnPacketProducedRequest>(offset);
13400 unsafe {
13401 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13403 (buf_ptr as *mut StreamSourceOnPacketProducedRequest)
13404 .write_unaligned((self as *const StreamSourceOnPacketProducedRequest).read());
13405 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13408 let padding_mask = 0xffffffff00000000u64;
13409 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13410 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13411 let padding_mask = 0xffffffff00000000u64;
13412 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13413 }
13414 Ok(())
13415 }
13416 }
13417 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13418 fidl::encoding::Encode<StreamSourceOnPacketProducedRequest, D> for (T0,)
13419 {
13420 #[inline]
13421 unsafe fn encode(
13422 self,
13423 encoder: &mut fidl::encoding::Encoder<'_, D>,
13424 offset: usize,
13425 depth: fidl::encoding::Depth,
13426 ) -> fidl::Result<()> {
13427 encoder.debug_check_bounds::<StreamSourceOnPacketProducedRequest>(offset);
13428 self.0.encode(encoder, offset + 0, depth)?;
13432 Ok(())
13433 }
13434 }
13435
13436 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13437 for StreamSourceOnPacketProducedRequest
13438 {
13439 #[inline(always)]
13440 fn new_empty() -> Self {
13441 Self { packet: fidl::new_empty!(StreamPacket, D) }
13442 }
13443
13444 #[inline]
13445 unsafe fn decode(
13446 &mut self,
13447 decoder: &mut fidl::encoding::Decoder<'_, D>,
13448 offset: usize,
13449 _depth: fidl::encoding::Depth,
13450 ) -> fidl::Result<()> {
13451 decoder.debug_check_bounds::<Self>(offset);
13452 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13453 let ptr = unsafe { buf_ptr.offset(8) };
13455 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13456 let mask = 0xffffffff00000000u64;
13457 let maskedval = padval & mask;
13458 if maskedval != 0 {
13459 return Err(fidl::Error::NonZeroPadding {
13460 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13461 });
13462 }
13463 let ptr = unsafe { buf_ptr.offset(32) };
13464 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13465 let mask = 0xffffffff00000000u64;
13466 let maskedval = padval & mask;
13467 if maskedval != 0 {
13468 return Err(fidl::Error::NonZeroPadding {
13469 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13470 });
13471 }
13472 unsafe {
13474 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13475 }
13476 Ok(())
13477 }
13478 }
13479
13480 impl fidl::encoding::ValueTypeMarker for StreamSourceReleasePacketRequest {
13481 type Borrowed<'a> = &'a Self;
13482 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13483 value
13484 }
13485 }
13486
13487 unsafe impl fidl::encoding::TypeMarker for StreamSourceReleasePacketRequest {
13488 type Owned = Self;
13489
13490 #[inline(always)]
13491 fn inline_align(_context: fidl::encoding::Context) -> usize {
13492 8
13493 }
13494
13495 #[inline(always)]
13496 fn inline_size(_context: fidl::encoding::Context) -> usize {
13497 56
13498 }
13499 }
13500
13501 unsafe impl<D: fidl::encoding::ResourceDialect>
13502 fidl::encoding::Encode<StreamSourceReleasePacketRequest, D>
13503 for &StreamSourceReleasePacketRequest
13504 {
13505 #[inline]
13506 unsafe fn encode(
13507 self,
13508 encoder: &mut fidl::encoding::Encoder<'_, D>,
13509 offset: usize,
13510 _depth: fidl::encoding::Depth,
13511 ) -> fidl::Result<()> {
13512 encoder.debug_check_bounds::<StreamSourceReleasePacketRequest>(offset);
13513 unsafe {
13514 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13516 (buf_ptr as *mut StreamSourceReleasePacketRequest)
13517 .write_unaligned((self as *const StreamSourceReleasePacketRequest).read());
13518 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13521 let padding_mask = 0xffffffff00000000u64;
13522 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13523 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13524 let padding_mask = 0xffffffff00000000u64;
13525 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13526 }
13527 Ok(())
13528 }
13529 }
13530 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13531 fidl::encoding::Encode<StreamSourceReleasePacketRequest, D> for (T0,)
13532 {
13533 #[inline]
13534 unsafe fn encode(
13535 self,
13536 encoder: &mut fidl::encoding::Encoder<'_, D>,
13537 offset: usize,
13538 depth: fidl::encoding::Depth,
13539 ) -> fidl::Result<()> {
13540 encoder.debug_check_bounds::<StreamSourceReleasePacketRequest>(offset);
13541 self.0.encode(encoder, offset + 0, depth)?;
13545 Ok(())
13546 }
13547 }
13548
13549 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13550 for StreamSourceReleasePacketRequest
13551 {
13552 #[inline(always)]
13553 fn new_empty() -> Self {
13554 Self { packet: fidl::new_empty!(StreamPacket, D) }
13555 }
13556
13557 #[inline]
13558 unsafe fn decode(
13559 &mut self,
13560 decoder: &mut fidl::encoding::Decoder<'_, D>,
13561 offset: usize,
13562 _depth: fidl::encoding::Depth,
13563 ) -> fidl::Result<()> {
13564 decoder.debug_check_bounds::<Self>(offset);
13565 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13566 let ptr = unsafe { buf_ptr.offset(8) };
13568 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13569 let mask = 0xffffffff00000000u64;
13570 let maskedval = padval & mask;
13571 if maskedval != 0 {
13572 return Err(fidl::Error::NonZeroPadding {
13573 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13574 });
13575 }
13576 let ptr = unsafe { buf_ptr.offset(32) };
13577 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13578 let mask = 0xffffffff00000000u64;
13579 let maskedval = padval & mask;
13580 if maskedval != 0 {
13581 return Err(fidl::Error::NonZeroPadding {
13582 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13583 });
13584 }
13585 unsafe {
13587 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13588 }
13589 Ok(())
13590 }
13591 }
13592
13593 impl fidl::encoding::ValueTypeMarker for StreamType {
13594 type Borrowed<'a> = &'a Self;
13595 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13596 value
13597 }
13598 }
13599
13600 unsafe impl fidl::encoding::TypeMarker for StreamType {
13601 type Owned = Self;
13602
13603 #[inline(always)]
13604 fn inline_align(_context: fidl::encoding::Context) -> usize {
13605 8
13606 }
13607
13608 #[inline(always)]
13609 fn inline_size(_context: fidl::encoding::Context) -> usize {
13610 48
13611 }
13612 }
13613
13614 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamType, D>
13615 for &StreamType
13616 {
13617 #[inline]
13618 unsafe fn encode(
13619 self,
13620 encoder: &mut fidl::encoding::Encoder<'_, D>,
13621 offset: usize,
13622 _depth: fidl::encoding::Depth,
13623 ) -> fidl::Result<()> {
13624 encoder.debug_check_bounds::<StreamType>(offset);
13625 fidl::encoding::Encode::<StreamType, D>::encode(
13627 (
13628 <MediumSpecificStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.medium_specific),
13629 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding),
13630 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>> as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding_parameters),
13631 ),
13632 encoder, offset, _depth
13633 )
13634 }
13635 }
13636 unsafe impl<
13637 D: fidl::encoding::ResourceDialect,
13638 T0: fidl::encoding::Encode<MediumSpecificStreamType, D>,
13639 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
13640 T2: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>, D>,
13641 > fidl::encoding::Encode<StreamType, D> for (T0, T1, T2)
13642 {
13643 #[inline]
13644 unsafe fn encode(
13645 self,
13646 encoder: &mut fidl::encoding::Encoder<'_, D>,
13647 offset: usize,
13648 depth: fidl::encoding::Depth,
13649 ) -> fidl::Result<()> {
13650 encoder.debug_check_bounds::<StreamType>(offset);
13651 self.0.encode(encoder, offset + 0, depth)?;
13655 self.1.encode(encoder, offset + 16, depth)?;
13656 self.2.encode(encoder, offset + 32, depth)?;
13657 Ok(())
13658 }
13659 }
13660
13661 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamType {
13662 #[inline(always)]
13663 fn new_empty() -> Self {
13664 Self {
13665 medium_specific: fidl::new_empty!(MediumSpecificStreamType, D),
13666 encoding: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
13667 encoding_parameters: fidl::new_empty!(
13668 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13669 D
13670 ),
13671 }
13672 }
13673
13674 #[inline]
13675 unsafe fn decode(
13676 &mut self,
13677 decoder: &mut fidl::encoding::Decoder<'_, D>,
13678 offset: usize,
13679 _depth: fidl::encoding::Depth,
13680 ) -> fidl::Result<()> {
13681 decoder.debug_check_bounds::<Self>(offset);
13682 fidl::decode!(
13684 MediumSpecificStreamType,
13685 D,
13686 &mut self.medium_specific,
13687 decoder,
13688 offset + 0,
13689 _depth
13690 )?;
13691 fidl::decode!(
13692 fidl::encoding::BoundedString<255>,
13693 D,
13694 &mut self.encoding,
13695 decoder,
13696 offset + 16,
13697 _depth
13698 )?;
13699 fidl::decode!(
13700 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13701 D,
13702 &mut self.encoding_parameters,
13703 decoder,
13704 offset + 32,
13705 _depth
13706 )?;
13707 Ok(())
13708 }
13709 }
13710
13711 impl fidl::encoding::ValueTypeMarker for SubpictureStreamType {
13712 type Borrowed<'a> = &'a Self;
13713 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13714 value
13715 }
13716 }
13717
13718 unsafe impl fidl::encoding::TypeMarker for SubpictureStreamType {
13719 type Owned = Self;
13720
13721 #[inline(always)]
13722 fn inline_align(_context: fidl::encoding::Context) -> usize {
13723 1
13724 }
13725
13726 #[inline(always)]
13727 fn inline_size(_context: fidl::encoding::Context) -> usize {
13728 1
13729 }
13730 }
13731
13732 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubpictureStreamType, D>
13733 for &SubpictureStreamType
13734 {
13735 #[inline]
13736 unsafe fn encode(
13737 self,
13738 encoder: &mut fidl::encoding::Encoder<'_, D>,
13739 offset: usize,
13740 _depth: fidl::encoding::Depth,
13741 ) -> fidl::Result<()> {
13742 encoder.debug_check_bounds::<SubpictureStreamType>(offset);
13743 encoder.write_num(0u8, offset);
13744 Ok(())
13745 }
13746 }
13747
13748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubpictureStreamType {
13749 #[inline(always)]
13750 fn new_empty() -> Self {
13751 Self
13752 }
13753
13754 #[inline]
13755 unsafe fn decode(
13756 &mut self,
13757 decoder: &mut fidl::encoding::Decoder<'_, D>,
13758 offset: usize,
13759 _depth: fidl::encoding::Depth,
13760 ) -> fidl::Result<()> {
13761 decoder.debug_check_bounds::<Self>(offset);
13762 match decoder.read_num::<u8>(offset) {
13763 0 => Ok(()),
13764 _ => Err(fidl::Error::Invalid),
13765 }
13766 }
13767 }
13768
13769 impl fidl::encoding::ValueTypeMarker for SubsampleEntry {
13770 type Borrowed<'a> = &'a Self;
13771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13772 value
13773 }
13774 }
13775
13776 unsafe impl fidl::encoding::TypeMarker for SubsampleEntry {
13777 type Owned = Self;
13778
13779 #[inline(always)]
13780 fn inline_align(_context: fidl::encoding::Context) -> usize {
13781 4
13782 }
13783
13784 #[inline(always)]
13785 fn inline_size(_context: fidl::encoding::Context) -> usize {
13786 8
13787 }
13788 #[inline(always)]
13789 fn encode_is_copy() -> bool {
13790 true
13791 }
13792
13793 #[inline(always)]
13794 fn decode_is_copy() -> bool {
13795 true
13796 }
13797 }
13798
13799 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubsampleEntry, D>
13800 for &SubsampleEntry
13801 {
13802 #[inline]
13803 unsafe fn encode(
13804 self,
13805 encoder: &mut fidl::encoding::Encoder<'_, D>,
13806 offset: usize,
13807 _depth: fidl::encoding::Depth,
13808 ) -> fidl::Result<()> {
13809 encoder.debug_check_bounds::<SubsampleEntry>(offset);
13810 unsafe {
13811 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13813 (buf_ptr as *mut SubsampleEntry)
13814 .write_unaligned((self as *const SubsampleEntry).read());
13815 }
13818 Ok(())
13819 }
13820 }
13821 unsafe impl<
13822 D: fidl::encoding::ResourceDialect,
13823 T0: fidl::encoding::Encode<u32, D>,
13824 T1: fidl::encoding::Encode<u32, D>,
13825 > fidl::encoding::Encode<SubsampleEntry, D> for (T0, T1)
13826 {
13827 #[inline]
13828 unsafe fn encode(
13829 self,
13830 encoder: &mut fidl::encoding::Encoder<'_, D>,
13831 offset: usize,
13832 depth: fidl::encoding::Depth,
13833 ) -> fidl::Result<()> {
13834 encoder.debug_check_bounds::<SubsampleEntry>(offset);
13835 self.0.encode(encoder, offset + 0, depth)?;
13839 self.1.encode(encoder, offset + 4, depth)?;
13840 Ok(())
13841 }
13842 }
13843
13844 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubsampleEntry {
13845 #[inline(always)]
13846 fn new_empty() -> Self {
13847 Self {
13848 clear_bytes: fidl::new_empty!(u32, D),
13849 encrypted_bytes: fidl::new_empty!(u32, D),
13850 }
13851 }
13852
13853 #[inline]
13854 unsafe fn decode(
13855 &mut self,
13856 decoder: &mut fidl::encoding::Decoder<'_, D>,
13857 offset: usize,
13858 _depth: fidl::encoding::Depth,
13859 ) -> fidl::Result<()> {
13860 decoder.debug_check_bounds::<Self>(offset);
13861 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13862 unsafe {
13865 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
13866 }
13867 Ok(())
13868 }
13869 }
13870
13871 impl fidl::encoding::ValueTypeMarker for TextStreamType {
13872 type Borrowed<'a> = &'a Self;
13873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13874 value
13875 }
13876 }
13877
13878 unsafe impl fidl::encoding::TypeMarker for TextStreamType {
13879 type Owned = Self;
13880
13881 #[inline(always)]
13882 fn inline_align(_context: fidl::encoding::Context) -> usize {
13883 1
13884 }
13885
13886 #[inline(always)]
13887 fn inline_size(_context: fidl::encoding::Context) -> usize {
13888 1
13889 }
13890 }
13891
13892 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TextStreamType, D>
13893 for &TextStreamType
13894 {
13895 #[inline]
13896 unsafe fn encode(
13897 self,
13898 encoder: &mut fidl::encoding::Encoder<'_, D>,
13899 offset: usize,
13900 _depth: fidl::encoding::Depth,
13901 ) -> fidl::Result<()> {
13902 encoder.debug_check_bounds::<TextStreamType>(offset);
13903 encoder.write_num(0u8, offset);
13904 Ok(())
13905 }
13906 }
13907
13908 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TextStreamType {
13909 #[inline(always)]
13910 fn new_empty() -> Self {
13911 Self
13912 }
13913
13914 #[inline]
13915 unsafe fn decode(
13916 &mut self,
13917 decoder: &mut fidl::encoding::Decoder<'_, D>,
13918 offset: usize,
13919 _depth: fidl::encoding::Depth,
13920 ) -> fidl::Result<()> {
13921 decoder.debug_check_bounds::<Self>(offset);
13922 match decoder.read_num::<u8>(offset) {
13923 0 => Ok(()),
13924 _ => Err(fidl::Error::Invalid),
13925 }
13926 }
13927 }
13928
13929 impl fidl::encoding::ValueTypeMarker for TimelineFunction {
13930 type Borrowed<'a> = &'a Self;
13931 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13932 value
13933 }
13934 }
13935
13936 unsafe impl fidl::encoding::TypeMarker for TimelineFunction {
13937 type Owned = Self;
13938
13939 #[inline(always)]
13940 fn inline_align(_context: fidl::encoding::Context) -> usize {
13941 8
13942 }
13943
13944 #[inline(always)]
13945 fn inline_size(_context: fidl::encoding::Context) -> usize {
13946 24
13947 }
13948 #[inline(always)]
13949 fn encode_is_copy() -> bool {
13950 true
13951 }
13952
13953 #[inline(always)]
13954 fn decode_is_copy() -> bool {
13955 true
13956 }
13957 }
13958
13959 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TimelineFunction, D>
13960 for &TimelineFunction
13961 {
13962 #[inline]
13963 unsafe fn encode(
13964 self,
13965 encoder: &mut fidl::encoding::Encoder<'_, D>,
13966 offset: usize,
13967 _depth: fidl::encoding::Depth,
13968 ) -> fidl::Result<()> {
13969 encoder.debug_check_bounds::<TimelineFunction>(offset);
13970 unsafe {
13971 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13973 (buf_ptr as *mut TimelineFunction)
13974 .write_unaligned((self as *const TimelineFunction).read());
13975 }
13978 Ok(())
13979 }
13980 }
13981 unsafe impl<
13982 D: fidl::encoding::ResourceDialect,
13983 T0: fidl::encoding::Encode<i64, D>,
13984 T1: fidl::encoding::Encode<i64, D>,
13985 T2: fidl::encoding::Encode<u32, D>,
13986 T3: fidl::encoding::Encode<u32, D>,
13987 > fidl::encoding::Encode<TimelineFunction, D> for (T0, T1, T2, T3)
13988 {
13989 #[inline]
13990 unsafe fn encode(
13991 self,
13992 encoder: &mut fidl::encoding::Encoder<'_, D>,
13993 offset: usize,
13994 depth: fidl::encoding::Depth,
13995 ) -> fidl::Result<()> {
13996 encoder.debug_check_bounds::<TimelineFunction>(offset);
13997 self.0.encode(encoder, offset + 0, depth)?;
14001 self.1.encode(encoder, offset + 8, depth)?;
14002 self.2.encode(encoder, offset + 16, depth)?;
14003 self.3.encode(encoder, offset + 20, depth)?;
14004 Ok(())
14005 }
14006 }
14007
14008 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TimelineFunction {
14009 #[inline(always)]
14010 fn new_empty() -> Self {
14011 Self {
14012 subject_time: fidl::new_empty!(i64, D),
14013 reference_time: fidl::new_empty!(i64, D),
14014 subject_delta: fidl::new_empty!(u32, D),
14015 reference_delta: fidl::new_empty!(u32, D),
14016 }
14017 }
14018
14019 #[inline]
14020 unsafe fn decode(
14021 &mut self,
14022 decoder: &mut fidl::encoding::Decoder<'_, D>,
14023 offset: usize,
14024 _depth: fidl::encoding::Depth,
14025 ) -> fidl::Result<()> {
14026 decoder.debug_check_bounds::<Self>(offset);
14027 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
14028 unsafe {
14031 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 24);
14032 }
14033 Ok(())
14034 }
14035 }
14036
14037 impl fidl::encoding::ValueTypeMarker for UsageGainListenerOnGainMuteChangedRequest {
14038 type Borrowed<'a> = &'a Self;
14039 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14040 value
14041 }
14042 }
14043
14044 unsafe impl fidl::encoding::TypeMarker for UsageGainListenerOnGainMuteChangedRequest {
14045 type Owned = Self;
14046
14047 #[inline(always)]
14048 fn inline_align(_context: fidl::encoding::Context) -> usize {
14049 4
14050 }
14051
14052 #[inline(always)]
14053 fn inline_size(_context: fidl::encoding::Context) -> usize {
14054 8
14055 }
14056 }
14057
14058 unsafe impl<D: fidl::encoding::ResourceDialect>
14059 fidl::encoding::Encode<UsageGainListenerOnGainMuteChangedRequest, D>
14060 for &UsageGainListenerOnGainMuteChangedRequest
14061 {
14062 #[inline]
14063 unsafe fn encode(
14064 self,
14065 encoder: &mut fidl::encoding::Encoder<'_, D>,
14066 offset: usize,
14067 _depth: fidl::encoding::Depth,
14068 ) -> fidl::Result<()> {
14069 encoder.debug_check_bounds::<UsageGainListenerOnGainMuteChangedRequest>(offset);
14070 fidl::encoding::Encode::<UsageGainListenerOnGainMuteChangedRequest, D>::encode(
14072 (
14073 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.muted),
14074 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_dbfs),
14075 ),
14076 encoder,
14077 offset,
14078 _depth,
14079 )
14080 }
14081 }
14082 unsafe impl<
14083 D: fidl::encoding::ResourceDialect,
14084 T0: fidl::encoding::Encode<bool, D>,
14085 T1: fidl::encoding::Encode<f32, D>,
14086 > fidl::encoding::Encode<UsageGainListenerOnGainMuteChangedRequest, D> for (T0, T1)
14087 {
14088 #[inline]
14089 unsafe fn encode(
14090 self,
14091 encoder: &mut fidl::encoding::Encoder<'_, D>,
14092 offset: usize,
14093 depth: fidl::encoding::Depth,
14094 ) -> fidl::Result<()> {
14095 encoder.debug_check_bounds::<UsageGainListenerOnGainMuteChangedRequest>(offset);
14096 unsafe {
14099 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
14100 (ptr as *mut u32).write_unaligned(0);
14101 }
14102 self.0.encode(encoder, offset + 0, depth)?;
14104 self.1.encode(encoder, offset + 4, depth)?;
14105 Ok(())
14106 }
14107 }
14108
14109 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14110 for UsageGainListenerOnGainMuteChangedRequest
14111 {
14112 #[inline(always)]
14113 fn new_empty() -> Self {
14114 Self { muted: fidl::new_empty!(bool, D), gain_dbfs: fidl::new_empty!(f32, D) }
14115 }
14116
14117 #[inline]
14118 unsafe fn decode(
14119 &mut self,
14120 decoder: &mut fidl::encoding::Decoder<'_, D>,
14121 offset: usize,
14122 _depth: fidl::encoding::Depth,
14123 ) -> fidl::Result<()> {
14124 decoder.debug_check_bounds::<Self>(offset);
14125 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
14127 let padval = unsafe { (ptr as *const u32).read_unaligned() };
14128 let mask = 0xffffff00u32;
14129 let maskedval = padval & mask;
14130 if maskedval != 0 {
14131 return Err(fidl::Error::NonZeroPadding {
14132 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
14133 });
14134 }
14135 fidl::decode!(bool, D, &mut self.muted, decoder, offset + 0, _depth)?;
14136 fidl::decode!(f32, D, &mut self.gain_dbfs, decoder, offset + 4, _depth)?;
14137 Ok(())
14138 }
14139 }
14140
14141 impl fidl::encoding::ValueTypeMarker for UsageWatcher2OnStateChangedRequest {
14142 type Borrowed<'a> = &'a Self;
14143 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14144 value
14145 }
14146 }
14147
14148 unsafe impl fidl::encoding::TypeMarker for UsageWatcher2OnStateChangedRequest {
14149 type Owned = Self;
14150
14151 #[inline(always)]
14152 fn inline_align(_context: fidl::encoding::Context) -> usize {
14153 8
14154 }
14155
14156 #[inline(always)]
14157 fn inline_size(_context: fidl::encoding::Context) -> usize {
14158 32
14159 }
14160 }
14161
14162 unsafe impl<D: fidl::encoding::ResourceDialect>
14163 fidl::encoding::Encode<UsageWatcher2OnStateChangedRequest, D>
14164 for &UsageWatcher2OnStateChangedRequest
14165 {
14166 #[inline]
14167 unsafe fn encode(
14168 self,
14169 encoder: &mut fidl::encoding::Encoder<'_, D>,
14170 offset: usize,
14171 _depth: fidl::encoding::Depth,
14172 ) -> fidl::Result<()> {
14173 encoder.debug_check_bounds::<UsageWatcher2OnStateChangedRequest>(offset);
14174 fidl::encoding::Encode::<UsageWatcher2OnStateChangedRequest, D>::encode(
14176 (
14177 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
14178 <UsageState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
14179 ),
14180 encoder,
14181 offset,
14182 _depth,
14183 )
14184 }
14185 }
14186 unsafe impl<
14187 D: fidl::encoding::ResourceDialect,
14188 T0: fidl::encoding::Encode<Usage2, D>,
14189 T1: fidl::encoding::Encode<UsageState, D>,
14190 > fidl::encoding::Encode<UsageWatcher2OnStateChangedRequest, D> for (T0, T1)
14191 {
14192 #[inline]
14193 unsafe fn encode(
14194 self,
14195 encoder: &mut fidl::encoding::Encoder<'_, D>,
14196 offset: usize,
14197 depth: fidl::encoding::Depth,
14198 ) -> fidl::Result<()> {
14199 encoder.debug_check_bounds::<UsageWatcher2OnStateChangedRequest>(offset);
14200 self.0.encode(encoder, offset + 0, depth)?;
14204 self.1.encode(encoder, offset + 16, depth)?;
14205 Ok(())
14206 }
14207 }
14208
14209 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14210 for UsageWatcher2OnStateChangedRequest
14211 {
14212 #[inline(always)]
14213 fn new_empty() -> Self {
14214 Self { usage: fidl::new_empty!(Usage2, D), state: fidl::new_empty!(UsageState, D) }
14215 }
14216
14217 #[inline]
14218 unsafe fn decode(
14219 &mut self,
14220 decoder: &mut fidl::encoding::Decoder<'_, D>,
14221 offset: usize,
14222 _depth: fidl::encoding::Depth,
14223 ) -> fidl::Result<()> {
14224 decoder.debug_check_bounds::<Self>(offset);
14225 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
14227 fidl::decode!(UsageState, D, &mut self.state, decoder, offset + 16, _depth)?;
14228 Ok(())
14229 }
14230 }
14231
14232 impl fidl::encoding::ValueTypeMarker for UsageWatcherOnStateChangedRequest {
14233 type Borrowed<'a> = &'a Self;
14234 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14235 value
14236 }
14237 }
14238
14239 unsafe impl fidl::encoding::TypeMarker for UsageWatcherOnStateChangedRequest {
14240 type Owned = Self;
14241
14242 #[inline(always)]
14243 fn inline_align(_context: fidl::encoding::Context) -> usize {
14244 8
14245 }
14246
14247 #[inline(always)]
14248 fn inline_size(_context: fidl::encoding::Context) -> usize {
14249 32
14250 }
14251 }
14252
14253 unsafe impl<D: fidl::encoding::ResourceDialect>
14254 fidl::encoding::Encode<UsageWatcherOnStateChangedRequest, D>
14255 for &UsageWatcherOnStateChangedRequest
14256 {
14257 #[inline]
14258 unsafe fn encode(
14259 self,
14260 encoder: &mut fidl::encoding::Encoder<'_, D>,
14261 offset: usize,
14262 _depth: fidl::encoding::Depth,
14263 ) -> fidl::Result<()> {
14264 encoder.debug_check_bounds::<UsageWatcherOnStateChangedRequest>(offset);
14265 fidl::encoding::Encode::<UsageWatcherOnStateChangedRequest, D>::encode(
14267 (
14268 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
14269 <UsageState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
14270 ),
14271 encoder,
14272 offset,
14273 _depth,
14274 )
14275 }
14276 }
14277 unsafe impl<
14278 D: fidl::encoding::ResourceDialect,
14279 T0: fidl::encoding::Encode<Usage, D>,
14280 T1: fidl::encoding::Encode<UsageState, D>,
14281 > fidl::encoding::Encode<UsageWatcherOnStateChangedRequest, D> for (T0, T1)
14282 {
14283 #[inline]
14284 unsafe fn encode(
14285 self,
14286 encoder: &mut fidl::encoding::Encoder<'_, D>,
14287 offset: usize,
14288 depth: fidl::encoding::Depth,
14289 ) -> fidl::Result<()> {
14290 encoder.debug_check_bounds::<UsageWatcherOnStateChangedRequest>(offset);
14291 self.0.encode(encoder, offset + 0, depth)?;
14295 self.1.encode(encoder, offset + 16, depth)?;
14296 Ok(())
14297 }
14298 }
14299
14300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14301 for UsageWatcherOnStateChangedRequest
14302 {
14303 #[inline(always)]
14304 fn new_empty() -> Self {
14305 Self { usage: fidl::new_empty!(Usage, D), state: fidl::new_empty!(UsageState, D) }
14306 }
14307
14308 #[inline]
14309 unsafe fn decode(
14310 &mut self,
14311 decoder: &mut fidl::encoding::Decoder<'_, D>,
14312 offset: usize,
14313 _depth: fidl::encoding::Depth,
14314 ) -> fidl::Result<()> {
14315 decoder.debug_check_bounds::<Self>(offset);
14316 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
14318 fidl::decode!(UsageState, D, &mut self.state, decoder, offset + 16, _depth)?;
14319 Ok(())
14320 }
14321 }
14322
14323 impl fidl::encoding::ValueTypeMarker for VideoStreamType {
14324 type Borrowed<'a> = &'a Self;
14325 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14326 value
14327 }
14328 }
14329
14330 unsafe impl fidl::encoding::TypeMarker for VideoStreamType {
14331 type Owned = Self;
14332
14333 #[inline(always)]
14334 fn inline_align(_context: fidl::encoding::Context) -> usize {
14335 4
14336 }
14337
14338 #[inline(always)]
14339 fn inline_size(_context: fidl::encoding::Context) -> usize {
14340 36
14341 }
14342 }
14343
14344 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoStreamType, D>
14345 for &VideoStreamType
14346 {
14347 #[inline]
14348 unsafe fn encode(
14349 self,
14350 encoder: &mut fidl::encoding::Encoder<'_, D>,
14351 offset: usize,
14352 _depth: fidl::encoding::Depth,
14353 ) -> fidl::Result<()> {
14354 encoder.debug_check_bounds::<VideoStreamType>(offset);
14355 fidl::encoding::Encode::<VideoStreamType, D>::encode(
14357 (
14358 <fidl_fuchsia_images__common::PixelFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_format),
14359 <ColorSpace as fidl::encoding::ValueTypeMarker>::borrow(&self.color_space),
14360 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.width),
14361 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.height),
14362 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.coded_width),
14363 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.coded_height),
14364 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_width),
14365 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_height),
14366 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.stride),
14367 ),
14368 encoder, offset, _depth
14369 )
14370 }
14371 }
14372 unsafe impl<
14373 D: fidl::encoding::ResourceDialect,
14374 T0: fidl::encoding::Encode<fidl_fuchsia_images__common::PixelFormat, D>,
14375 T1: fidl::encoding::Encode<ColorSpace, D>,
14376 T2: fidl::encoding::Encode<u32, D>,
14377 T3: fidl::encoding::Encode<u32, D>,
14378 T4: fidl::encoding::Encode<u32, D>,
14379 T5: fidl::encoding::Encode<u32, D>,
14380 T6: fidl::encoding::Encode<u32, D>,
14381 T7: fidl::encoding::Encode<u32, D>,
14382 T8: fidl::encoding::Encode<u32, D>,
14383 > fidl::encoding::Encode<VideoStreamType, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
14384 {
14385 #[inline]
14386 unsafe fn encode(
14387 self,
14388 encoder: &mut fidl::encoding::Encoder<'_, D>,
14389 offset: usize,
14390 depth: fidl::encoding::Depth,
14391 ) -> fidl::Result<()> {
14392 encoder.debug_check_bounds::<VideoStreamType>(offset);
14393 self.0.encode(encoder, offset + 0, depth)?;
14397 self.1.encode(encoder, offset + 4, depth)?;
14398 self.2.encode(encoder, offset + 8, depth)?;
14399 self.3.encode(encoder, offset + 12, depth)?;
14400 self.4.encode(encoder, offset + 16, depth)?;
14401 self.5.encode(encoder, offset + 20, depth)?;
14402 self.6.encode(encoder, offset + 24, depth)?;
14403 self.7.encode(encoder, offset + 28, depth)?;
14404 self.8.encode(encoder, offset + 32, depth)?;
14405 Ok(())
14406 }
14407 }
14408
14409 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoStreamType {
14410 #[inline(always)]
14411 fn new_empty() -> Self {
14412 Self {
14413 pixel_format: fidl::new_empty!(fidl_fuchsia_images__common::PixelFormat, D),
14414 color_space: fidl::new_empty!(ColorSpace, D),
14415 width: fidl::new_empty!(u32, D),
14416 height: fidl::new_empty!(u32, D),
14417 coded_width: fidl::new_empty!(u32, D),
14418 coded_height: fidl::new_empty!(u32, D),
14419 pixel_aspect_ratio_width: fidl::new_empty!(u32, D),
14420 pixel_aspect_ratio_height: fidl::new_empty!(u32, D),
14421 stride: fidl::new_empty!(u32, D),
14422 }
14423 }
14424
14425 #[inline]
14426 unsafe fn decode(
14427 &mut self,
14428 decoder: &mut fidl::encoding::Decoder<'_, D>,
14429 offset: usize,
14430 _depth: fidl::encoding::Depth,
14431 ) -> fidl::Result<()> {
14432 decoder.debug_check_bounds::<Self>(offset);
14433 fidl::decode!(
14435 fidl_fuchsia_images__common::PixelFormat,
14436 D,
14437 &mut self.pixel_format,
14438 decoder,
14439 offset + 0,
14440 _depth
14441 )?;
14442 fidl::decode!(ColorSpace, D, &mut self.color_space, decoder, offset + 4, _depth)?;
14443 fidl::decode!(u32, D, &mut self.width, decoder, offset + 8, _depth)?;
14444 fidl::decode!(u32, D, &mut self.height, decoder, offset + 12, _depth)?;
14445 fidl::decode!(u32, D, &mut self.coded_width, decoder, offset + 16, _depth)?;
14446 fidl::decode!(u32, D, &mut self.coded_height, decoder, offset + 20, _depth)?;
14447 fidl::decode!(
14448 u32,
14449 D,
14450 &mut self.pixel_aspect_ratio_width,
14451 decoder,
14452 offset + 24,
14453 _depth
14454 )?;
14455 fidl::decode!(
14456 u32,
14457 D,
14458 &mut self.pixel_aspect_ratio_height,
14459 decoder,
14460 offset + 28,
14461 _depth
14462 )?;
14463 fidl::decode!(u32, D, &mut self.stride, decoder, offset + 32, _depth)?;
14464 Ok(())
14465 }
14466 }
14467
14468 impl fidl::encoding::ValueTypeMarker for VideoUncompressedFormat {
14469 type Borrowed<'a> = &'a Self;
14470 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14471 value
14472 }
14473 }
14474
14475 unsafe impl fidl::encoding::TypeMarker for VideoUncompressedFormat {
14476 type Owned = Self;
14477
14478 #[inline(always)]
14479 fn inline_align(_context: fidl::encoding::Context) -> usize {
14480 8
14481 }
14482
14483 #[inline(always)]
14484 fn inline_size(_context: fidl::encoding::Context) -> usize {
14485 128
14486 }
14487 }
14488
14489 unsafe impl<D: fidl::encoding::ResourceDialect>
14490 fidl::encoding::Encode<VideoUncompressedFormat, D> for &VideoUncompressedFormat
14491 {
14492 #[inline]
14493 unsafe fn encode(
14494 self,
14495 encoder: &mut fidl::encoding::Encoder<'_, D>,
14496 offset: usize,
14497 _depth: fidl::encoding::Depth,
14498 ) -> fidl::Result<()> {
14499 encoder.debug_check_bounds::<VideoUncompressedFormat>(offset);
14500 fidl::encoding::Encode::<VideoUncompressedFormat, D>::encode(
14502 (
14503 <fidl_fuchsia_sysmem__common::ImageFormat2 as fidl::encoding::ValueTypeMarker>::borrow(&self.image_format),
14504 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.fourcc),
14505 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_width_pixels),
14506 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_height_pixels),
14507 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_width_pixels),
14508 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_height_pixels),
14509 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.planar),
14510 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.swizzled),
14511 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_line_stride_bytes),
14512 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_line_stride_bytes),
14513 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_start_offset),
14514 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_start_offset),
14515 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.tertiary_start_offset),
14516 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_pixel_stride),
14517 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_pixel_stride),
14518 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_display_width_pixels),
14519 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_display_height_pixels),
14520 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_pixel_aspect_ratio),
14521 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_width),
14522 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_height),
14523 ),
14524 encoder, offset, _depth
14525 )
14526 }
14527 }
14528 unsafe impl<
14529 D: fidl::encoding::ResourceDialect,
14530 T0: fidl::encoding::Encode<fidl_fuchsia_sysmem__common::ImageFormat2, D>,
14531 T1: fidl::encoding::Encode<u32, D>,
14532 T2: fidl::encoding::Encode<u32, D>,
14533 T3: fidl::encoding::Encode<u32, D>,
14534 T4: fidl::encoding::Encode<u32, D>,
14535 T5: fidl::encoding::Encode<u32, D>,
14536 T6: fidl::encoding::Encode<bool, D>,
14537 T7: fidl::encoding::Encode<bool, D>,
14538 T8: fidl::encoding::Encode<u32, D>,
14539 T9: fidl::encoding::Encode<u32, D>,
14540 T10: fidl::encoding::Encode<u32, D>,
14541 T11: fidl::encoding::Encode<u32, D>,
14542 T12: fidl::encoding::Encode<u32, D>,
14543 T13: fidl::encoding::Encode<u32, D>,
14544 T14: fidl::encoding::Encode<u32, D>,
14545 T15: fidl::encoding::Encode<u32, D>,
14546 T16: fidl::encoding::Encode<u32, D>,
14547 T17: fidl::encoding::Encode<bool, D>,
14548 T18: fidl::encoding::Encode<u32, D>,
14549 T19: fidl::encoding::Encode<u32, D>,
14550 > fidl::encoding::Encode<VideoUncompressedFormat, D>
14551 for (
14552 T0,
14553 T1,
14554 T2,
14555 T3,
14556 T4,
14557 T5,
14558 T6,
14559 T7,
14560 T8,
14561 T9,
14562 T10,
14563 T11,
14564 T12,
14565 T13,
14566 T14,
14567 T15,
14568 T16,
14569 T17,
14570 T18,
14571 T19,
14572 )
14573 {
14574 #[inline]
14575 unsafe fn encode(
14576 self,
14577 encoder: &mut fidl::encoding::Encoder<'_, D>,
14578 offset: usize,
14579 depth: fidl::encoding::Depth,
14580 ) -> fidl::Result<()> {
14581 encoder.debug_check_bounds::<VideoUncompressedFormat>(offset);
14582 unsafe {
14585 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(72);
14586 (ptr as *mut u64).write_unaligned(0);
14587 }
14588 unsafe {
14589 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(112);
14590 (ptr as *mut u64).write_unaligned(0);
14591 }
14592 self.0.encode(encoder, offset + 0, depth)?;
14594 self.1.encode(encoder, offset + 56, depth)?;
14595 self.2.encode(encoder, offset + 60, depth)?;
14596 self.3.encode(encoder, offset + 64, depth)?;
14597 self.4.encode(encoder, offset + 68, depth)?;
14598 self.5.encode(encoder, offset + 72, depth)?;
14599 self.6.encode(encoder, offset + 76, depth)?;
14600 self.7.encode(encoder, offset + 77, depth)?;
14601 self.8.encode(encoder, offset + 80, depth)?;
14602 self.9.encode(encoder, offset + 84, depth)?;
14603 self.10.encode(encoder, offset + 88, depth)?;
14604 self.11.encode(encoder, offset + 92, depth)?;
14605 self.12.encode(encoder, offset + 96, depth)?;
14606 self.13.encode(encoder, offset + 100, depth)?;
14607 self.14.encode(encoder, offset + 104, depth)?;
14608 self.15.encode(encoder, offset + 108, depth)?;
14609 self.16.encode(encoder, offset + 112, depth)?;
14610 self.17.encode(encoder, offset + 116, depth)?;
14611 self.18.encode(encoder, offset + 120, depth)?;
14612 self.19.encode(encoder, offset + 124, depth)?;
14613 Ok(())
14614 }
14615 }
14616
14617 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14618 for VideoUncompressedFormat
14619 {
14620 #[inline(always)]
14621 fn new_empty() -> Self {
14622 Self {
14623 image_format: fidl::new_empty!(fidl_fuchsia_sysmem__common::ImageFormat2, D),
14624 fourcc: fidl::new_empty!(u32, D),
14625 primary_width_pixels: fidl::new_empty!(u32, D),
14626 primary_height_pixels: fidl::new_empty!(u32, D),
14627 secondary_width_pixels: fidl::new_empty!(u32, D),
14628 secondary_height_pixels: fidl::new_empty!(u32, D),
14629 planar: fidl::new_empty!(bool, D),
14630 swizzled: fidl::new_empty!(bool, D),
14631 primary_line_stride_bytes: fidl::new_empty!(u32, D),
14632 secondary_line_stride_bytes: fidl::new_empty!(u32, D),
14633 primary_start_offset: fidl::new_empty!(u32, D),
14634 secondary_start_offset: fidl::new_empty!(u32, D),
14635 tertiary_start_offset: fidl::new_empty!(u32, D),
14636 primary_pixel_stride: fidl::new_empty!(u32, D),
14637 secondary_pixel_stride: fidl::new_empty!(u32, D),
14638 primary_display_width_pixels: fidl::new_empty!(u32, D),
14639 primary_display_height_pixels: fidl::new_empty!(u32, D),
14640 has_pixel_aspect_ratio: fidl::new_empty!(bool, D),
14641 pixel_aspect_ratio_width: fidl::new_empty!(u32, D),
14642 pixel_aspect_ratio_height: fidl::new_empty!(u32, D),
14643 }
14644 }
14645
14646 #[inline]
14647 unsafe fn decode(
14648 &mut self,
14649 decoder: &mut fidl::encoding::Decoder<'_, D>,
14650 offset: usize,
14651 _depth: fidl::encoding::Depth,
14652 ) -> fidl::Result<()> {
14653 decoder.debug_check_bounds::<Self>(offset);
14654 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(72) };
14656 let padval = unsafe { (ptr as *const u64).read_unaligned() };
14657 let mask = 0xffff000000000000u64;
14658 let maskedval = padval & mask;
14659 if maskedval != 0 {
14660 return Err(fidl::Error::NonZeroPadding {
14661 padding_start: offset + 72 + ((mask as u64).trailing_zeros() / 8) as usize,
14662 });
14663 }
14664 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(112) };
14665 let padval = unsafe { (ptr as *const u64).read_unaligned() };
14666 let mask = 0xffffff0000000000u64;
14667 let maskedval = padval & mask;
14668 if maskedval != 0 {
14669 return Err(fidl::Error::NonZeroPadding {
14670 padding_start: offset + 112 + ((mask as u64).trailing_zeros() / 8) as usize,
14671 });
14672 }
14673 fidl::decode!(
14674 fidl_fuchsia_sysmem__common::ImageFormat2,
14675 D,
14676 &mut self.image_format,
14677 decoder,
14678 offset + 0,
14679 _depth
14680 )?;
14681 fidl::decode!(u32, D, &mut self.fourcc, decoder, offset + 56, _depth)?;
14682 fidl::decode!(u32, D, &mut self.primary_width_pixels, decoder, offset + 60, _depth)?;
14683 fidl::decode!(u32, D, &mut self.primary_height_pixels, decoder, offset + 64, _depth)?;
14684 fidl::decode!(u32, D, &mut self.secondary_width_pixels, decoder, offset + 68, _depth)?;
14685 fidl::decode!(u32, D, &mut self.secondary_height_pixels, decoder, offset + 72, _depth)?;
14686 fidl::decode!(bool, D, &mut self.planar, decoder, offset + 76, _depth)?;
14687 fidl::decode!(bool, D, &mut self.swizzled, decoder, offset + 77, _depth)?;
14688 fidl::decode!(
14689 u32,
14690 D,
14691 &mut self.primary_line_stride_bytes,
14692 decoder,
14693 offset + 80,
14694 _depth
14695 )?;
14696 fidl::decode!(
14697 u32,
14698 D,
14699 &mut self.secondary_line_stride_bytes,
14700 decoder,
14701 offset + 84,
14702 _depth
14703 )?;
14704 fidl::decode!(u32, D, &mut self.primary_start_offset, decoder, offset + 88, _depth)?;
14705 fidl::decode!(u32, D, &mut self.secondary_start_offset, decoder, offset + 92, _depth)?;
14706 fidl::decode!(u32, D, &mut self.tertiary_start_offset, decoder, offset + 96, _depth)?;
14707 fidl::decode!(u32, D, &mut self.primary_pixel_stride, decoder, offset + 100, _depth)?;
14708 fidl::decode!(u32, D, &mut self.secondary_pixel_stride, decoder, offset + 104, _depth)?;
14709 fidl::decode!(
14710 u32,
14711 D,
14712 &mut self.primary_display_width_pixels,
14713 decoder,
14714 offset + 108,
14715 _depth
14716 )?;
14717 fidl::decode!(
14718 u32,
14719 D,
14720 &mut self.primary_display_height_pixels,
14721 decoder,
14722 offset + 112,
14723 _depth
14724 )?;
14725 fidl::decode!(
14726 bool,
14727 D,
14728 &mut self.has_pixel_aspect_ratio,
14729 decoder,
14730 offset + 116,
14731 _depth
14732 )?;
14733 fidl::decode!(
14734 u32,
14735 D,
14736 &mut self.pixel_aspect_ratio_width,
14737 decoder,
14738 offset + 120,
14739 _depth
14740 )?;
14741 fidl::decode!(
14742 u32,
14743 D,
14744 &mut self.pixel_aspect_ratio_height,
14745 decoder,
14746 offset + 124,
14747 _depth
14748 )?;
14749 Ok(())
14750 }
14751 }
14752
14753 impl fidl::encoding::ValueTypeMarker for Void {
14754 type Borrowed<'a> = &'a Self;
14755 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14756 value
14757 }
14758 }
14759
14760 unsafe impl fidl::encoding::TypeMarker for Void {
14761 type Owned = Self;
14762
14763 #[inline(always)]
14764 fn inline_align(_context: fidl::encoding::Context) -> usize {
14765 1
14766 }
14767
14768 #[inline(always)]
14769 fn inline_size(_context: fidl::encoding::Context) -> usize {
14770 1
14771 }
14772 }
14773
14774 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Void, D> for &Void {
14775 #[inline]
14776 unsafe fn encode(
14777 self,
14778 encoder: &mut fidl::encoding::Encoder<'_, D>,
14779 offset: usize,
14780 _depth: fidl::encoding::Depth,
14781 ) -> fidl::Result<()> {
14782 encoder.debug_check_bounds::<Void>(offset);
14783 encoder.write_num(0u8, offset);
14784 Ok(())
14785 }
14786 }
14787
14788 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Void {
14789 #[inline(always)]
14790 fn new_empty() -> Self {
14791 Self
14792 }
14793
14794 #[inline]
14795 unsafe fn decode(
14796 &mut self,
14797 decoder: &mut fidl::encoding::Decoder<'_, D>,
14798 offset: usize,
14799 _depth: fidl::encoding::Depth,
14800 ) -> fidl::Result<()> {
14801 decoder.debug_check_bounds::<Self>(offset);
14802 match decoder.read_num::<u8>(offset) {
14803 0 => Ok(()),
14804 _ => Err(fidl::Error::Invalid),
14805 }
14806 }
14807 }
14808
14809 impl AudioCompressedFormatCvsd {
14810 #[inline(always)]
14811 fn max_ordinal_present(&self) -> u64 {
14812 0
14813 }
14814 }
14815
14816 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatCvsd {
14817 type Borrowed<'a> = &'a Self;
14818 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14819 value
14820 }
14821 }
14822
14823 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatCvsd {
14824 type Owned = Self;
14825
14826 #[inline(always)]
14827 fn inline_align(_context: fidl::encoding::Context) -> usize {
14828 8
14829 }
14830
14831 #[inline(always)]
14832 fn inline_size(_context: fidl::encoding::Context) -> usize {
14833 16
14834 }
14835 }
14836
14837 unsafe impl<D: fidl::encoding::ResourceDialect>
14838 fidl::encoding::Encode<AudioCompressedFormatCvsd, D> for &AudioCompressedFormatCvsd
14839 {
14840 unsafe fn encode(
14841 self,
14842 encoder: &mut fidl::encoding::Encoder<'_, D>,
14843 offset: usize,
14844 mut depth: fidl::encoding::Depth,
14845 ) -> fidl::Result<()> {
14846 encoder.debug_check_bounds::<AudioCompressedFormatCvsd>(offset);
14847 let max_ordinal: u64 = self.max_ordinal_present();
14849 encoder.write_num(max_ordinal, offset);
14850 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14851 if max_ordinal == 0 {
14853 return Ok(());
14854 }
14855 depth.increment()?;
14856 let envelope_size = 8;
14857 let bytes_len = max_ordinal as usize * envelope_size;
14858 #[allow(unused_variables)]
14859 let offset = encoder.out_of_line_offset(bytes_len);
14860 let mut _prev_end_offset: usize = 0;
14861
14862 Ok(())
14863 }
14864 }
14865
14866 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14867 for AudioCompressedFormatCvsd
14868 {
14869 #[inline(always)]
14870 fn new_empty() -> Self {
14871 Self::default()
14872 }
14873
14874 unsafe fn decode(
14875 &mut self,
14876 decoder: &mut fidl::encoding::Decoder<'_, D>,
14877 offset: usize,
14878 mut depth: fidl::encoding::Depth,
14879 ) -> fidl::Result<()> {
14880 decoder.debug_check_bounds::<Self>(offset);
14881 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14882 None => return Err(fidl::Error::NotNullable),
14883 Some(len) => len,
14884 };
14885 if len == 0 {
14887 return Ok(());
14888 };
14889 depth.increment()?;
14890 let envelope_size = 8;
14891 let bytes_len = len * envelope_size;
14892 let offset = decoder.out_of_line_offset(bytes_len)?;
14893 let mut _next_ordinal_to_read = 0;
14895 let mut next_offset = offset;
14896 let end_offset = offset + bytes_len;
14897
14898 while next_offset < end_offset {
14900 _next_ordinal_to_read += 1;
14901 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14902 next_offset += envelope_size;
14903 }
14904
14905 Ok(())
14906 }
14907 }
14908
14909 impl AudioCompressedFormatLc3 {
14910 #[inline(always)]
14911 fn max_ordinal_present(&self) -> u64 {
14912 0
14913 }
14914 }
14915
14916 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatLc3 {
14917 type Borrowed<'a> = &'a Self;
14918 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14919 value
14920 }
14921 }
14922
14923 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatLc3 {
14924 type Owned = Self;
14925
14926 #[inline(always)]
14927 fn inline_align(_context: fidl::encoding::Context) -> usize {
14928 8
14929 }
14930
14931 #[inline(always)]
14932 fn inline_size(_context: fidl::encoding::Context) -> usize {
14933 16
14934 }
14935 }
14936
14937 unsafe impl<D: fidl::encoding::ResourceDialect>
14938 fidl::encoding::Encode<AudioCompressedFormatLc3, D> for &AudioCompressedFormatLc3
14939 {
14940 unsafe fn encode(
14941 self,
14942 encoder: &mut fidl::encoding::Encoder<'_, D>,
14943 offset: usize,
14944 mut depth: fidl::encoding::Depth,
14945 ) -> fidl::Result<()> {
14946 encoder.debug_check_bounds::<AudioCompressedFormatLc3>(offset);
14947 let max_ordinal: u64 = self.max_ordinal_present();
14949 encoder.write_num(max_ordinal, offset);
14950 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14951 if max_ordinal == 0 {
14953 return Ok(());
14954 }
14955 depth.increment()?;
14956 let envelope_size = 8;
14957 let bytes_len = max_ordinal as usize * envelope_size;
14958 #[allow(unused_variables)]
14959 let offset = encoder.out_of_line_offset(bytes_len);
14960 let mut _prev_end_offset: usize = 0;
14961
14962 Ok(())
14963 }
14964 }
14965
14966 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14967 for AudioCompressedFormatLc3
14968 {
14969 #[inline(always)]
14970 fn new_empty() -> Self {
14971 Self::default()
14972 }
14973
14974 unsafe fn decode(
14975 &mut self,
14976 decoder: &mut fidl::encoding::Decoder<'_, D>,
14977 offset: usize,
14978 mut depth: fidl::encoding::Depth,
14979 ) -> fidl::Result<()> {
14980 decoder.debug_check_bounds::<Self>(offset);
14981 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14982 None => return Err(fidl::Error::NotNullable),
14983 Some(len) => len,
14984 };
14985 if len == 0 {
14987 return Ok(());
14988 };
14989 depth.increment()?;
14990 let envelope_size = 8;
14991 let bytes_len = len * envelope_size;
14992 let offset = decoder.out_of_line_offset(bytes_len)?;
14993 let mut _next_ordinal_to_read = 0;
14995 let mut next_offset = offset;
14996 let end_offset = offset + bytes_len;
14997
14998 while next_offset < end_offset {
15000 _next_ordinal_to_read += 1;
15001 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15002 next_offset += envelope_size;
15003 }
15004
15005 Ok(())
15006 }
15007 }
15008
15009 impl AudioConsumerStatus {
15010 #[inline(always)]
15011 fn max_ordinal_present(&self) -> u64 {
15012 if let Some(_) = self.max_lead_time {
15013 return 4;
15014 }
15015 if let Some(_) = self.min_lead_time {
15016 return 3;
15017 }
15018 if let Some(_) = self.presentation_timeline {
15019 return 2;
15020 }
15021 if let Some(_) = self.error {
15022 return 1;
15023 }
15024 0
15025 }
15026 }
15027
15028 impl fidl::encoding::ValueTypeMarker for AudioConsumerStatus {
15029 type Borrowed<'a> = &'a Self;
15030 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15031 value
15032 }
15033 }
15034
15035 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStatus {
15036 type Owned = Self;
15037
15038 #[inline(always)]
15039 fn inline_align(_context: fidl::encoding::Context) -> usize {
15040 8
15041 }
15042
15043 #[inline(always)]
15044 fn inline_size(_context: fidl::encoding::Context) -> usize {
15045 16
15046 }
15047 }
15048
15049 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioConsumerStatus, D>
15050 for &AudioConsumerStatus
15051 {
15052 unsafe fn encode(
15053 self,
15054 encoder: &mut fidl::encoding::Encoder<'_, D>,
15055 offset: usize,
15056 mut depth: fidl::encoding::Depth,
15057 ) -> fidl::Result<()> {
15058 encoder.debug_check_bounds::<AudioConsumerStatus>(offset);
15059 let max_ordinal: u64 = self.max_ordinal_present();
15061 encoder.write_num(max_ordinal, offset);
15062 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15063 if max_ordinal == 0 {
15065 return Ok(());
15066 }
15067 depth.increment()?;
15068 let envelope_size = 8;
15069 let bytes_len = max_ordinal as usize * envelope_size;
15070 #[allow(unused_variables)]
15071 let offset = encoder.out_of_line_offset(bytes_len);
15072 let mut _prev_end_offset: usize = 0;
15073 if 1 > max_ordinal {
15074 return Ok(());
15075 }
15076
15077 let cur_offset: usize = (1 - 1) * envelope_size;
15080
15081 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15083
15084 fidl::encoding::encode_in_envelope_optional::<AudioConsumerError, D>(
15089 self.error
15090 .as_ref()
15091 .map(<AudioConsumerError as fidl::encoding::ValueTypeMarker>::borrow),
15092 encoder,
15093 offset + cur_offset,
15094 depth,
15095 )?;
15096
15097 _prev_end_offset = cur_offset + envelope_size;
15098 if 2 > max_ordinal {
15099 return Ok(());
15100 }
15101
15102 let cur_offset: usize = (2 - 1) * envelope_size;
15105
15106 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15108
15109 fidl::encoding::encode_in_envelope_optional::<TimelineFunction, D>(
15114 self.presentation_timeline
15115 .as_ref()
15116 .map(<TimelineFunction as fidl::encoding::ValueTypeMarker>::borrow),
15117 encoder,
15118 offset + cur_offset,
15119 depth,
15120 )?;
15121
15122 _prev_end_offset = cur_offset + envelope_size;
15123 if 3 > max_ordinal {
15124 return Ok(());
15125 }
15126
15127 let cur_offset: usize = (3 - 1) * envelope_size;
15130
15131 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15133
15134 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15139 self.min_lead_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15140 encoder,
15141 offset + cur_offset,
15142 depth,
15143 )?;
15144
15145 _prev_end_offset = cur_offset + envelope_size;
15146 if 4 > max_ordinal {
15147 return Ok(());
15148 }
15149
15150 let cur_offset: usize = (4 - 1) * envelope_size;
15153
15154 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15156
15157 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15162 self.max_lead_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15163 encoder,
15164 offset + cur_offset,
15165 depth,
15166 )?;
15167
15168 _prev_end_offset = cur_offset + envelope_size;
15169
15170 Ok(())
15171 }
15172 }
15173
15174 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioConsumerStatus {
15175 #[inline(always)]
15176 fn new_empty() -> Self {
15177 Self::default()
15178 }
15179
15180 unsafe fn decode(
15181 &mut self,
15182 decoder: &mut fidl::encoding::Decoder<'_, D>,
15183 offset: usize,
15184 mut depth: fidl::encoding::Depth,
15185 ) -> fidl::Result<()> {
15186 decoder.debug_check_bounds::<Self>(offset);
15187 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15188 None => return Err(fidl::Error::NotNullable),
15189 Some(len) => len,
15190 };
15191 if len == 0 {
15193 return Ok(());
15194 };
15195 depth.increment()?;
15196 let envelope_size = 8;
15197 let bytes_len = len * envelope_size;
15198 let offset = decoder.out_of_line_offset(bytes_len)?;
15199 let mut _next_ordinal_to_read = 0;
15201 let mut next_offset = offset;
15202 let end_offset = offset + bytes_len;
15203 _next_ordinal_to_read += 1;
15204 if next_offset >= end_offset {
15205 return Ok(());
15206 }
15207
15208 while _next_ordinal_to_read < 1 {
15210 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15211 _next_ordinal_to_read += 1;
15212 next_offset += envelope_size;
15213 }
15214
15215 let next_out_of_line = decoder.next_out_of_line();
15216 let handles_before = decoder.remaining_handles();
15217 if let Some((inlined, num_bytes, num_handles)) =
15218 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15219 {
15220 let member_inline_size =
15221 <AudioConsumerError as fidl::encoding::TypeMarker>::inline_size(
15222 decoder.context,
15223 );
15224 if inlined != (member_inline_size <= 4) {
15225 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15226 }
15227 let inner_offset;
15228 let mut inner_depth = depth.clone();
15229 if inlined {
15230 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15231 inner_offset = next_offset;
15232 } else {
15233 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15234 inner_depth.increment()?;
15235 }
15236 let val_ref =
15237 self.error.get_or_insert_with(|| fidl::new_empty!(AudioConsumerError, D));
15238 fidl::decode!(AudioConsumerError, D, val_ref, decoder, inner_offset, inner_depth)?;
15239 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15240 {
15241 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15242 }
15243 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15244 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15245 }
15246 }
15247
15248 next_offset += envelope_size;
15249 _next_ordinal_to_read += 1;
15250 if next_offset >= end_offset {
15251 return Ok(());
15252 }
15253
15254 while _next_ordinal_to_read < 2 {
15256 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15257 _next_ordinal_to_read += 1;
15258 next_offset += envelope_size;
15259 }
15260
15261 let next_out_of_line = decoder.next_out_of_line();
15262 let handles_before = decoder.remaining_handles();
15263 if let Some((inlined, num_bytes, num_handles)) =
15264 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15265 {
15266 let member_inline_size =
15267 <TimelineFunction as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15268 if inlined != (member_inline_size <= 4) {
15269 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15270 }
15271 let inner_offset;
15272 let mut inner_depth = depth.clone();
15273 if inlined {
15274 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15275 inner_offset = next_offset;
15276 } else {
15277 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15278 inner_depth.increment()?;
15279 }
15280 let val_ref = self
15281 .presentation_timeline
15282 .get_or_insert_with(|| fidl::new_empty!(TimelineFunction, D));
15283 fidl::decode!(TimelineFunction, D, val_ref, decoder, inner_offset, inner_depth)?;
15284 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15285 {
15286 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15287 }
15288 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15289 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15290 }
15291 }
15292
15293 next_offset += envelope_size;
15294 _next_ordinal_to_read += 1;
15295 if next_offset >= end_offset {
15296 return Ok(());
15297 }
15298
15299 while _next_ordinal_to_read < 3 {
15301 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15302 _next_ordinal_to_read += 1;
15303 next_offset += envelope_size;
15304 }
15305
15306 let next_out_of_line = decoder.next_out_of_line();
15307 let handles_before = decoder.remaining_handles();
15308 if let Some((inlined, num_bytes, num_handles)) =
15309 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15310 {
15311 let member_inline_size =
15312 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15313 if inlined != (member_inline_size <= 4) {
15314 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15315 }
15316 let inner_offset;
15317 let mut inner_depth = depth.clone();
15318 if inlined {
15319 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15320 inner_offset = next_offset;
15321 } else {
15322 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15323 inner_depth.increment()?;
15324 }
15325 let val_ref = self.min_lead_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
15326 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15327 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15328 {
15329 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15330 }
15331 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15332 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15333 }
15334 }
15335
15336 next_offset += envelope_size;
15337 _next_ordinal_to_read += 1;
15338 if next_offset >= end_offset {
15339 return Ok(());
15340 }
15341
15342 while _next_ordinal_to_read < 4 {
15344 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15345 _next_ordinal_to_read += 1;
15346 next_offset += envelope_size;
15347 }
15348
15349 let next_out_of_line = decoder.next_out_of_line();
15350 let handles_before = decoder.remaining_handles();
15351 if let Some((inlined, num_bytes, num_handles)) =
15352 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15353 {
15354 let member_inline_size =
15355 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15356 if inlined != (member_inline_size <= 4) {
15357 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15358 }
15359 let inner_offset;
15360 let mut inner_depth = depth.clone();
15361 if inlined {
15362 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15363 inner_offset = next_offset;
15364 } else {
15365 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15366 inner_depth.increment()?;
15367 }
15368 let val_ref = self.max_lead_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
15369 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15370 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15371 {
15372 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15373 }
15374 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15375 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15376 }
15377 }
15378
15379 next_offset += envelope_size;
15380
15381 while next_offset < end_offset {
15383 _next_ordinal_to_read += 1;
15384 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15385 next_offset += envelope_size;
15386 }
15387
15388 Ok(())
15389 }
15390 }
15391
15392 impl CvsdEncoderSettings {
15393 #[inline(always)]
15394 fn max_ordinal_present(&self) -> u64 {
15395 0
15396 }
15397 }
15398
15399 impl fidl::encoding::ValueTypeMarker for CvsdEncoderSettings {
15400 type Borrowed<'a> = &'a Self;
15401 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15402 value
15403 }
15404 }
15405
15406 unsafe impl fidl::encoding::TypeMarker for CvsdEncoderSettings {
15407 type Owned = Self;
15408
15409 #[inline(always)]
15410 fn inline_align(_context: fidl::encoding::Context) -> usize {
15411 8
15412 }
15413
15414 #[inline(always)]
15415 fn inline_size(_context: fidl::encoding::Context) -> usize {
15416 16
15417 }
15418 }
15419
15420 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CvsdEncoderSettings, D>
15421 for &CvsdEncoderSettings
15422 {
15423 unsafe fn encode(
15424 self,
15425 encoder: &mut fidl::encoding::Encoder<'_, D>,
15426 offset: usize,
15427 mut depth: fidl::encoding::Depth,
15428 ) -> fidl::Result<()> {
15429 encoder.debug_check_bounds::<CvsdEncoderSettings>(offset);
15430 let max_ordinal: u64 = self.max_ordinal_present();
15432 encoder.write_num(max_ordinal, offset);
15433 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15434 if max_ordinal == 0 {
15436 return Ok(());
15437 }
15438 depth.increment()?;
15439 let envelope_size = 8;
15440 let bytes_len = max_ordinal as usize * envelope_size;
15441 #[allow(unused_variables)]
15442 let offset = encoder.out_of_line_offset(bytes_len);
15443 let mut _prev_end_offset: usize = 0;
15444
15445 Ok(())
15446 }
15447 }
15448
15449 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CvsdEncoderSettings {
15450 #[inline(always)]
15451 fn new_empty() -> Self {
15452 Self::default()
15453 }
15454
15455 unsafe fn decode(
15456 &mut self,
15457 decoder: &mut fidl::encoding::Decoder<'_, D>,
15458 offset: usize,
15459 mut depth: fidl::encoding::Depth,
15460 ) -> fidl::Result<()> {
15461 decoder.debug_check_bounds::<Self>(offset);
15462 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15463 None => return Err(fidl::Error::NotNullable),
15464 Some(len) => len,
15465 };
15466 if len == 0 {
15468 return Ok(());
15469 };
15470 depth.increment()?;
15471 let envelope_size = 8;
15472 let bytes_len = len * envelope_size;
15473 let offset = decoder.out_of_line_offset(bytes_len)?;
15474 let mut _next_ordinal_to_read = 0;
15476 let mut next_offset = offset;
15477 let end_offset = offset + bytes_len;
15478
15479 while next_offset < end_offset {
15481 _next_ordinal_to_read += 1;
15482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15483 next_offset += envelope_size;
15484 }
15485
15486 Ok(())
15487 }
15488 }
15489
15490 impl DecryptedFormat {
15491 #[inline(always)]
15492 fn max_ordinal_present(&self) -> u64 {
15493 if let Some(_) = self.ignore_this_field {
15494 return 1;
15495 }
15496 0
15497 }
15498 }
15499
15500 impl fidl::encoding::ValueTypeMarker for DecryptedFormat {
15501 type Borrowed<'a> = &'a Self;
15502 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15503 value
15504 }
15505 }
15506
15507 unsafe impl fidl::encoding::TypeMarker for DecryptedFormat {
15508 type Owned = Self;
15509
15510 #[inline(always)]
15511 fn inline_align(_context: fidl::encoding::Context) -> usize {
15512 8
15513 }
15514
15515 #[inline(always)]
15516 fn inline_size(_context: fidl::encoding::Context) -> usize {
15517 16
15518 }
15519 }
15520
15521 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DecryptedFormat, D>
15522 for &DecryptedFormat
15523 {
15524 unsafe fn encode(
15525 self,
15526 encoder: &mut fidl::encoding::Encoder<'_, D>,
15527 offset: usize,
15528 mut depth: fidl::encoding::Depth,
15529 ) -> fidl::Result<()> {
15530 encoder.debug_check_bounds::<DecryptedFormat>(offset);
15531 let max_ordinal: u64 = self.max_ordinal_present();
15533 encoder.write_num(max_ordinal, offset);
15534 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15535 if max_ordinal == 0 {
15537 return Ok(());
15538 }
15539 depth.increment()?;
15540 let envelope_size = 8;
15541 let bytes_len = max_ordinal as usize * envelope_size;
15542 #[allow(unused_variables)]
15543 let offset = encoder.out_of_line_offset(bytes_len);
15544 let mut _prev_end_offset: usize = 0;
15545 if 1 > max_ordinal {
15546 return Ok(());
15547 }
15548
15549 let cur_offset: usize = (1 - 1) * envelope_size;
15552
15553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15555
15556 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15561 self.ignore_this_field
15562 .as_ref()
15563 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15564 encoder,
15565 offset + cur_offset,
15566 depth,
15567 )?;
15568
15569 _prev_end_offset = cur_offset + envelope_size;
15570
15571 Ok(())
15572 }
15573 }
15574
15575 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DecryptedFormat {
15576 #[inline(always)]
15577 fn new_empty() -> Self {
15578 Self::default()
15579 }
15580
15581 unsafe fn decode(
15582 &mut self,
15583 decoder: &mut fidl::encoding::Decoder<'_, D>,
15584 offset: usize,
15585 mut depth: fidl::encoding::Depth,
15586 ) -> fidl::Result<()> {
15587 decoder.debug_check_bounds::<Self>(offset);
15588 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15589 None => return Err(fidl::Error::NotNullable),
15590 Some(len) => len,
15591 };
15592 if len == 0 {
15594 return Ok(());
15595 };
15596 depth.increment()?;
15597 let envelope_size = 8;
15598 let bytes_len = len * envelope_size;
15599 let offset = decoder.out_of_line_offset(bytes_len)?;
15600 let mut _next_ordinal_to_read = 0;
15602 let mut next_offset = offset;
15603 let end_offset = offset + bytes_len;
15604 _next_ordinal_to_read += 1;
15605 if next_offset >= end_offset {
15606 return Ok(());
15607 }
15608
15609 while _next_ordinal_to_read < 1 {
15611 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15612 _next_ordinal_to_read += 1;
15613 next_offset += envelope_size;
15614 }
15615
15616 let next_out_of_line = decoder.next_out_of_line();
15617 let handles_before = decoder.remaining_handles();
15618 if let Some((inlined, num_bytes, num_handles)) =
15619 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15620 {
15621 let member_inline_size =
15622 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15623 if inlined != (member_inline_size <= 4) {
15624 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15625 }
15626 let inner_offset;
15627 let mut inner_depth = depth.clone();
15628 if inlined {
15629 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15630 inner_offset = next_offset;
15631 } else {
15632 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15633 inner_depth.increment()?;
15634 }
15635 let val_ref =
15636 self.ignore_this_field.get_or_insert_with(|| fidl::new_empty!(bool, D));
15637 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15638 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15639 {
15640 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15641 }
15642 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15643 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15644 }
15645 }
15646
15647 next_offset += envelope_size;
15648
15649 while next_offset < end_offset {
15651 _next_ordinal_to_read += 1;
15652 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15653 next_offset += envelope_size;
15654 }
15655
15656 Ok(())
15657 }
15658 }
15659
15660 impl EncryptedFormat {
15661 #[inline(always)]
15662 fn max_ordinal_present(&self) -> u64 {
15663 if let Some(_) = self.key_id {
15664 return 8;
15665 }
15666 if let Some(_) = self.scheme {
15667 return 6;
15668 }
15669 if let Some(_) = self.pattern {
15670 return 5;
15671 }
15672 if let Some(_) = self.subsamples {
15673 return 4;
15674 }
15675 if let Some(_) = self.init_vector {
15676 return 3;
15677 }
15678 0
15679 }
15680 }
15681
15682 impl fidl::encoding::ValueTypeMarker for EncryptedFormat {
15683 type Borrowed<'a> = &'a Self;
15684 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15685 value
15686 }
15687 }
15688
15689 unsafe impl fidl::encoding::TypeMarker for EncryptedFormat {
15690 type Owned = Self;
15691
15692 #[inline(always)]
15693 fn inline_align(_context: fidl::encoding::Context) -> usize {
15694 8
15695 }
15696
15697 #[inline(always)]
15698 fn inline_size(_context: fidl::encoding::Context) -> usize {
15699 16
15700 }
15701 }
15702
15703 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncryptedFormat, D>
15704 for &EncryptedFormat
15705 {
15706 unsafe fn encode(
15707 self,
15708 encoder: &mut fidl::encoding::Encoder<'_, D>,
15709 offset: usize,
15710 mut depth: fidl::encoding::Depth,
15711 ) -> fidl::Result<()> {
15712 encoder.debug_check_bounds::<EncryptedFormat>(offset);
15713 let max_ordinal: u64 = self.max_ordinal_present();
15715 encoder.write_num(max_ordinal, offset);
15716 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15717 if max_ordinal == 0 {
15719 return Ok(());
15720 }
15721 depth.increment()?;
15722 let envelope_size = 8;
15723 let bytes_len = max_ordinal as usize * envelope_size;
15724 #[allow(unused_variables)]
15725 let offset = encoder.out_of_line_offset(bytes_len);
15726 let mut _prev_end_offset: usize = 0;
15727 if 3 > max_ordinal {
15728 return Ok(());
15729 }
15730
15731 let cur_offset: usize = (3 - 1) * envelope_size;
15734
15735 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15737
15738 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 16>, D>(
15743 self.init_vector.as_ref().map(
15744 <fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
15745 ),
15746 encoder,
15747 offset + cur_offset,
15748 depth,
15749 )?;
15750
15751 _prev_end_offset = cur_offset + envelope_size;
15752 if 4 > max_ordinal {
15753 return Ok(());
15754 }
15755
15756 let cur_offset: usize = (4 - 1) * envelope_size;
15759
15760 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15762
15763 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SubsampleEntry>, D>(
15768 self.subsamples.as_ref().map(<fidl::encoding::UnboundedVector<SubsampleEntry> as fidl::encoding::ValueTypeMarker>::borrow),
15769 encoder, offset + cur_offset, depth
15770 )?;
15771
15772 _prev_end_offset = cur_offset + envelope_size;
15773 if 5 > max_ordinal {
15774 return Ok(());
15775 }
15776
15777 let cur_offset: usize = (5 - 1) * envelope_size;
15780
15781 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15783
15784 fidl::encoding::encode_in_envelope_optional::<EncryptionPattern, D>(
15789 self.pattern
15790 .as_ref()
15791 .map(<EncryptionPattern as fidl::encoding::ValueTypeMarker>::borrow),
15792 encoder,
15793 offset + cur_offset,
15794 depth,
15795 )?;
15796
15797 _prev_end_offset = cur_offset + envelope_size;
15798 if 6 > max_ordinal {
15799 return Ok(());
15800 }
15801
15802 let cur_offset: usize = (6 - 1) * envelope_size;
15805
15806 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15808
15809 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
15814 self.scheme.as_ref().map(
15815 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
15816 ),
15817 encoder,
15818 offset + cur_offset,
15819 depth,
15820 )?;
15821
15822 _prev_end_offset = cur_offset + envelope_size;
15823 if 8 > max_ordinal {
15824 return Ok(());
15825 }
15826
15827 let cur_offset: usize = (8 - 1) * envelope_size;
15830
15831 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15833
15834 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 16>, D>(
15839 self.key_id.as_ref().map(
15840 <fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
15841 ),
15842 encoder,
15843 offset + cur_offset,
15844 depth,
15845 )?;
15846
15847 _prev_end_offset = cur_offset + envelope_size;
15848
15849 Ok(())
15850 }
15851 }
15852
15853 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncryptedFormat {
15854 #[inline(always)]
15855 fn new_empty() -> Self {
15856 Self::default()
15857 }
15858
15859 unsafe fn decode(
15860 &mut self,
15861 decoder: &mut fidl::encoding::Decoder<'_, D>,
15862 offset: usize,
15863 mut depth: fidl::encoding::Depth,
15864 ) -> fidl::Result<()> {
15865 decoder.debug_check_bounds::<Self>(offset);
15866 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15867 None => return Err(fidl::Error::NotNullable),
15868 Some(len) => len,
15869 };
15870 if len == 0 {
15872 return Ok(());
15873 };
15874 depth.increment()?;
15875 let envelope_size = 8;
15876 let bytes_len = len * envelope_size;
15877 let offset = decoder.out_of_line_offset(bytes_len)?;
15878 let mut _next_ordinal_to_read = 0;
15880 let mut next_offset = offset;
15881 let end_offset = offset + bytes_len;
15882 _next_ordinal_to_read += 1;
15883 if next_offset >= end_offset {
15884 return Ok(());
15885 }
15886
15887 while _next_ordinal_to_read < 3 {
15889 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15890 _next_ordinal_to_read += 1;
15891 next_offset += envelope_size;
15892 }
15893
15894 let next_out_of_line = decoder.next_out_of_line();
15895 let handles_before = decoder.remaining_handles();
15896 if let Some((inlined, num_bytes, num_handles)) =
15897 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15898 {
15899 let member_inline_size =
15900 <fidl::encoding::Vector<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
15901 decoder.context,
15902 );
15903 if inlined != (member_inline_size <= 4) {
15904 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15905 }
15906 let inner_offset;
15907 let mut inner_depth = depth.clone();
15908 if inlined {
15909 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15910 inner_offset = next_offset;
15911 } else {
15912 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15913 inner_depth.increment()?;
15914 }
15915 let val_ref = self
15916 .init_vector
15917 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D));
15918 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
15919 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15920 {
15921 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15922 }
15923 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15924 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15925 }
15926 }
15927
15928 next_offset += envelope_size;
15929 _next_ordinal_to_read += 1;
15930 if next_offset >= end_offset {
15931 return Ok(());
15932 }
15933
15934 while _next_ordinal_to_read < 4 {
15936 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15937 _next_ordinal_to_read += 1;
15938 next_offset += envelope_size;
15939 }
15940
15941 let next_out_of_line = decoder.next_out_of_line();
15942 let handles_before = decoder.remaining_handles();
15943 if let Some((inlined, num_bytes, num_handles)) =
15944 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15945 {
15946 let member_inline_size = <fidl::encoding::UnboundedVector<SubsampleEntry> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15947 if inlined != (member_inline_size <= 4) {
15948 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15949 }
15950 let inner_offset;
15951 let mut inner_depth = depth.clone();
15952 if inlined {
15953 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15954 inner_offset = next_offset;
15955 } else {
15956 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15957 inner_depth.increment()?;
15958 }
15959 let val_ref = self.subsamples.get_or_insert_with(|| {
15960 fidl::new_empty!(fidl::encoding::UnboundedVector<SubsampleEntry>, D)
15961 });
15962 fidl::decode!(
15963 fidl::encoding::UnboundedVector<SubsampleEntry>,
15964 D,
15965 val_ref,
15966 decoder,
15967 inner_offset,
15968 inner_depth
15969 )?;
15970 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15971 {
15972 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15973 }
15974 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15975 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15976 }
15977 }
15978
15979 next_offset += envelope_size;
15980 _next_ordinal_to_read += 1;
15981 if next_offset >= end_offset {
15982 return Ok(());
15983 }
15984
15985 while _next_ordinal_to_read < 5 {
15987 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15988 _next_ordinal_to_read += 1;
15989 next_offset += envelope_size;
15990 }
15991
15992 let next_out_of_line = decoder.next_out_of_line();
15993 let handles_before = decoder.remaining_handles();
15994 if let Some((inlined, num_bytes, num_handles)) =
15995 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15996 {
15997 let member_inline_size =
15998 <EncryptionPattern as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15999 if inlined != (member_inline_size <= 4) {
16000 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16001 }
16002 let inner_offset;
16003 let mut inner_depth = depth.clone();
16004 if inlined {
16005 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16006 inner_offset = next_offset;
16007 } else {
16008 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16009 inner_depth.increment()?;
16010 }
16011 let val_ref =
16012 self.pattern.get_or_insert_with(|| fidl::new_empty!(EncryptionPattern, D));
16013 fidl::decode!(EncryptionPattern, D, val_ref, decoder, inner_offset, inner_depth)?;
16014 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16015 {
16016 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16017 }
16018 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16019 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16020 }
16021 }
16022
16023 next_offset += envelope_size;
16024 _next_ordinal_to_read += 1;
16025 if next_offset >= end_offset {
16026 return Ok(());
16027 }
16028
16029 while _next_ordinal_to_read < 6 {
16031 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16032 _next_ordinal_to_read += 1;
16033 next_offset += envelope_size;
16034 }
16035
16036 let next_out_of_line = decoder.next_out_of_line();
16037 let handles_before = decoder.remaining_handles();
16038 if let Some((inlined, num_bytes, num_handles)) =
16039 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16040 {
16041 let member_inline_size =
16042 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
16043 decoder.context,
16044 );
16045 if inlined != (member_inline_size <= 4) {
16046 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16047 }
16048 let inner_offset;
16049 let mut inner_depth = depth.clone();
16050 if inlined {
16051 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16052 inner_offset = next_offset;
16053 } else {
16054 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16055 inner_depth.increment()?;
16056 }
16057 let val_ref = self
16058 .scheme
16059 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
16060 fidl::decode!(
16061 fidl::encoding::UnboundedString,
16062 D,
16063 val_ref,
16064 decoder,
16065 inner_offset,
16066 inner_depth
16067 )?;
16068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16069 {
16070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16071 }
16072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16074 }
16075 }
16076
16077 next_offset += envelope_size;
16078 _next_ordinal_to_read += 1;
16079 if next_offset >= end_offset {
16080 return Ok(());
16081 }
16082
16083 while _next_ordinal_to_read < 8 {
16085 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16086 _next_ordinal_to_read += 1;
16087 next_offset += envelope_size;
16088 }
16089
16090 let next_out_of_line = decoder.next_out_of_line();
16091 let handles_before = decoder.remaining_handles();
16092 if let Some((inlined, num_bytes, num_handles)) =
16093 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16094 {
16095 let member_inline_size =
16096 <fidl::encoding::Vector<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
16097 decoder.context,
16098 );
16099 if inlined != (member_inline_size <= 4) {
16100 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16101 }
16102 let inner_offset;
16103 let mut inner_depth = depth.clone();
16104 if inlined {
16105 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16106 inner_offset = next_offset;
16107 } else {
16108 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16109 inner_depth.increment()?;
16110 }
16111 let val_ref = self
16112 .key_id
16113 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D));
16114 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16115 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16116 {
16117 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16118 }
16119 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16120 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16121 }
16122 }
16123
16124 next_offset += envelope_size;
16125
16126 while next_offset < end_offset {
16128 _next_ordinal_to_read += 1;
16129 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16130 next_offset += envelope_size;
16131 }
16132
16133 Ok(())
16134 }
16135 }
16136
16137 impl FormatDetails {
16138 #[inline(always)]
16139 fn max_ordinal_present(&self) -> u64 {
16140 if let Some(_) = self.profile {
16141 return 8;
16142 }
16143 if let Some(_) = self.timebase {
16144 return 7;
16145 }
16146 if let Some(_) = self.encoder_settings {
16147 return 6;
16148 }
16149 if let Some(_) = self.pass_through_parameters {
16150 return 5;
16151 }
16152 if let Some(_) = self.domain {
16153 return 4;
16154 }
16155 if let Some(_) = self.oob_bytes {
16156 return 3;
16157 }
16158 if let Some(_) = self.mime_type {
16159 return 2;
16160 }
16161 if let Some(_) = self.format_details_version_ordinal {
16162 return 1;
16163 }
16164 0
16165 }
16166 }
16167
16168 impl fidl::encoding::ValueTypeMarker for FormatDetails {
16169 type Borrowed<'a> = &'a Self;
16170 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16171 value
16172 }
16173 }
16174
16175 unsafe impl fidl::encoding::TypeMarker for FormatDetails {
16176 type Owned = Self;
16177
16178 #[inline(always)]
16179 fn inline_align(_context: fidl::encoding::Context) -> usize {
16180 8
16181 }
16182
16183 #[inline(always)]
16184 fn inline_size(_context: fidl::encoding::Context) -> usize {
16185 16
16186 }
16187 }
16188
16189 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FormatDetails, D>
16190 for &FormatDetails
16191 {
16192 unsafe fn encode(
16193 self,
16194 encoder: &mut fidl::encoding::Encoder<'_, D>,
16195 offset: usize,
16196 mut depth: fidl::encoding::Depth,
16197 ) -> fidl::Result<()> {
16198 encoder.debug_check_bounds::<FormatDetails>(offset);
16199 let max_ordinal: u64 = self.max_ordinal_present();
16201 encoder.write_num(max_ordinal, offset);
16202 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16203 if max_ordinal == 0 {
16205 return Ok(());
16206 }
16207 depth.increment()?;
16208 let envelope_size = 8;
16209 let bytes_len = max_ordinal as usize * envelope_size;
16210 #[allow(unused_variables)]
16211 let offset = encoder.out_of_line_offset(bytes_len);
16212 let mut _prev_end_offset: usize = 0;
16213 if 1 > max_ordinal {
16214 return Ok(());
16215 }
16216
16217 let cur_offset: usize = (1 - 1) * envelope_size;
16220
16221 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16223
16224 fidl::encoding::encode_in_envelope_optional::<u64, D>(
16229 self.format_details_version_ordinal
16230 .as_ref()
16231 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
16232 encoder,
16233 offset + cur_offset,
16234 depth,
16235 )?;
16236
16237 _prev_end_offset = cur_offset + envelope_size;
16238 if 2 > max_ordinal {
16239 return Ok(());
16240 }
16241
16242 let cur_offset: usize = (2 - 1) * envelope_size;
16245
16246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16248
16249 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
16254 self.mime_type.as_ref().map(
16255 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
16256 ),
16257 encoder,
16258 offset + cur_offset,
16259 depth,
16260 )?;
16261
16262 _prev_end_offset = cur_offset + envelope_size;
16263 if 3 > max_ordinal {
16264 return Ok(());
16265 }
16266
16267 let cur_offset: usize = (3 - 1) * envelope_size;
16270
16271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16273
16274 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16279 self.oob_bytes.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16280 encoder, offset + cur_offset, depth
16281 )?;
16282
16283 _prev_end_offset = cur_offset + envelope_size;
16284 if 4 > max_ordinal {
16285 return Ok(());
16286 }
16287
16288 let cur_offset: usize = (4 - 1) * envelope_size;
16291
16292 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16294
16295 fidl::encoding::encode_in_envelope_optional::<DomainFormat, D>(
16300 self.domain.as_ref().map(<DomainFormat as fidl::encoding::ValueTypeMarker>::borrow),
16301 encoder,
16302 offset + cur_offset,
16303 depth,
16304 )?;
16305
16306 _prev_end_offset = cur_offset + envelope_size;
16307 if 5 > max_ordinal {
16308 return Ok(());
16309 }
16310
16311 let cur_offset: usize = (5 - 1) * envelope_size;
16314
16315 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16317
16318 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Parameter>, D>(
16323 self.pass_through_parameters.as_ref().map(<fidl::encoding::UnboundedVector<Parameter> as fidl::encoding::ValueTypeMarker>::borrow),
16324 encoder, offset + cur_offset, depth
16325 )?;
16326
16327 _prev_end_offset = cur_offset + envelope_size;
16328 if 6 > max_ordinal {
16329 return Ok(());
16330 }
16331
16332 let cur_offset: usize = (6 - 1) * envelope_size;
16335
16336 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16338
16339 fidl::encoding::encode_in_envelope_optional::<EncoderSettings, D>(
16344 self.encoder_settings
16345 .as_ref()
16346 .map(<EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow),
16347 encoder,
16348 offset + cur_offset,
16349 depth,
16350 )?;
16351
16352 _prev_end_offset = cur_offset + envelope_size;
16353 if 7 > max_ordinal {
16354 return Ok(());
16355 }
16356
16357 let cur_offset: usize = (7 - 1) * envelope_size;
16360
16361 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16363
16364 fidl::encoding::encode_in_envelope_optional::<u64, D>(
16369 self.timebase.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
16370 encoder,
16371 offset + cur_offset,
16372 depth,
16373 )?;
16374
16375 _prev_end_offset = cur_offset + envelope_size;
16376 if 8 > max_ordinal {
16377 return Ok(());
16378 }
16379
16380 let cur_offset: usize = (8 - 1) * envelope_size;
16383
16384 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16386
16387 fidl::encoding::encode_in_envelope_optional::<CodecProfile, D>(
16392 self.profile
16393 .as_ref()
16394 .map(<CodecProfile as fidl::encoding::ValueTypeMarker>::borrow),
16395 encoder,
16396 offset + cur_offset,
16397 depth,
16398 )?;
16399
16400 _prev_end_offset = cur_offset + envelope_size;
16401
16402 Ok(())
16403 }
16404 }
16405
16406 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FormatDetails {
16407 #[inline(always)]
16408 fn new_empty() -> Self {
16409 Self::default()
16410 }
16411
16412 unsafe fn decode(
16413 &mut self,
16414 decoder: &mut fidl::encoding::Decoder<'_, D>,
16415 offset: usize,
16416 mut depth: fidl::encoding::Depth,
16417 ) -> fidl::Result<()> {
16418 decoder.debug_check_bounds::<Self>(offset);
16419 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16420 None => return Err(fidl::Error::NotNullable),
16421 Some(len) => len,
16422 };
16423 if len == 0 {
16425 return Ok(());
16426 };
16427 depth.increment()?;
16428 let envelope_size = 8;
16429 let bytes_len = len * envelope_size;
16430 let offset = decoder.out_of_line_offset(bytes_len)?;
16431 let mut _next_ordinal_to_read = 0;
16433 let mut next_offset = offset;
16434 let end_offset = offset + bytes_len;
16435 _next_ordinal_to_read += 1;
16436 if next_offset >= end_offset {
16437 return Ok(());
16438 }
16439
16440 while _next_ordinal_to_read < 1 {
16442 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16443 _next_ordinal_to_read += 1;
16444 next_offset += envelope_size;
16445 }
16446
16447 let next_out_of_line = decoder.next_out_of_line();
16448 let handles_before = decoder.remaining_handles();
16449 if let Some((inlined, num_bytes, num_handles)) =
16450 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16451 {
16452 let member_inline_size =
16453 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16454 if inlined != (member_inline_size <= 4) {
16455 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16456 }
16457 let inner_offset;
16458 let mut inner_depth = depth.clone();
16459 if inlined {
16460 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16461 inner_offset = next_offset;
16462 } else {
16463 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16464 inner_depth.increment()?;
16465 }
16466 let val_ref = self
16467 .format_details_version_ordinal
16468 .get_or_insert_with(|| fidl::new_empty!(u64, D));
16469 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
16470 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16471 {
16472 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16473 }
16474 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16475 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16476 }
16477 }
16478
16479 next_offset += envelope_size;
16480 _next_ordinal_to_read += 1;
16481 if next_offset >= end_offset {
16482 return Ok(());
16483 }
16484
16485 while _next_ordinal_to_read < 2 {
16487 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16488 _next_ordinal_to_read += 1;
16489 next_offset += envelope_size;
16490 }
16491
16492 let next_out_of_line = decoder.next_out_of_line();
16493 let handles_before = decoder.remaining_handles();
16494 if let Some((inlined, num_bytes, num_handles)) =
16495 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16496 {
16497 let member_inline_size =
16498 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
16499 decoder.context,
16500 );
16501 if inlined != (member_inline_size <= 4) {
16502 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16503 }
16504 let inner_offset;
16505 let mut inner_depth = depth.clone();
16506 if inlined {
16507 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16508 inner_offset = next_offset;
16509 } else {
16510 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16511 inner_depth.increment()?;
16512 }
16513 let val_ref = self
16514 .mime_type
16515 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
16516 fidl::decode!(
16517 fidl::encoding::UnboundedString,
16518 D,
16519 val_ref,
16520 decoder,
16521 inner_offset,
16522 inner_depth
16523 )?;
16524 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16525 {
16526 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16527 }
16528 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16529 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16530 }
16531 }
16532
16533 next_offset += envelope_size;
16534 _next_ordinal_to_read += 1;
16535 if next_offset >= end_offset {
16536 return Ok(());
16537 }
16538
16539 while _next_ordinal_to_read < 3 {
16541 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16542 _next_ordinal_to_read += 1;
16543 next_offset += envelope_size;
16544 }
16545
16546 let next_out_of_line = decoder.next_out_of_line();
16547 let handles_before = decoder.remaining_handles();
16548 if let Some((inlined, num_bytes, num_handles)) =
16549 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16550 {
16551 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16552 if inlined != (member_inline_size <= 4) {
16553 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16554 }
16555 let inner_offset;
16556 let mut inner_depth = depth.clone();
16557 if inlined {
16558 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16559 inner_offset = next_offset;
16560 } else {
16561 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16562 inner_depth.increment()?;
16563 }
16564 let val_ref = self.oob_bytes.get_or_insert_with(|| {
16565 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16566 });
16567 fidl::decode!(
16568 fidl::encoding::UnboundedVector<u8>,
16569 D,
16570 val_ref,
16571 decoder,
16572 inner_offset,
16573 inner_depth
16574 )?;
16575 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16576 {
16577 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16578 }
16579 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16580 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16581 }
16582 }
16583
16584 next_offset += envelope_size;
16585 _next_ordinal_to_read += 1;
16586 if next_offset >= end_offset {
16587 return Ok(());
16588 }
16589
16590 while _next_ordinal_to_read < 4 {
16592 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16593 _next_ordinal_to_read += 1;
16594 next_offset += envelope_size;
16595 }
16596
16597 let next_out_of_line = decoder.next_out_of_line();
16598 let handles_before = decoder.remaining_handles();
16599 if let Some((inlined, num_bytes, num_handles)) =
16600 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16601 {
16602 let member_inline_size =
16603 <DomainFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16604 if inlined != (member_inline_size <= 4) {
16605 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16606 }
16607 let inner_offset;
16608 let mut inner_depth = depth.clone();
16609 if inlined {
16610 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16611 inner_offset = next_offset;
16612 } else {
16613 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16614 inner_depth.increment()?;
16615 }
16616 let val_ref = self.domain.get_or_insert_with(|| fidl::new_empty!(DomainFormat, D));
16617 fidl::decode!(DomainFormat, D, val_ref, decoder, inner_offset, inner_depth)?;
16618 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16619 {
16620 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16621 }
16622 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16623 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16624 }
16625 }
16626
16627 next_offset += envelope_size;
16628 _next_ordinal_to_read += 1;
16629 if next_offset >= end_offset {
16630 return Ok(());
16631 }
16632
16633 while _next_ordinal_to_read < 5 {
16635 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16636 _next_ordinal_to_read += 1;
16637 next_offset += envelope_size;
16638 }
16639
16640 let next_out_of_line = decoder.next_out_of_line();
16641 let handles_before = decoder.remaining_handles();
16642 if let Some((inlined, num_bytes, num_handles)) =
16643 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16644 {
16645 let member_inline_size = <fidl::encoding::UnboundedVector<Parameter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16646 if inlined != (member_inline_size <= 4) {
16647 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16648 }
16649 let inner_offset;
16650 let mut inner_depth = depth.clone();
16651 if inlined {
16652 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16653 inner_offset = next_offset;
16654 } else {
16655 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16656 inner_depth.increment()?;
16657 }
16658 let val_ref = self.pass_through_parameters.get_or_insert_with(|| {
16659 fidl::new_empty!(fidl::encoding::UnboundedVector<Parameter>, D)
16660 });
16661 fidl::decode!(
16662 fidl::encoding::UnboundedVector<Parameter>,
16663 D,
16664 val_ref,
16665 decoder,
16666 inner_offset,
16667 inner_depth
16668 )?;
16669 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16670 {
16671 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16672 }
16673 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16674 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16675 }
16676 }
16677
16678 next_offset += envelope_size;
16679 _next_ordinal_to_read += 1;
16680 if next_offset >= end_offset {
16681 return Ok(());
16682 }
16683
16684 while _next_ordinal_to_read < 6 {
16686 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16687 _next_ordinal_to_read += 1;
16688 next_offset += envelope_size;
16689 }
16690
16691 let next_out_of_line = decoder.next_out_of_line();
16692 let handles_before = decoder.remaining_handles();
16693 if let Some((inlined, num_bytes, num_handles)) =
16694 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16695 {
16696 let member_inline_size =
16697 <EncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16698 if inlined != (member_inline_size <= 4) {
16699 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16700 }
16701 let inner_offset;
16702 let mut inner_depth = depth.clone();
16703 if inlined {
16704 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16705 inner_offset = next_offset;
16706 } else {
16707 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16708 inner_depth.increment()?;
16709 }
16710 let val_ref = self
16711 .encoder_settings
16712 .get_or_insert_with(|| fidl::new_empty!(EncoderSettings, D));
16713 fidl::decode!(EncoderSettings, D, val_ref, decoder, inner_offset, inner_depth)?;
16714 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16715 {
16716 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16717 }
16718 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16719 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16720 }
16721 }
16722
16723 next_offset += envelope_size;
16724 _next_ordinal_to_read += 1;
16725 if next_offset >= end_offset {
16726 return Ok(());
16727 }
16728
16729 while _next_ordinal_to_read < 7 {
16731 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16732 _next_ordinal_to_read += 1;
16733 next_offset += envelope_size;
16734 }
16735
16736 let next_out_of_line = decoder.next_out_of_line();
16737 let handles_before = decoder.remaining_handles();
16738 if let Some((inlined, num_bytes, num_handles)) =
16739 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16740 {
16741 let member_inline_size =
16742 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16743 if inlined != (member_inline_size <= 4) {
16744 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16745 }
16746 let inner_offset;
16747 let mut inner_depth = depth.clone();
16748 if inlined {
16749 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16750 inner_offset = next_offset;
16751 } else {
16752 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16753 inner_depth.increment()?;
16754 }
16755 let val_ref = self.timebase.get_or_insert_with(|| fidl::new_empty!(u64, D));
16756 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
16757 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16758 {
16759 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16760 }
16761 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16762 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16763 }
16764 }
16765
16766 next_offset += envelope_size;
16767 _next_ordinal_to_read += 1;
16768 if next_offset >= end_offset {
16769 return Ok(());
16770 }
16771
16772 while _next_ordinal_to_read < 8 {
16774 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16775 _next_ordinal_to_read += 1;
16776 next_offset += envelope_size;
16777 }
16778
16779 let next_out_of_line = decoder.next_out_of_line();
16780 let handles_before = decoder.remaining_handles();
16781 if let Some((inlined, num_bytes, num_handles)) =
16782 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16783 {
16784 let member_inline_size =
16785 <CodecProfile as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16786 if inlined != (member_inline_size <= 4) {
16787 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16788 }
16789 let inner_offset;
16790 let mut inner_depth = depth.clone();
16791 if inlined {
16792 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16793 inner_offset = next_offset;
16794 } else {
16795 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16796 inner_depth.increment()?;
16797 }
16798 let val_ref = self.profile.get_or_insert_with(|| fidl::new_empty!(CodecProfile, D));
16799 fidl::decode!(CodecProfile, D, val_ref, decoder, inner_offset, inner_depth)?;
16800 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16801 {
16802 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16803 }
16804 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16805 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16806 }
16807 }
16808
16809 next_offset += envelope_size;
16810
16811 while next_offset < end_offset {
16813 _next_ordinal_to_read += 1;
16814 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16815 next_offset += envelope_size;
16816 }
16817
16818 Ok(())
16819 }
16820 }
16821
16822 impl H264EncoderSettings {
16823 #[inline(always)]
16824 fn max_ordinal_present(&self) -> u64 {
16825 if let Some(_) = self.quantization_params {
16826 return 7;
16827 }
16828 if let Some(_) = self.force_key_frame {
16829 return 6;
16830 }
16831 if let Some(_) = self.min_frame_rate {
16832 return 5;
16833 }
16834 if let Some(_) = self.variable_frame_rate {
16835 return 4;
16836 }
16837 if let Some(_) = self.gop_size {
16838 return 3;
16839 }
16840 if let Some(_) = self.frame_rate {
16841 return 2;
16842 }
16843 if let Some(_) = self.bit_rate {
16844 return 1;
16845 }
16846 0
16847 }
16848 }
16849
16850 impl fidl::encoding::ValueTypeMarker for H264EncoderSettings {
16851 type Borrowed<'a> = &'a Self;
16852 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16853 value
16854 }
16855 }
16856
16857 unsafe impl fidl::encoding::TypeMarker for H264EncoderSettings {
16858 type Owned = Self;
16859
16860 #[inline(always)]
16861 fn inline_align(_context: fidl::encoding::Context) -> usize {
16862 8
16863 }
16864
16865 #[inline(always)]
16866 fn inline_size(_context: fidl::encoding::Context) -> usize {
16867 16
16868 }
16869 }
16870
16871 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<H264EncoderSettings, D>
16872 for &H264EncoderSettings
16873 {
16874 unsafe fn encode(
16875 self,
16876 encoder: &mut fidl::encoding::Encoder<'_, D>,
16877 offset: usize,
16878 mut depth: fidl::encoding::Depth,
16879 ) -> fidl::Result<()> {
16880 encoder.debug_check_bounds::<H264EncoderSettings>(offset);
16881 let max_ordinal: u64 = self.max_ordinal_present();
16883 encoder.write_num(max_ordinal, offset);
16884 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16885 if max_ordinal == 0 {
16887 return Ok(());
16888 }
16889 depth.increment()?;
16890 let envelope_size = 8;
16891 let bytes_len = max_ordinal as usize * envelope_size;
16892 #[allow(unused_variables)]
16893 let offset = encoder.out_of_line_offset(bytes_len);
16894 let mut _prev_end_offset: usize = 0;
16895 if 1 > max_ordinal {
16896 return Ok(());
16897 }
16898
16899 let cur_offset: usize = (1 - 1) * envelope_size;
16902
16903 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16905
16906 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16911 self.bit_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16912 encoder,
16913 offset + cur_offset,
16914 depth,
16915 )?;
16916
16917 _prev_end_offset = cur_offset + envelope_size;
16918 if 2 > max_ordinal {
16919 return Ok(());
16920 }
16921
16922 let cur_offset: usize = (2 - 1) * envelope_size;
16925
16926 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16928
16929 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16934 self.frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16935 encoder,
16936 offset + cur_offset,
16937 depth,
16938 )?;
16939
16940 _prev_end_offset = cur_offset + envelope_size;
16941 if 3 > max_ordinal {
16942 return Ok(());
16943 }
16944
16945 let cur_offset: usize = (3 - 1) * envelope_size;
16948
16949 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16951
16952 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16957 self.gop_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16958 encoder,
16959 offset + cur_offset,
16960 depth,
16961 )?;
16962
16963 _prev_end_offset = cur_offset + envelope_size;
16964 if 4 > max_ordinal {
16965 return Ok(());
16966 }
16967
16968 let cur_offset: usize = (4 - 1) * envelope_size;
16971
16972 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16974
16975 fidl::encoding::encode_in_envelope_optional::<bool, D>(
16980 self.variable_frame_rate
16981 .as_ref()
16982 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
16983 encoder,
16984 offset + cur_offset,
16985 depth,
16986 )?;
16987
16988 _prev_end_offset = cur_offset + envelope_size;
16989 if 5 > max_ordinal {
16990 return Ok(());
16991 }
16992
16993 let cur_offset: usize = (5 - 1) * envelope_size;
16996
16997 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16999
17000 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17005 self.min_frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17006 encoder,
17007 offset + cur_offset,
17008 depth,
17009 )?;
17010
17011 _prev_end_offset = cur_offset + envelope_size;
17012 if 6 > max_ordinal {
17013 return Ok(());
17014 }
17015
17016 let cur_offset: usize = (6 - 1) * envelope_size;
17019
17020 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17022
17023 fidl::encoding::encode_in_envelope_optional::<bool, D>(
17028 self.force_key_frame
17029 .as_ref()
17030 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
17031 encoder,
17032 offset + cur_offset,
17033 depth,
17034 )?;
17035
17036 _prev_end_offset = cur_offset + envelope_size;
17037 if 7 > max_ordinal {
17038 return Ok(());
17039 }
17040
17041 let cur_offset: usize = (7 - 1) * envelope_size;
17044
17045 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17047
17048 fidl::encoding::encode_in_envelope_optional::<H264QuantizationParameters, D>(
17053 self.quantization_params
17054 .as_ref()
17055 .map(<H264QuantizationParameters as fidl::encoding::ValueTypeMarker>::borrow),
17056 encoder,
17057 offset + cur_offset,
17058 depth,
17059 )?;
17060
17061 _prev_end_offset = cur_offset + envelope_size;
17062
17063 Ok(())
17064 }
17065 }
17066
17067 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for H264EncoderSettings {
17068 #[inline(always)]
17069 fn new_empty() -> Self {
17070 Self::default()
17071 }
17072
17073 unsafe fn decode(
17074 &mut self,
17075 decoder: &mut fidl::encoding::Decoder<'_, D>,
17076 offset: usize,
17077 mut depth: fidl::encoding::Depth,
17078 ) -> fidl::Result<()> {
17079 decoder.debug_check_bounds::<Self>(offset);
17080 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17081 None => return Err(fidl::Error::NotNullable),
17082 Some(len) => len,
17083 };
17084 if len == 0 {
17086 return Ok(());
17087 };
17088 depth.increment()?;
17089 let envelope_size = 8;
17090 let bytes_len = len * envelope_size;
17091 let offset = decoder.out_of_line_offset(bytes_len)?;
17092 let mut _next_ordinal_to_read = 0;
17094 let mut next_offset = offset;
17095 let end_offset = offset + bytes_len;
17096 _next_ordinal_to_read += 1;
17097 if next_offset >= end_offset {
17098 return Ok(());
17099 }
17100
17101 while _next_ordinal_to_read < 1 {
17103 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17104 _next_ordinal_to_read += 1;
17105 next_offset += envelope_size;
17106 }
17107
17108 let next_out_of_line = decoder.next_out_of_line();
17109 let handles_before = decoder.remaining_handles();
17110 if let Some((inlined, num_bytes, num_handles)) =
17111 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17112 {
17113 let member_inline_size =
17114 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17115 if inlined != (member_inline_size <= 4) {
17116 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17117 }
17118 let inner_offset;
17119 let mut inner_depth = depth.clone();
17120 if inlined {
17121 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17122 inner_offset = next_offset;
17123 } else {
17124 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17125 inner_depth.increment()?;
17126 }
17127 let val_ref = self.bit_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17128 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17129 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17130 {
17131 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17132 }
17133 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17134 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17135 }
17136 }
17137
17138 next_offset += envelope_size;
17139 _next_ordinal_to_read += 1;
17140 if next_offset >= end_offset {
17141 return Ok(());
17142 }
17143
17144 while _next_ordinal_to_read < 2 {
17146 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17147 _next_ordinal_to_read += 1;
17148 next_offset += envelope_size;
17149 }
17150
17151 let next_out_of_line = decoder.next_out_of_line();
17152 let handles_before = decoder.remaining_handles();
17153 if let Some((inlined, num_bytes, num_handles)) =
17154 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17155 {
17156 let member_inline_size =
17157 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17158 if inlined != (member_inline_size <= 4) {
17159 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17160 }
17161 let inner_offset;
17162 let mut inner_depth = depth.clone();
17163 if inlined {
17164 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17165 inner_offset = next_offset;
17166 } else {
17167 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17168 inner_depth.increment()?;
17169 }
17170 let val_ref = self.frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17171 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17172 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17173 {
17174 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17175 }
17176 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17177 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17178 }
17179 }
17180
17181 next_offset += envelope_size;
17182 _next_ordinal_to_read += 1;
17183 if next_offset >= end_offset {
17184 return Ok(());
17185 }
17186
17187 while _next_ordinal_to_read < 3 {
17189 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17190 _next_ordinal_to_read += 1;
17191 next_offset += envelope_size;
17192 }
17193
17194 let next_out_of_line = decoder.next_out_of_line();
17195 let handles_before = decoder.remaining_handles();
17196 if let Some((inlined, num_bytes, num_handles)) =
17197 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17198 {
17199 let member_inline_size =
17200 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17201 if inlined != (member_inline_size <= 4) {
17202 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17203 }
17204 let inner_offset;
17205 let mut inner_depth = depth.clone();
17206 if inlined {
17207 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17208 inner_offset = next_offset;
17209 } else {
17210 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17211 inner_depth.increment()?;
17212 }
17213 let val_ref = self.gop_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
17214 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17215 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17216 {
17217 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17218 }
17219 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17220 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17221 }
17222 }
17223
17224 next_offset += envelope_size;
17225 _next_ordinal_to_read += 1;
17226 if next_offset >= end_offset {
17227 return Ok(());
17228 }
17229
17230 while _next_ordinal_to_read < 4 {
17232 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17233 _next_ordinal_to_read += 1;
17234 next_offset += envelope_size;
17235 }
17236
17237 let next_out_of_line = decoder.next_out_of_line();
17238 let handles_before = decoder.remaining_handles();
17239 if let Some((inlined, num_bytes, num_handles)) =
17240 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17241 {
17242 let member_inline_size =
17243 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17244 if inlined != (member_inline_size <= 4) {
17245 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17246 }
17247 let inner_offset;
17248 let mut inner_depth = depth.clone();
17249 if inlined {
17250 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17251 inner_offset = next_offset;
17252 } else {
17253 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17254 inner_depth.increment()?;
17255 }
17256 let val_ref =
17257 self.variable_frame_rate.get_or_insert_with(|| fidl::new_empty!(bool, D));
17258 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
17259 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17260 {
17261 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17262 }
17263 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17264 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17265 }
17266 }
17267
17268 next_offset += envelope_size;
17269 _next_ordinal_to_read += 1;
17270 if next_offset >= end_offset {
17271 return Ok(());
17272 }
17273
17274 while _next_ordinal_to_read < 5 {
17276 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17277 _next_ordinal_to_read += 1;
17278 next_offset += envelope_size;
17279 }
17280
17281 let next_out_of_line = decoder.next_out_of_line();
17282 let handles_before = decoder.remaining_handles();
17283 if let Some((inlined, num_bytes, num_handles)) =
17284 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17285 {
17286 let member_inline_size =
17287 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17288 if inlined != (member_inline_size <= 4) {
17289 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17290 }
17291 let inner_offset;
17292 let mut inner_depth = depth.clone();
17293 if inlined {
17294 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17295 inner_offset = next_offset;
17296 } else {
17297 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17298 inner_depth.increment()?;
17299 }
17300 let val_ref = self.min_frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17301 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17302 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17303 {
17304 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17305 }
17306 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17307 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17308 }
17309 }
17310
17311 next_offset += envelope_size;
17312 _next_ordinal_to_read += 1;
17313 if next_offset >= end_offset {
17314 return Ok(());
17315 }
17316
17317 while _next_ordinal_to_read < 6 {
17319 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17320 _next_ordinal_to_read += 1;
17321 next_offset += envelope_size;
17322 }
17323
17324 let next_out_of_line = decoder.next_out_of_line();
17325 let handles_before = decoder.remaining_handles();
17326 if let Some((inlined, num_bytes, num_handles)) =
17327 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17328 {
17329 let member_inline_size =
17330 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17331 if inlined != (member_inline_size <= 4) {
17332 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17333 }
17334 let inner_offset;
17335 let mut inner_depth = depth.clone();
17336 if inlined {
17337 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17338 inner_offset = next_offset;
17339 } else {
17340 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17341 inner_depth.increment()?;
17342 }
17343 let val_ref = self.force_key_frame.get_or_insert_with(|| fidl::new_empty!(bool, D));
17344 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
17345 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17346 {
17347 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17348 }
17349 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17350 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17351 }
17352 }
17353
17354 next_offset += envelope_size;
17355 _next_ordinal_to_read += 1;
17356 if next_offset >= end_offset {
17357 return Ok(());
17358 }
17359
17360 while _next_ordinal_to_read < 7 {
17362 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17363 _next_ordinal_to_read += 1;
17364 next_offset += envelope_size;
17365 }
17366
17367 let next_out_of_line = decoder.next_out_of_line();
17368 let handles_before = decoder.remaining_handles();
17369 if let Some((inlined, num_bytes, num_handles)) =
17370 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17371 {
17372 let member_inline_size =
17373 <H264QuantizationParameters as fidl::encoding::TypeMarker>::inline_size(
17374 decoder.context,
17375 );
17376 if inlined != (member_inline_size <= 4) {
17377 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17378 }
17379 let inner_offset;
17380 let mut inner_depth = depth.clone();
17381 if inlined {
17382 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17383 inner_offset = next_offset;
17384 } else {
17385 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17386 inner_depth.increment()?;
17387 }
17388 let val_ref = self
17389 .quantization_params
17390 .get_or_insert_with(|| fidl::new_empty!(H264QuantizationParameters, D));
17391 fidl::decode!(
17392 H264QuantizationParameters,
17393 D,
17394 val_ref,
17395 decoder,
17396 inner_offset,
17397 inner_depth
17398 )?;
17399 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17400 {
17401 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17402 }
17403 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17404 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17405 }
17406 }
17407
17408 next_offset += envelope_size;
17409
17410 while next_offset < end_offset {
17412 _next_ordinal_to_read += 1;
17413 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17414 next_offset += envelope_size;
17415 }
17416
17417 Ok(())
17418 }
17419 }
17420
17421 impl H264QuantizationParameters {
17422 #[inline(always)]
17423 fn max_ordinal_present(&self) -> u64 {
17424 if let Some(_) = self.p_max {
17425 return 6;
17426 }
17427 if let Some(_) = self.p_min {
17428 return 5;
17429 }
17430 if let Some(_) = self.p_base {
17431 return 4;
17432 }
17433 if let Some(_) = self.i_max {
17434 return 3;
17435 }
17436 if let Some(_) = self.i_min {
17437 return 2;
17438 }
17439 if let Some(_) = self.i_base {
17440 return 1;
17441 }
17442 0
17443 }
17444 }
17445
17446 impl fidl::encoding::ValueTypeMarker for H264QuantizationParameters {
17447 type Borrowed<'a> = &'a Self;
17448 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17449 value
17450 }
17451 }
17452
17453 unsafe impl fidl::encoding::TypeMarker for H264QuantizationParameters {
17454 type Owned = Self;
17455
17456 #[inline(always)]
17457 fn inline_align(_context: fidl::encoding::Context) -> usize {
17458 8
17459 }
17460
17461 #[inline(always)]
17462 fn inline_size(_context: fidl::encoding::Context) -> usize {
17463 16
17464 }
17465 }
17466
17467 unsafe impl<D: fidl::encoding::ResourceDialect>
17468 fidl::encoding::Encode<H264QuantizationParameters, D> for &H264QuantizationParameters
17469 {
17470 unsafe fn encode(
17471 self,
17472 encoder: &mut fidl::encoding::Encoder<'_, D>,
17473 offset: usize,
17474 mut depth: fidl::encoding::Depth,
17475 ) -> fidl::Result<()> {
17476 encoder.debug_check_bounds::<H264QuantizationParameters>(offset);
17477 let max_ordinal: u64 = self.max_ordinal_present();
17479 encoder.write_num(max_ordinal, offset);
17480 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17481 if max_ordinal == 0 {
17483 return Ok(());
17484 }
17485 depth.increment()?;
17486 let envelope_size = 8;
17487 let bytes_len = max_ordinal as usize * envelope_size;
17488 #[allow(unused_variables)]
17489 let offset = encoder.out_of_line_offset(bytes_len);
17490 let mut _prev_end_offset: usize = 0;
17491 if 1 > max_ordinal {
17492 return Ok(());
17493 }
17494
17495 let cur_offset: usize = (1 - 1) * envelope_size;
17498
17499 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17501
17502 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17507 self.i_base.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17508 encoder,
17509 offset + cur_offset,
17510 depth,
17511 )?;
17512
17513 _prev_end_offset = cur_offset + envelope_size;
17514 if 2 > max_ordinal {
17515 return Ok(());
17516 }
17517
17518 let cur_offset: usize = (2 - 1) * envelope_size;
17521
17522 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17524
17525 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17530 self.i_min.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17531 encoder,
17532 offset + cur_offset,
17533 depth,
17534 )?;
17535
17536 _prev_end_offset = cur_offset + envelope_size;
17537 if 3 > max_ordinal {
17538 return Ok(());
17539 }
17540
17541 let cur_offset: usize = (3 - 1) * envelope_size;
17544
17545 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17547
17548 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17553 self.i_max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17554 encoder,
17555 offset + cur_offset,
17556 depth,
17557 )?;
17558
17559 _prev_end_offset = cur_offset + envelope_size;
17560 if 4 > max_ordinal {
17561 return Ok(());
17562 }
17563
17564 let cur_offset: usize = (4 - 1) * envelope_size;
17567
17568 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17570
17571 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17576 self.p_base.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17577 encoder,
17578 offset + cur_offset,
17579 depth,
17580 )?;
17581
17582 _prev_end_offset = cur_offset + envelope_size;
17583 if 5 > max_ordinal {
17584 return Ok(());
17585 }
17586
17587 let cur_offset: usize = (5 - 1) * envelope_size;
17590
17591 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17593
17594 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17599 self.p_min.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17600 encoder,
17601 offset + cur_offset,
17602 depth,
17603 )?;
17604
17605 _prev_end_offset = cur_offset + envelope_size;
17606 if 6 > max_ordinal {
17607 return Ok(());
17608 }
17609
17610 let cur_offset: usize = (6 - 1) * envelope_size;
17613
17614 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17616
17617 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17622 self.p_max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17623 encoder,
17624 offset + cur_offset,
17625 depth,
17626 )?;
17627
17628 _prev_end_offset = cur_offset + envelope_size;
17629
17630 Ok(())
17631 }
17632 }
17633
17634 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17635 for H264QuantizationParameters
17636 {
17637 #[inline(always)]
17638 fn new_empty() -> Self {
17639 Self::default()
17640 }
17641
17642 unsafe fn decode(
17643 &mut self,
17644 decoder: &mut fidl::encoding::Decoder<'_, D>,
17645 offset: usize,
17646 mut depth: fidl::encoding::Depth,
17647 ) -> fidl::Result<()> {
17648 decoder.debug_check_bounds::<Self>(offset);
17649 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17650 None => return Err(fidl::Error::NotNullable),
17651 Some(len) => len,
17652 };
17653 if len == 0 {
17655 return Ok(());
17656 };
17657 depth.increment()?;
17658 let envelope_size = 8;
17659 let bytes_len = len * envelope_size;
17660 let offset = decoder.out_of_line_offset(bytes_len)?;
17661 let mut _next_ordinal_to_read = 0;
17663 let mut next_offset = offset;
17664 let end_offset = offset + bytes_len;
17665 _next_ordinal_to_read += 1;
17666 if next_offset >= end_offset {
17667 return Ok(());
17668 }
17669
17670 while _next_ordinal_to_read < 1 {
17672 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17673 _next_ordinal_to_read += 1;
17674 next_offset += envelope_size;
17675 }
17676
17677 let next_out_of_line = decoder.next_out_of_line();
17678 let handles_before = decoder.remaining_handles();
17679 if let Some((inlined, num_bytes, num_handles)) =
17680 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17681 {
17682 let member_inline_size =
17683 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17684 if inlined != (member_inline_size <= 4) {
17685 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17686 }
17687 let inner_offset;
17688 let mut inner_depth = depth.clone();
17689 if inlined {
17690 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17691 inner_offset = next_offset;
17692 } else {
17693 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17694 inner_depth.increment()?;
17695 }
17696 let val_ref = self.i_base.get_or_insert_with(|| fidl::new_empty!(u32, D));
17697 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17698 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17699 {
17700 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17701 }
17702 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17703 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17704 }
17705 }
17706
17707 next_offset += envelope_size;
17708 _next_ordinal_to_read += 1;
17709 if next_offset >= end_offset {
17710 return Ok(());
17711 }
17712
17713 while _next_ordinal_to_read < 2 {
17715 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17716 _next_ordinal_to_read += 1;
17717 next_offset += envelope_size;
17718 }
17719
17720 let next_out_of_line = decoder.next_out_of_line();
17721 let handles_before = decoder.remaining_handles();
17722 if let Some((inlined, num_bytes, num_handles)) =
17723 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17724 {
17725 let member_inline_size =
17726 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17727 if inlined != (member_inline_size <= 4) {
17728 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17729 }
17730 let inner_offset;
17731 let mut inner_depth = depth.clone();
17732 if inlined {
17733 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17734 inner_offset = next_offset;
17735 } else {
17736 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17737 inner_depth.increment()?;
17738 }
17739 let val_ref = self.i_min.get_or_insert_with(|| fidl::new_empty!(u32, D));
17740 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17741 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17742 {
17743 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17744 }
17745 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17746 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17747 }
17748 }
17749
17750 next_offset += envelope_size;
17751 _next_ordinal_to_read += 1;
17752 if next_offset >= end_offset {
17753 return Ok(());
17754 }
17755
17756 while _next_ordinal_to_read < 3 {
17758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17759 _next_ordinal_to_read += 1;
17760 next_offset += envelope_size;
17761 }
17762
17763 let next_out_of_line = decoder.next_out_of_line();
17764 let handles_before = decoder.remaining_handles();
17765 if let Some((inlined, num_bytes, num_handles)) =
17766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17767 {
17768 let member_inline_size =
17769 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17770 if inlined != (member_inline_size <= 4) {
17771 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17772 }
17773 let inner_offset;
17774 let mut inner_depth = depth.clone();
17775 if inlined {
17776 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17777 inner_offset = next_offset;
17778 } else {
17779 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17780 inner_depth.increment()?;
17781 }
17782 let val_ref = self.i_max.get_or_insert_with(|| fidl::new_empty!(u32, D));
17783 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17784 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17785 {
17786 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17787 }
17788 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17789 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17790 }
17791 }
17792
17793 next_offset += envelope_size;
17794 _next_ordinal_to_read += 1;
17795 if next_offset >= end_offset {
17796 return Ok(());
17797 }
17798
17799 while _next_ordinal_to_read < 4 {
17801 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17802 _next_ordinal_to_read += 1;
17803 next_offset += envelope_size;
17804 }
17805
17806 let next_out_of_line = decoder.next_out_of_line();
17807 let handles_before = decoder.remaining_handles();
17808 if let Some((inlined, num_bytes, num_handles)) =
17809 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17810 {
17811 let member_inline_size =
17812 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17813 if inlined != (member_inline_size <= 4) {
17814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17815 }
17816 let inner_offset;
17817 let mut inner_depth = depth.clone();
17818 if inlined {
17819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17820 inner_offset = next_offset;
17821 } else {
17822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17823 inner_depth.increment()?;
17824 }
17825 let val_ref = self.p_base.get_or_insert_with(|| fidl::new_empty!(u32, D));
17826 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17828 {
17829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17830 }
17831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17833 }
17834 }
17835
17836 next_offset += envelope_size;
17837 _next_ordinal_to_read += 1;
17838 if next_offset >= end_offset {
17839 return Ok(());
17840 }
17841
17842 while _next_ordinal_to_read < 5 {
17844 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17845 _next_ordinal_to_read += 1;
17846 next_offset += envelope_size;
17847 }
17848
17849 let next_out_of_line = decoder.next_out_of_line();
17850 let handles_before = decoder.remaining_handles();
17851 if let Some((inlined, num_bytes, num_handles)) =
17852 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17853 {
17854 let member_inline_size =
17855 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17856 if inlined != (member_inline_size <= 4) {
17857 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17858 }
17859 let inner_offset;
17860 let mut inner_depth = depth.clone();
17861 if inlined {
17862 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17863 inner_offset = next_offset;
17864 } else {
17865 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17866 inner_depth.increment()?;
17867 }
17868 let val_ref = self.p_min.get_or_insert_with(|| fidl::new_empty!(u32, D));
17869 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17870 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17871 {
17872 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17873 }
17874 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17875 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17876 }
17877 }
17878
17879 next_offset += envelope_size;
17880 _next_ordinal_to_read += 1;
17881 if next_offset >= end_offset {
17882 return Ok(());
17883 }
17884
17885 while _next_ordinal_to_read < 6 {
17887 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17888 _next_ordinal_to_read += 1;
17889 next_offset += envelope_size;
17890 }
17891
17892 let next_out_of_line = decoder.next_out_of_line();
17893 let handles_before = decoder.remaining_handles();
17894 if let Some((inlined, num_bytes, num_handles)) =
17895 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17896 {
17897 let member_inline_size =
17898 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17899 if inlined != (member_inline_size <= 4) {
17900 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17901 }
17902 let inner_offset;
17903 let mut inner_depth = depth.clone();
17904 if inlined {
17905 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17906 inner_offset = next_offset;
17907 } else {
17908 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17909 inner_depth.increment()?;
17910 }
17911 let val_ref = self.p_max.get_or_insert_with(|| fidl::new_empty!(u32, D));
17912 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17913 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17914 {
17915 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17916 }
17917 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17918 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17919 }
17920 }
17921
17922 next_offset += envelope_size;
17923
17924 while next_offset < end_offset {
17926 _next_ordinal_to_read += 1;
17927 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17928 next_offset += envelope_size;
17929 }
17930
17931 Ok(())
17932 }
17933 }
17934
17935 impl HevcEncoderSettings {
17936 #[inline(always)]
17937 fn max_ordinal_present(&self) -> u64 {
17938 if let Some(_) = self.gop_size {
17939 return 3;
17940 }
17941 if let Some(_) = self.frame_rate {
17942 return 2;
17943 }
17944 if let Some(_) = self.bit_rate {
17945 return 1;
17946 }
17947 0
17948 }
17949 }
17950
17951 impl fidl::encoding::ValueTypeMarker for HevcEncoderSettings {
17952 type Borrowed<'a> = &'a Self;
17953 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17954 value
17955 }
17956 }
17957
17958 unsafe impl fidl::encoding::TypeMarker for HevcEncoderSettings {
17959 type Owned = Self;
17960
17961 #[inline(always)]
17962 fn inline_align(_context: fidl::encoding::Context) -> usize {
17963 8
17964 }
17965
17966 #[inline(always)]
17967 fn inline_size(_context: fidl::encoding::Context) -> usize {
17968 16
17969 }
17970 }
17971
17972 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HevcEncoderSettings, D>
17973 for &HevcEncoderSettings
17974 {
17975 unsafe fn encode(
17976 self,
17977 encoder: &mut fidl::encoding::Encoder<'_, D>,
17978 offset: usize,
17979 mut depth: fidl::encoding::Depth,
17980 ) -> fidl::Result<()> {
17981 encoder.debug_check_bounds::<HevcEncoderSettings>(offset);
17982 let max_ordinal: u64 = self.max_ordinal_present();
17984 encoder.write_num(max_ordinal, offset);
17985 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17986 if max_ordinal == 0 {
17988 return Ok(());
17989 }
17990 depth.increment()?;
17991 let envelope_size = 8;
17992 let bytes_len = max_ordinal as usize * envelope_size;
17993 #[allow(unused_variables)]
17994 let offset = encoder.out_of_line_offset(bytes_len);
17995 let mut _prev_end_offset: usize = 0;
17996 if 1 > max_ordinal {
17997 return Ok(());
17998 }
17999
18000 let cur_offset: usize = (1 - 1) * envelope_size;
18003
18004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18006
18007 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18012 self.bit_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18013 encoder,
18014 offset + cur_offset,
18015 depth,
18016 )?;
18017
18018 _prev_end_offset = cur_offset + envelope_size;
18019 if 2 > max_ordinal {
18020 return Ok(());
18021 }
18022
18023 let cur_offset: usize = (2 - 1) * envelope_size;
18026
18027 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18029
18030 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18035 self.frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18036 encoder,
18037 offset + cur_offset,
18038 depth,
18039 )?;
18040
18041 _prev_end_offset = cur_offset + envelope_size;
18042 if 3 > max_ordinal {
18043 return Ok(());
18044 }
18045
18046 let cur_offset: usize = (3 - 1) * envelope_size;
18049
18050 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18052
18053 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18058 self.gop_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18059 encoder,
18060 offset + cur_offset,
18061 depth,
18062 )?;
18063
18064 _prev_end_offset = cur_offset + envelope_size;
18065
18066 Ok(())
18067 }
18068 }
18069
18070 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HevcEncoderSettings {
18071 #[inline(always)]
18072 fn new_empty() -> Self {
18073 Self::default()
18074 }
18075
18076 unsafe fn decode(
18077 &mut self,
18078 decoder: &mut fidl::encoding::Decoder<'_, D>,
18079 offset: usize,
18080 mut depth: fidl::encoding::Depth,
18081 ) -> fidl::Result<()> {
18082 decoder.debug_check_bounds::<Self>(offset);
18083 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18084 None => return Err(fidl::Error::NotNullable),
18085 Some(len) => len,
18086 };
18087 if len == 0 {
18089 return Ok(());
18090 };
18091 depth.increment()?;
18092 let envelope_size = 8;
18093 let bytes_len = len * envelope_size;
18094 let offset = decoder.out_of_line_offset(bytes_len)?;
18095 let mut _next_ordinal_to_read = 0;
18097 let mut next_offset = offset;
18098 let end_offset = offset + bytes_len;
18099 _next_ordinal_to_read += 1;
18100 if next_offset >= end_offset {
18101 return Ok(());
18102 }
18103
18104 while _next_ordinal_to_read < 1 {
18106 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18107 _next_ordinal_to_read += 1;
18108 next_offset += envelope_size;
18109 }
18110
18111 let next_out_of_line = decoder.next_out_of_line();
18112 let handles_before = decoder.remaining_handles();
18113 if let Some((inlined, num_bytes, num_handles)) =
18114 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18115 {
18116 let member_inline_size =
18117 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18118 if inlined != (member_inline_size <= 4) {
18119 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18120 }
18121 let inner_offset;
18122 let mut inner_depth = depth.clone();
18123 if inlined {
18124 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18125 inner_offset = next_offset;
18126 } else {
18127 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18128 inner_depth.increment()?;
18129 }
18130 let val_ref = self.bit_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
18131 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18132 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18133 {
18134 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18135 }
18136 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18137 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18138 }
18139 }
18140
18141 next_offset += envelope_size;
18142 _next_ordinal_to_read += 1;
18143 if next_offset >= end_offset {
18144 return Ok(());
18145 }
18146
18147 while _next_ordinal_to_read < 2 {
18149 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18150 _next_ordinal_to_read += 1;
18151 next_offset += envelope_size;
18152 }
18153
18154 let next_out_of_line = decoder.next_out_of_line();
18155 let handles_before = decoder.remaining_handles();
18156 if let Some((inlined, num_bytes, num_handles)) =
18157 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18158 {
18159 let member_inline_size =
18160 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18161 if inlined != (member_inline_size <= 4) {
18162 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18163 }
18164 let inner_offset;
18165 let mut inner_depth = depth.clone();
18166 if inlined {
18167 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18168 inner_offset = next_offset;
18169 } else {
18170 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18171 inner_depth.increment()?;
18172 }
18173 let val_ref = self.frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
18174 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18175 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18176 {
18177 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18178 }
18179 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18180 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18181 }
18182 }
18183
18184 next_offset += envelope_size;
18185 _next_ordinal_to_read += 1;
18186 if next_offset >= end_offset {
18187 return Ok(());
18188 }
18189
18190 while _next_ordinal_to_read < 3 {
18192 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18193 _next_ordinal_to_read += 1;
18194 next_offset += envelope_size;
18195 }
18196
18197 let next_out_of_line = decoder.next_out_of_line();
18198 let handles_before = decoder.remaining_handles();
18199 if let Some((inlined, num_bytes, num_handles)) =
18200 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18201 {
18202 let member_inline_size =
18203 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18204 if inlined != (member_inline_size <= 4) {
18205 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18206 }
18207 let inner_offset;
18208 let mut inner_depth = depth.clone();
18209 if inlined {
18210 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18211 inner_offset = next_offset;
18212 } else {
18213 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18214 inner_depth.increment()?;
18215 }
18216 let val_ref = self.gop_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
18217 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18218 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18219 {
18220 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18221 }
18222 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18223 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18224 }
18225 }
18226
18227 next_offset += envelope_size;
18228
18229 while next_offset < end_offset {
18231 _next_ordinal_to_read += 1;
18232 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18233 next_offset += envelope_size;
18234 }
18235
18236 Ok(())
18237 }
18238 }
18239
18240 impl InputAudioCapturerConfiguration {
18241 #[inline(always)]
18242 fn max_ordinal_present(&self) -> u64 {
18243 if let Some(_) = self.usage2 {
18244 return 2;
18245 }
18246 if let Some(_) = self.usage {
18247 return 1;
18248 }
18249 0
18250 }
18251 }
18252
18253 impl fidl::encoding::ValueTypeMarker for InputAudioCapturerConfiguration {
18254 type Borrowed<'a> = &'a Self;
18255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18256 value
18257 }
18258 }
18259
18260 unsafe impl fidl::encoding::TypeMarker for InputAudioCapturerConfiguration {
18261 type Owned = Self;
18262
18263 #[inline(always)]
18264 fn inline_align(_context: fidl::encoding::Context) -> usize {
18265 8
18266 }
18267
18268 #[inline(always)]
18269 fn inline_size(_context: fidl::encoding::Context) -> usize {
18270 16
18271 }
18272 }
18273
18274 unsafe impl<D: fidl::encoding::ResourceDialect>
18275 fidl::encoding::Encode<InputAudioCapturerConfiguration, D>
18276 for &InputAudioCapturerConfiguration
18277 {
18278 unsafe fn encode(
18279 self,
18280 encoder: &mut fidl::encoding::Encoder<'_, D>,
18281 offset: usize,
18282 mut depth: fidl::encoding::Depth,
18283 ) -> fidl::Result<()> {
18284 encoder.debug_check_bounds::<InputAudioCapturerConfiguration>(offset);
18285 let max_ordinal: u64 = self.max_ordinal_present();
18287 encoder.write_num(max_ordinal, offset);
18288 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18289 if max_ordinal == 0 {
18291 return Ok(());
18292 }
18293 depth.increment()?;
18294 let envelope_size = 8;
18295 let bytes_len = max_ordinal as usize * envelope_size;
18296 #[allow(unused_variables)]
18297 let offset = encoder.out_of_line_offset(bytes_len);
18298 let mut _prev_end_offset: usize = 0;
18299 if 1 > max_ordinal {
18300 return Ok(());
18301 }
18302
18303 let cur_offset: usize = (1 - 1) * envelope_size;
18306
18307 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18309
18310 fidl::encoding::encode_in_envelope_optional::<AudioCaptureUsage, D>(
18315 self.usage
18316 .as_ref()
18317 .map(<AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow),
18318 encoder,
18319 offset + cur_offset,
18320 depth,
18321 )?;
18322
18323 _prev_end_offset = cur_offset + envelope_size;
18324 if 2 > max_ordinal {
18325 return Ok(());
18326 }
18327
18328 let cur_offset: usize = (2 - 1) * envelope_size;
18331
18332 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18334
18335 fidl::encoding::encode_in_envelope_optional::<AudioCaptureUsage2, D>(
18340 self.usage2
18341 .as_ref()
18342 .map(<AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow),
18343 encoder,
18344 offset + cur_offset,
18345 depth,
18346 )?;
18347
18348 _prev_end_offset = cur_offset + envelope_size;
18349
18350 Ok(())
18351 }
18352 }
18353
18354 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
18355 for InputAudioCapturerConfiguration
18356 {
18357 #[inline(always)]
18358 fn new_empty() -> Self {
18359 Self::default()
18360 }
18361
18362 unsafe fn decode(
18363 &mut self,
18364 decoder: &mut fidl::encoding::Decoder<'_, D>,
18365 offset: usize,
18366 mut depth: fidl::encoding::Depth,
18367 ) -> fidl::Result<()> {
18368 decoder.debug_check_bounds::<Self>(offset);
18369 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18370 None => return Err(fidl::Error::NotNullable),
18371 Some(len) => len,
18372 };
18373 if len == 0 {
18375 return Ok(());
18376 };
18377 depth.increment()?;
18378 let envelope_size = 8;
18379 let bytes_len = len * envelope_size;
18380 let offset = decoder.out_of_line_offset(bytes_len)?;
18381 let mut _next_ordinal_to_read = 0;
18383 let mut next_offset = offset;
18384 let end_offset = offset + bytes_len;
18385 _next_ordinal_to_read += 1;
18386 if next_offset >= end_offset {
18387 return Ok(());
18388 }
18389
18390 while _next_ordinal_to_read < 1 {
18392 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18393 _next_ordinal_to_read += 1;
18394 next_offset += envelope_size;
18395 }
18396
18397 let next_out_of_line = decoder.next_out_of_line();
18398 let handles_before = decoder.remaining_handles();
18399 if let Some((inlined, num_bytes, num_handles)) =
18400 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18401 {
18402 let member_inline_size =
18403 <AudioCaptureUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18404 if inlined != (member_inline_size <= 4) {
18405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18406 }
18407 let inner_offset;
18408 let mut inner_depth = depth.clone();
18409 if inlined {
18410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18411 inner_offset = next_offset;
18412 } else {
18413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18414 inner_depth.increment()?;
18415 }
18416 let val_ref =
18417 self.usage.get_or_insert_with(|| fidl::new_empty!(AudioCaptureUsage, D));
18418 fidl::decode!(AudioCaptureUsage, D, val_ref, decoder, inner_offset, inner_depth)?;
18419 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18420 {
18421 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18422 }
18423 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18424 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18425 }
18426 }
18427
18428 next_offset += envelope_size;
18429 _next_ordinal_to_read += 1;
18430 if next_offset >= end_offset {
18431 return Ok(());
18432 }
18433
18434 while _next_ordinal_to_read < 2 {
18436 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18437 _next_ordinal_to_read += 1;
18438 next_offset += envelope_size;
18439 }
18440
18441 let next_out_of_line = decoder.next_out_of_line();
18442 let handles_before = decoder.remaining_handles();
18443 if let Some((inlined, num_bytes, num_handles)) =
18444 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18445 {
18446 let member_inline_size =
18447 <AudioCaptureUsage2 as fidl::encoding::TypeMarker>::inline_size(
18448 decoder.context,
18449 );
18450 if inlined != (member_inline_size <= 4) {
18451 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18452 }
18453 let inner_offset;
18454 let mut inner_depth = depth.clone();
18455 if inlined {
18456 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18457 inner_offset = next_offset;
18458 } else {
18459 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18460 inner_depth.increment()?;
18461 }
18462 let val_ref =
18463 self.usage2.get_or_insert_with(|| fidl::new_empty!(AudioCaptureUsage2, D));
18464 fidl::decode!(AudioCaptureUsage2, D, val_ref, decoder, inner_offset, inner_depth)?;
18465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18466 {
18467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18468 }
18469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18471 }
18472 }
18473
18474 next_offset += envelope_size;
18475
18476 while next_offset < end_offset {
18478 _next_ordinal_to_read += 1;
18479 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18480 next_offset += envelope_size;
18481 }
18482
18483 Ok(())
18484 }
18485 }
18486
18487 impl Lc3EncoderSettings {
18488 #[inline(always)]
18489 fn max_ordinal_present(&self) -> u64 {
18490 if let Some(_) = self.frame_duration {
18491 return 2;
18492 }
18493 if let Some(_) = self.nbytes {
18494 return 1;
18495 }
18496 0
18497 }
18498 }
18499
18500 impl fidl::encoding::ValueTypeMarker for Lc3EncoderSettings {
18501 type Borrowed<'a> = &'a Self;
18502 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18503 value
18504 }
18505 }
18506
18507 unsafe impl fidl::encoding::TypeMarker for Lc3EncoderSettings {
18508 type Owned = Self;
18509
18510 #[inline(always)]
18511 fn inline_align(_context: fidl::encoding::Context) -> usize {
18512 8
18513 }
18514
18515 #[inline(always)]
18516 fn inline_size(_context: fidl::encoding::Context) -> usize {
18517 16
18518 }
18519 }
18520
18521 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Lc3EncoderSettings, D>
18522 for &Lc3EncoderSettings
18523 {
18524 unsafe fn encode(
18525 self,
18526 encoder: &mut fidl::encoding::Encoder<'_, D>,
18527 offset: usize,
18528 mut depth: fidl::encoding::Depth,
18529 ) -> fidl::Result<()> {
18530 encoder.debug_check_bounds::<Lc3EncoderSettings>(offset);
18531 let max_ordinal: u64 = self.max_ordinal_present();
18533 encoder.write_num(max_ordinal, offset);
18534 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18535 if max_ordinal == 0 {
18537 return Ok(());
18538 }
18539 depth.increment()?;
18540 let envelope_size = 8;
18541 let bytes_len = max_ordinal as usize * envelope_size;
18542 #[allow(unused_variables)]
18543 let offset = encoder.out_of_line_offset(bytes_len);
18544 let mut _prev_end_offset: usize = 0;
18545 if 1 > max_ordinal {
18546 return Ok(());
18547 }
18548
18549 let cur_offset: usize = (1 - 1) * envelope_size;
18552
18553 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18555
18556 fidl::encoding::encode_in_envelope_optional::<u16, D>(
18561 self.nbytes.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
18562 encoder,
18563 offset + cur_offset,
18564 depth,
18565 )?;
18566
18567 _prev_end_offset = cur_offset + envelope_size;
18568 if 2 > max_ordinal {
18569 return Ok(());
18570 }
18571
18572 let cur_offset: usize = (2 - 1) * envelope_size;
18575
18576 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18578
18579 fidl::encoding::encode_in_envelope_optional::<Lc3FrameDuration, D>(
18584 self.frame_duration
18585 .as_ref()
18586 .map(<Lc3FrameDuration as fidl::encoding::ValueTypeMarker>::borrow),
18587 encoder,
18588 offset + cur_offset,
18589 depth,
18590 )?;
18591
18592 _prev_end_offset = cur_offset + envelope_size;
18593
18594 Ok(())
18595 }
18596 }
18597
18598 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Lc3EncoderSettings {
18599 #[inline(always)]
18600 fn new_empty() -> Self {
18601 Self::default()
18602 }
18603
18604 unsafe fn decode(
18605 &mut self,
18606 decoder: &mut fidl::encoding::Decoder<'_, D>,
18607 offset: usize,
18608 mut depth: fidl::encoding::Depth,
18609 ) -> fidl::Result<()> {
18610 decoder.debug_check_bounds::<Self>(offset);
18611 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18612 None => return Err(fidl::Error::NotNullable),
18613 Some(len) => len,
18614 };
18615 if len == 0 {
18617 return Ok(());
18618 };
18619 depth.increment()?;
18620 let envelope_size = 8;
18621 let bytes_len = len * envelope_size;
18622 let offset = decoder.out_of_line_offset(bytes_len)?;
18623 let mut _next_ordinal_to_read = 0;
18625 let mut next_offset = offset;
18626 let end_offset = offset + bytes_len;
18627 _next_ordinal_to_read += 1;
18628 if next_offset >= end_offset {
18629 return Ok(());
18630 }
18631
18632 while _next_ordinal_to_read < 1 {
18634 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18635 _next_ordinal_to_read += 1;
18636 next_offset += envelope_size;
18637 }
18638
18639 let next_out_of_line = decoder.next_out_of_line();
18640 let handles_before = decoder.remaining_handles();
18641 if let Some((inlined, num_bytes, num_handles)) =
18642 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18643 {
18644 let member_inline_size =
18645 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18646 if inlined != (member_inline_size <= 4) {
18647 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18648 }
18649 let inner_offset;
18650 let mut inner_depth = depth.clone();
18651 if inlined {
18652 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18653 inner_offset = next_offset;
18654 } else {
18655 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18656 inner_depth.increment()?;
18657 }
18658 let val_ref = self.nbytes.get_or_insert_with(|| fidl::new_empty!(u16, D));
18659 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
18660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18661 {
18662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18663 }
18664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18666 }
18667 }
18668
18669 next_offset += envelope_size;
18670 _next_ordinal_to_read += 1;
18671 if next_offset >= end_offset {
18672 return Ok(());
18673 }
18674
18675 while _next_ordinal_to_read < 2 {
18677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18678 _next_ordinal_to_read += 1;
18679 next_offset += envelope_size;
18680 }
18681
18682 let next_out_of_line = decoder.next_out_of_line();
18683 let handles_before = decoder.remaining_handles();
18684 if let Some((inlined, num_bytes, num_handles)) =
18685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18686 {
18687 let member_inline_size =
18688 <Lc3FrameDuration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18689 if inlined != (member_inline_size <= 4) {
18690 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18691 }
18692 let inner_offset;
18693 let mut inner_depth = depth.clone();
18694 if inlined {
18695 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18696 inner_offset = next_offset;
18697 } else {
18698 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18699 inner_depth.increment()?;
18700 }
18701 let val_ref = self
18702 .frame_duration
18703 .get_or_insert_with(|| fidl::new_empty!(Lc3FrameDuration, D));
18704 fidl::decode!(Lc3FrameDuration, D, val_ref, decoder, inner_offset, inner_depth)?;
18705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18706 {
18707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18708 }
18709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18711 }
18712 }
18713
18714 next_offset += envelope_size;
18715
18716 while next_offset < end_offset {
18718 _next_ordinal_to_read += 1;
18719 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18720 next_offset += envelope_size;
18721 }
18722
18723 Ok(())
18724 }
18725 }
18726
18727 impl LoopbackAudioCapturerConfiguration {
18728 #[inline(always)]
18729 fn max_ordinal_present(&self) -> u64 {
18730 0
18731 }
18732 }
18733
18734 impl fidl::encoding::ValueTypeMarker for LoopbackAudioCapturerConfiguration {
18735 type Borrowed<'a> = &'a Self;
18736 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18737 value
18738 }
18739 }
18740
18741 unsafe impl fidl::encoding::TypeMarker for LoopbackAudioCapturerConfiguration {
18742 type Owned = Self;
18743
18744 #[inline(always)]
18745 fn inline_align(_context: fidl::encoding::Context) -> usize {
18746 8
18747 }
18748
18749 #[inline(always)]
18750 fn inline_size(_context: fidl::encoding::Context) -> usize {
18751 16
18752 }
18753 }
18754
18755 unsafe impl<D: fidl::encoding::ResourceDialect>
18756 fidl::encoding::Encode<LoopbackAudioCapturerConfiguration, D>
18757 for &LoopbackAudioCapturerConfiguration
18758 {
18759 unsafe fn encode(
18760 self,
18761 encoder: &mut fidl::encoding::Encoder<'_, D>,
18762 offset: usize,
18763 mut depth: fidl::encoding::Depth,
18764 ) -> fidl::Result<()> {
18765 encoder.debug_check_bounds::<LoopbackAudioCapturerConfiguration>(offset);
18766 let max_ordinal: u64 = self.max_ordinal_present();
18768 encoder.write_num(max_ordinal, offset);
18769 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18770 if max_ordinal == 0 {
18772 return Ok(());
18773 }
18774 depth.increment()?;
18775 let envelope_size = 8;
18776 let bytes_len = max_ordinal as usize * envelope_size;
18777 #[allow(unused_variables)]
18778 let offset = encoder.out_of_line_offset(bytes_len);
18779 let mut _prev_end_offset: usize = 0;
18780
18781 Ok(())
18782 }
18783 }
18784
18785 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
18786 for LoopbackAudioCapturerConfiguration
18787 {
18788 #[inline(always)]
18789 fn new_empty() -> Self {
18790 Self::default()
18791 }
18792
18793 unsafe fn decode(
18794 &mut self,
18795 decoder: &mut fidl::encoding::Decoder<'_, D>,
18796 offset: usize,
18797 mut depth: fidl::encoding::Depth,
18798 ) -> fidl::Result<()> {
18799 decoder.debug_check_bounds::<Self>(offset);
18800 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18801 None => return Err(fidl::Error::NotNullable),
18802 Some(len) => len,
18803 };
18804 if len == 0 {
18806 return Ok(());
18807 };
18808 depth.increment()?;
18809 let envelope_size = 8;
18810 let bytes_len = len * envelope_size;
18811 let offset = decoder.out_of_line_offset(bytes_len)?;
18812 let mut _next_ordinal_to_read = 0;
18814 let mut next_offset = offset;
18815 let end_offset = offset + bytes_len;
18816
18817 while next_offset < end_offset {
18819 _next_ordinal_to_read += 1;
18820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18821 next_offset += envelope_size;
18822 }
18823
18824 Ok(())
18825 }
18826 }
18827
18828 impl MSbcEncoderSettings {
18829 #[inline(always)]
18830 fn max_ordinal_present(&self) -> u64 {
18831 0
18832 }
18833 }
18834
18835 impl fidl::encoding::ValueTypeMarker for MSbcEncoderSettings {
18836 type Borrowed<'a> = &'a Self;
18837 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18838 value
18839 }
18840 }
18841
18842 unsafe impl fidl::encoding::TypeMarker for MSbcEncoderSettings {
18843 type Owned = Self;
18844
18845 #[inline(always)]
18846 fn inline_align(_context: fidl::encoding::Context) -> usize {
18847 8
18848 }
18849
18850 #[inline(always)]
18851 fn inline_size(_context: fidl::encoding::Context) -> usize {
18852 16
18853 }
18854 }
18855
18856 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MSbcEncoderSettings, D>
18857 for &MSbcEncoderSettings
18858 {
18859 unsafe fn encode(
18860 self,
18861 encoder: &mut fidl::encoding::Encoder<'_, D>,
18862 offset: usize,
18863 mut depth: fidl::encoding::Depth,
18864 ) -> fidl::Result<()> {
18865 encoder.debug_check_bounds::<MSbcEncoderSettings>(offset);
18866 let max_ordinal: u64 = self.max_ordinal_present();
18868 encoder.write_num(max_ordinal, offset);
18869 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18870 if max_ordinal == 0 {
18872 return Ok(());
18873 }
18874 depth.increment()?;
18875 let envelope_size = 8;
18876 let bytes_len = max_ordinal as usize * envelope_size;
18877 #[allow(unused_variables)]
18878 let offset = encoder.out_of_line_offset(bytes_len);
18879 let mut _prev_end_offset: usize = 0;
18880
18881 Ok(())
18882 }
18883 }
18884
18885 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MSbcEncoderSettings {
18886 #[inline(always)]
18887 fn new_empty() -> Self {
18888 Self::default()
18889 }
18890
18891 unsafe fn decode(
18892 &mut self,
18893 decoder: &mut fidl::encoding::Decoder<'_, D>,
18894 offset: usize,
18895 mut depth: fidl::encoding::Depth,
18896 ) -> fidl::Result<()> {
18897 decoder.debug_check_bounds::<Self>(offset);
18898 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18899 None => return Err(fidl::Error::NotNullable),
18900 Some(len) => len,
18901 };
18902 if len == 0 {
18904 return Ok(());
18905 };
18906 depth.increment()?;
18907 let envelope_size = 8;
18908 let bytes_len = len * envelope_size;
18909 let offset = decoder.out_of_line_offset(bytes_len)?;
18910 let mut _next_ordinal_to_read = 0;
18912 let mut next_offset = offset;
18913 let end_offset = offset + bytes_len;
18914
18915 while next_offset < end_offset {
18917 _next_ordinal_to_read += 1;
18918 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18919 next_offset += envelope_size;
18920 }
18921
18922 Ok(())
18923 }
18924 }
18925
18926 impl Packet {
18927 #[inline(always)]
18928 fn max_ordinal_present(&self) -> u64 {
18929 if let Some(_) = self.key_frame {
18930 return 9;
18931 }
18932 if let Some(_) = self.known_end_access_unit {
18933 return 8;
18934 }
18935 if let Some(_) = self.start_access_unit {
18936 return 7;
18937 }
18938 if let Some(_) = self.timestamp_ish {
18939 return 6;
18940 }
18941 if let Some(_) = self.valid_length_bytes {
18942 return 5;
18943 }
18944 if let Some(_) = self.start_offset {
18945 return 4;
18946 }
18947 if let Some(_) = self.stream_lifetime_ordinal {
18948 return 3;
18949 }
18950 if let Some(_) = self.buffer_index {
18951 return 2;
18952 }
18953 if let Some(_) = self.header {
18954 return 1;
18955 }
18956 0
18957 }
18958 }
18959
18960 impl fidl::encoding::ValueTypeMarker for Packet {
18961 type Borrowed<'a> = &'a Self;
18962 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18963 value
18964 }
18965 }
18966
18967 unsafe impl fidl::encoding::TypeMarker for Packet {
18968 type Owned = Self;
18969
18970 #[inline(always)]
18971 fn inline_align(_context: fidl::encoding::Context) -> usize {
18972 8
18973 }
18974
18975 #[inline(always)]
18976 fn inline_size(_context: fidl::encoding::Context) -> usize {
18977 16
18978 }
18979 }
18980
18981 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Packet, D> for &Packet {
18982 unsafe fn encode(
18983 self,
18984 encoder: &mut fidl::encoding::Encoder<'_, D>,
18985 offset: usize,
18986 mut depth: fidl::encoding::Depth,
18987 ) -> fidl::Result<()> {
18988 encoder.debug_check_bounds::<Packet>(offset);
18989 let max_ordinal: u64 = self.max_ordinal_present();
18991 encoder.write_num(max_ordinal, offset);
18992 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18993 if max_ordinal == 0 {
18995 return Ok(());
18996 }
18997 depth.increment()?;
18998 let envelope_size = 8;
18999 let bytes_len = max_ordinal as usize * envelope_size;
19000 #[allow(unused_variables)]
19001 let offset = encoder.out_of_line_offset(bytes_len);
19002 let mut _prev_end_offset: usize = 0;
19003 if 1 > max_ordinal {
19004 return Ok(());
19005 }
19006
19007 let cur_offset: usize = (1 - 1) * envelope_size;
19010
19011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19013
19014 fidl::encoding::encode_in_envelope_optional::<PacketHeader, D>(
19019 self.header.as_ref().map(<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow),
19020 encoder,
19021 offset + cur_offset,
19022 depth,
19023 )?;
19024
19025 _prev_end_offset = cur_offset + envelope_size;
19026 if 2 > max_ordinal {
19027 return Ok(());
19028 }
19029
19030 let cur_offset: usize = (2 - 1) * envelope_size;
19033
19034 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19036
19037 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19042 self.buffer_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19043 encoder,
19044 offset + cur_offset,
19045 depth,
19046 )?;
19047
19048 _prev_end_offset = cur_offset + envelope_size;
19049 if 3 > max_ordinal {
19050 return Ok(());
19051 }
19052
19053 let cur_offset: usize = (3 - 1) * envelope_size;
19056
19057 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19059
19060 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19065 self.stream_lifetime_ordinal
19066 .as_ref()
19067 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19068 encoder,
19069 offset + cur_offset,
19070 depth,
19071 )?;
19072
19073 _prev_end_offset = cur_offset + envelope_size;
19074 if 4 > max_ordinal {
19075 return Ok(());
19076 }
19077
19078 let cur_offset: usize = (4 - 1) * envelope_size;
19081
19082 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19084
19085 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19090 self.start_offset.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19091 encoder,
19092 offset + cur_offset,
19093 depth,
19094 )?;
19095
19096 _prev_end_offset = cur_offset + envelope_size;
19097 if 5 > max_ordinal {
19098 return Ok(());
19099 }
19100
19101 let cur_offset: usize = (5 - 1) * envelope_size;
19104
19105 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19107
19108 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19113 self.valid_length_bytes
19114 .as_ref()
19115 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19116 encoder,
19117 offset + cur_offset,
19118 depth,
19119 )?;
19120
19121 _prev_end_offset = cur_offset + envelope_size;
19122 if 6 > max_ordinal {
19123 return Ok(());
19124 }
19125
19126 let cur_offset: usize = (6 - 1) * envelope_size;
19129
19130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19132
19133 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19138 self.timestamp_ish.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19139 encoder,
19140 offset + cur_offset,
19141 depth,
19142 )?;
19143
19144 _prev_end_offset = cur_offset + envelope_size;
19145 if 7 > max_ordinal {
19146 return Ok(());
19147 }
19148
19149 let cur_offset: usize = (7 - 1) * envelope_size;
19152
19153 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19155
19156 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19161 self.start_access_unit
19162 .as_ref()
19163 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19164 encoder,
19165 offset + cur_offset,
19166 depth,
19167 )?;
19168
19169 _prev_end_offset = cur_offset + envelope_size;
19170 if 8 > max_ordinal {
19171 return Ok(());
19172 }
19173
19174 let cur_offset: usize = (8 - 1) * envelope_size;
19177
19178 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19180
19181 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19186 self.known_end_access_unit
19187 .as_ref()
19188 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19189 encoder,
19190 offset + cur_offset,
19191 depth,
19192 )?;
19193
19194 _prev_end_offset = cur_offset + envelope_size;
19195 if 9 > max_ordinal {
19196 return Ok(());
19197 }
19198
19199 let cur_offset: usize = (9 - 1) * envelope_size;
19202
19203 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19205
19206 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19211 self.key_frame.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19212 encoder,
19213 offset + cur_offset,
19214 depth,
19215 )?;
19216
19217 _prev_end_offset = cur_offset + envelope_size;
19218
19219 Ok(())
19220 }
19221 }
19222
19223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Packet {
19224 #[inline(always)]
19225 fn new_empty() -> Self {
19226 Self::default()
19227 }
19228
19229 unsafe fn decode(
19230 &mut self,
19231 decoder: &mut fidl::encoding::Decoder<'_, D>,
19232 offset: usize,
19233 mut depth: fidl::encoding::Depth,
19234 ) -> fidl::Result<()> {
19235 decoder.debug_check_bounds::<Self>(offset);
19236 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19237 None => return Err(fidl::Error::NotNullable),
19238 Some(len) => len,
19239 };
19240 if len == 0 {
19242 return Ok(());
19243 };
19244 depth.increment()?;
19245 let envelope_size = 8;
19246 let bytes_len = len * envelope_size;
19247 let offset = decoder.out_of_line_offset(bytes_len)?;
19248 let mut _next_ordinal_to_read = 0;
19250 let mut next_offset = offset;
19251 let end_offset = offset + bytes_len;
19252 _next_ordinal_to_read += 1;
19253 if next_offset >= end_offset {
19254 return Ok(());
19255 }
19256
19257 while _next_ordinal_to_read < 1 {
19259 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19260 _next_ordinal_to_read += 1;
19261 next_offset += envelope_size;
19262 }
19263
19264 let next_out_of_line = decoder.next_out_of_line();
19265 let handles_before = decoder.remaining_handles();
19266 if let Some((inlined, num_bytes, num_handles)) =
19267 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19268 {
19269 let member_inline_size =
19270 <PacketHeader as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19271 if inlined != (member_inline_size <= 4) {
19272 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19273 }
19274 let inner_offset;
19275 let mut inner_depth = depth.clone();
19276 if inlined {
19277 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19278 inner_offset = next_offset;
19279 } else {
19280 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19281 inner_depth.increment()?;
19282 }
19283 let val_ref = self.header.get_or_insert_with(|| fidl::new_empty!(PacketHeader, D));
19284 fidl::decode!(PacketHeader, D, val_ref, decoder, inner_offset, inner_depth)?;
19285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19286 {
19287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19288 }
19289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19291 }
19292 }
19293
19294 next_offset += envelope_size;
19295 _next_ordinal_to_read += 1;
19296 if next_offset >= end_offset {
19297 return Ok(());
19298 }
19299
19300 while _next_ordinal_to_read < 2 {
19302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19303 _next_ordinal_to_read += 1;
19304 next_offset += envelope_size;
19305 }
19306
19307 let next_out_of_line = decoder.next_out_of_line();
19308 let handles_before = decoder.remaining_handles();
19309 if let Some((inlined, num_bytes, num_handles)) =
19310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19311 {
19312 let member_inline_size =
19313 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19314 if inlined != (member_inline_size <= 4) {
19315 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19316 }
19317 let inner_offset;
19318 let mut inner_depth = depth.clone();
19319 if inlined {
19320 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19321 inner_offset = next_offset;
19322 } else {
19323 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19324 inner_depth.increment()?;
19325 }
19326 let val_ref = self.buffer_index.get_or_insert_with(|| fidl::new_empty!(u32, D));
19327 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19328 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19329 {
19330 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19331 }
19332 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19333 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19334 }
19335 }
19336
19337 next_offset += envelope_size;
19338 _next_ordinal_to_read += 1;
19339 if next_offset >= end_offset {
19340 return Ok(());
19341 }
19342
19343 while _next_ordinal_to_read < 3 {
19345 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19346 _next_ordinal_to_read += 1;
19347 next_offset += envelope_size;
19348 }
19349
19350 let next_out_of_line = decoder.next_out_of_line();
19351 let handles_before = decoder.remaining_handles();
19352 if let Some((inlined, num_bytes, num_handles)) =
19353 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19354 {
19355 let member_inline_size =
19356 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19357 if inlined != (member_inline_size <= 4) {
19358 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19359 }
19360 let inner_offset;
19361 let mut inner_depth = depth.clone();
19362 if inlined {
19363 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19364 inner_offset = next_offset;
19365 } else {
19366 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19367 inner_depth.increment()?;
19368 }
19369 let val_ref =
19370 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
19371 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19372 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19373 {
19374 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19375 }
19376 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19377 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19378 }
19379 }
19380
19381 next_offset += envelope_size;
19382 _next_ordinal_to_read += 1;
19383 if next_offset >= end_offset {
19384 return Ok(());
19385 }
19386
19387 while _next_ordinal_to_read < 4 {
19389 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19390 _next_ordinal_to_read += 1;
19391 next_offset += envelope_size;
19392 }
19393
19394 let next_out_of_line = decoder.next_out_of_line();
19395 let handles_before = decoder.remaining_handles();
19396 if let Some((inlined, num_bytes, num_handles)) =
19397 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19398 {
19399 let member_inline_size =
19400 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19401 if inlined != (member_inline_size <= 4) {
19402 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19403 }
19404 let inner_offset;
19405 let mut inner_depth = depth.clone();
19406 if inlined {
19407 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19408 inner_offset = next_offset;
19409 } else {
19410 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19411 inner_depth.increment()?;
19412 }
19413 let val_ref = self.start_offset.get_or_insert_with(|| fidl::new_empty!(u32, D));
19414 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19415 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19416 {
19417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19418 }
19419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19421 }
19422 }
19423
19424 next_offset += envelope_size;
19425 _next_ordinal_to_read += 1;
19426 if next_offset >= end_offset {
19427 return Ok(());
19428 }
19429
19430 while _next_ordinal_to_read < 5 {
19432 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19433 _next_ordinal_to_read += 1;
19434 next_offset += envelope_size;
19435 }
19436
19437 let next_out_of_line = decoder.next_out_of_line();
19438 let handles_before = decoder.remaining_handles();
19439 if let Some((inlined, num_bytes, num_handles)) =
19440 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19441 {
19442 let member_inline_size =
19443 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19444 if inlined != (member_inline_size <= 4) {
19445 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19446 }
19447 let inner_offset;
19448 let mut inner_depth = depth.clone();
19449 if inlined {
19450 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19451 inner_offset = next_offset;
19452 } else {
19453 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19454 inner_depth.increment()?;
19455 }
19456 let val_ref =
19457 self.valid_length_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
19458 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19459 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19460 {
19461 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19462 }
19463 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19464 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19465 }
19466 }
19467
19468 next_offset += envelope_size;
19469 _next_ordinal_to_read += 1;
19470 if next_offset >= end_offset {
19471 return Ok(());
19472 }
19473
19474 while _next_ordinal_to_read < 6 {
19476 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19477 _next_ordinal_to_read += 1;
19478 next_offset += envelope_size;
19479 }
19480
19481 let next_out_of_line = decoder.next_out_of_line();
19482 let handles_before = decoder.remaining_handles();
19483 if let Some((inlined, num_bytes, num_handles)) =
19484 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19485 {
19486 let member_inline_size =
19487 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19488 if inlined != (member_inline_size <= 4) {
19489 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19490 }
19491 let inner_offset;
19492 let mut inner_depth = depth.clone();
19493 if inlined {
19494 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19495 inner_offset = next_offset;
19496 } else {
19497 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19498 inner_depth.increment()?;
19499 }
19500 let val_ref = self.timestamp_ish.get_or_insert_with(|| fidl::new_empty!(u64, D));
19501 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19502 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19503 {
19504 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19505 }
19506 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19507 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19508 }
19509 }
19510
19511 next_offset += envelope_size;
19512 _next_ordinal_to_read += 1;
19513 if next_offset >= end_offset {
19514 return Ok(());
19515 }
19516
19517 while _next_ordinal_to_read < 7 {
19519 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19520 _next_ordinal_to_read += 1;
19521 next_offset += envelope_size;
19522 }
19523
19524 let next_out_of_line = decoder.next_out_of_line();
19525 let handles_before = decoder.remaining_handles();
19526 if let Some((inlined, num_bytes, num_handles)) =
19527 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19528 {
19529 let member_inline_size =
19530 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19531 if inlined != (member_inline_size <= 4) {
19532 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19533 }
19534 let inner_offset;
19535 let mut inner_depth = depth.clone();
19536 if inlined {
19537 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19538 inner_offset = next_offset;
19539 } else {
19540 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19541 inner_depth.increment()?;
19542 }
19543 let val_ref =
19544 self.start_access_unit.get_or_insert_with(|| fidl::new_empty!(bool, D));
19545 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19546 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19547 {
19548 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19549 }
19550 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19551 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19552 }
19553 }
19554
19555 next_offset += envelope_size;
19556 _next_ordinal_to_read += 1;
19557 if next_offset >= end_offset {
19558 return Ok(());
19559 }
19560
19561 while _next_ordinal_to_read < 8 {
19563 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19564 _next_ordinal_to_read += 1;
19565 next_offset += envelope_size;
19566 }
19567
19568 let next_out_of_line = decoder.next_out_of_line();
19569 let handles_before = decoder.remaining_handles();
19570 if let Some((inlined, num_bytes, num_handles)) =
19571 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19572 {
19573 let member_inline_size =
19574 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19575 if inlined != (member_inline_size <= 4) {
19576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19577 }
19578 let inner_offset;
19579 let mut inner_depth = depth.clone();
19580 if inlined {
19581 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19582 inner_offset = next_offset;
19583 } else {
19584 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19585 inner_depth.increment()?;
19586 }
19587 let val_ref =
19588 self.known_end_access_unit.get_or_insert_with(|| fidl::new_empty!(bool, D));
19589 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19590 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19591 {
19592 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19593 }
19594 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19595 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19596 }
19597 }
19598
19599 next_offset += envelope_size;
19600 _next_ordinal_to_read += 1;
19601 if next_offset >= end_offset {
19602 return Ok(());
19603 }
19604
19605 while _next_ordinal_to_read < 9 {
19607 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19608 _next_ordinal_to_read += 1;
19609 next_offset += envelope_size;
19610 }
19611
19612 let next_out_of_line = decoder.next_out_of_line();
19613 let handles_before = decoder.remaining_handles();
19614 if let Some((inlined, num_bytes, num_handles)) =
19615 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19616 {
19617 let member_inline_size =
19618 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19619 if inlined != (member_inline_size <= 4) {
19620 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19621 }
19622 let inner_offset;
19623 let mut inner_depth = depth.clone();
19624 if inlined {
19625 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19626 inner_offset = next_offset;
19627 } else {
19628 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19629 inner_depth.increment()?;
19630 }
19631 let val_ref = self.key_frame.get_or_insert_with(|| fidl::new_empty!(bool, D));
19632 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19633 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19634 {
19635 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19636 }
19637 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19638 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19639 }
19640 }
19641
19642 next_offset += envelope_size;
19643
19644 while next_offset < end_offset {
19646 _next_ordinal_to_read += 1;
19647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19648 next_offset += envelope_size;
19649 }
19650
19651 Ok(())
19652 }
19653 }
19654
19655 impl PacketHeader {
19656 #[inline(always)]
19657 fn max_ordinal_present(&self) -> u64 {
19658 if let Some(_) = self.packet_index {
19659 return 2;
19660 }
19661 if let Some(_) = self.buffer_lifetime_ordinal {
19662 return 1;
19663 }
19664 0
19665 }
19666 }
19667
19668 impl fidl::encoding::ValueTypeMarker for PacketHeader {
19669 type Borrowed<'a> = &'a Self;
19670 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19671 value
19672 }
19673 }
19674
19675 unsafe impl fidl::encoding::TypeMarker for PacketHeader {
19676 type Owned = Self;
19677
19678 #[inline(always)]
19679 fn inline_align(_context: fidl::encoding::Context) -> usize {
19680 8
19681 }
19682
19683 #[inline(always)]
19684 fn inline_size(_context: fidl::encoding::Context) -> usize {
19685 16
19686 }
19687 }
19688
19689 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PacketHeader, D>
19690 for &PacketHeader
19691 {
19692 unsafe fn encode(
19693 self,
19694 encoder: &mut fidl::encoding::Encoder<'_, D>,
19695 offset: usize,
19696 mut depth: fidl::encoding::Depth,
19697 ) -> fidl::Result<()> {
19698 encoder.debug_check_bounds::<PacketHeader>(offset);
19699 let max_ordinal: u64 = self.max_ordinal_present();
19701 encoder.write_num(max_ordinal, offset);
19702 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19703 if max_ordinal == 0 {
19705 return Ok(());
19706 }
19707 depth.increment()?;
19708 let envelope_size = 8;
19709 let bytes_len = max_ordinal as usize * envelope_size;
19710 #[allow(unused_variables)]
19711 let offset = encoder.out_of_line_offset(bytes_len);
19712 let mut _prev_end_offset: usize = 0;
19713 if 1 > max_ordinal {
19714 return Ok(());
19715 }
19716
19717 let cur_offset: usize = (1 - 1) * envelope_size;
19720
19721 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19723
19724 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19729 self.buffer_lifetime_ordinal
19730 .as_ref()
19731 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19732 encoder,
19733 offset + cur_offset,
19734 depth,
19735 )?;
19736
19737 _prev_end_offset = cur_offset + envelope_size;
19738 if 2 > max_ordinal {
19739 return Ok(());
19740 }
19741
19742 let cur_offset: usize = (2 - 1) * envelope_size;
19745
19746 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19748
19749 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19754 self.packet_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19755 encoder,
19756 offset + cur_offset,
19757 depth,
19758 )?;
19759
19760 _prev_end_offset = cur_offset + envelope_size;
19761
19762 Ok(())
19763 }
19764 }
19765
19766 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PacketHeader {
19767 #[inline(always)]
19768 fn new_empty() -> Self {
19769 Self::default()
19770 }
19771
19772 unsafe fn decode(
19773 &mut self,
19774 decoder: &mut fidl::encoding::Decoder<'_, D>,
19775 offset: usize,
19776 mut depth: fidl::encoding::Depth,
19777 ) -> fidl::Result<()> {
19778 decoder.debug_check_bounds::<Self>(offset);
19779 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19780 None => return Err(fidl::Error::NotNullable),
19781 Some(len) => len,
19782 };
19783 if len == 0 {
19785 return Ok(());
19786 };
19787 depth.increment()?;
19788 let envelope_size = 8;
19789 let bytes_len = len * envelope_size;
19790 let offset = decoder.out_of_line_offset(bytes_len)?;
19791 let mut _next_ordinal_to_read = 0;
19793 let mut next_offset = offset;
19794 let end_offset = offset + bytes_len;
19795 _next_ordinal_to_read += 1;
19796 if next_offset >= end_offset {
19797 return Ok(());
19798 }
19799
19800 while _next_ordinal_to_read < 1 {
19802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19803 _next_ordinal_to_read += 1;
19804 next_offset += envelope_size;
19805 }
19806
19807 let next_out_of_line = decoder.next_out_of_line();
19808 let handles_before = decoder.remaining_handles();
19809 if let Some((inlined, num_bytes, num_handles)) =
19810 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19811 {
19812 let member_inline_size =
19813 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19814 if inlined != (member_inline_size <= 4) {
19815 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19816 }
19817 let inner_offset;
19818 let mut inner_depth = depth.clone();
19819 if inlined {
19820 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19821 inner_offset = next_offset;
19822 } else {
19823 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19824 inner_depth.increment()?;
19825 }
19826 let val_ref =
19827 self.buffer_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
19828 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19829 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19830 {
19831 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19832 }
19833 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19834 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19835 }
19836 }
19837
19838 next_offset += envelope_size;
19839 _next_ordinal_to_read += 1;
19840 if next_offset >= end_offset {
19841 return Ok(());
19842 }
19843
19844 while _next_ordinal_to_read < 2 {
19846 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19847 _next_ordinal_to_read += 1;
19848 next_offset += envelope_size;
19849 }
19850
19851 let next_out_of_line = decoder.next_out_of_line();
19852 let handles_before = decoder.remaining_handles();
19853 if let Some((inlined, num_bytes, num_handles)) =
19854 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19855 {
19856 let member_inline_size =
19857 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19858 if inlined != (member_inline_size <= 4) {
19859 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19860 }
19861 let inner_offset;
19862 let mut inner_depth = depth.clone();
19863 if inlined {
19864 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19865 inner_offset = next_offset;
19866 } else {
19867 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19868 inner_depth.increment()?;
19869 }
19870 let val_ref = self.packet_index.get_or_insert_with(|| fidl::new_empty!(u32, D));
19871 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19872 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19873 {
19874 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19875 }
19876 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19877 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19878 }
19879 }
19880
19881 next_offset += envelope_size;
19882
19883 while next_offset < end_offset {
19885 _next_ordinal_to_read += 1;
19886 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19887 next_offset += envelope_size;
19888 }
19889
19890 Ok(())
19891 }
19892 }
19893
19894 impl StreamBufferConstraints {
19895 #[inline(always)]
19896 fn max_ordinal_present(&self) -> u64 {
19897 if let Some(_) = self.is_physically_contiguous_required {
19898 return 13;
19899 }
19900 if let Some(_) = self.single_buffer_mode_allowed {
19901 return 12;
19902 }
19903 if let Some(_) = self.packet_count_for_client_max {
19904 return 11;
19905 }
19906 if let Some(_) = self.packet_count_for_client_min {
19907 return 10;
19908 }
19909 if let Some(_) = self.packet_count_for_server_max {
19910 return 9;
19911 }
19912 if let Some(_) = self.packet_count_for_server_recommended_max {
19913 return 8;
19914 }
19915 if let Some(_) = self.packet_count_for_server_recommended {
19916 return 7;
19917 }
19918 if let Some(_) = self.packet_count_for_server_min {
19919 return 6;
19920 }
19921 if let Some(_) = self.per_packet_buffer_bytes_max {
19922 return 5;
19923 }
19924 if let Some(_) = self.per_packet_buffer_bytes_recommended {
19925 return 4;
19926 }
19927 if let Some(_) = self.per_packet_buffer_bytes_min {
19928 return 3;
19929 }
19930 if let Some(_) = self.default_settings {
19931 return 2;
19932 }
19933 if let Some(_) = self.buffer_constraints_version_ordinal {
19934 return 1;
19935 }
19936 0
19937 }
19938 }
19939
19940 impl fidl::encoding::ValueTypeMarker for StreamBufferConstraints {
19941 type Borrowed<'a> = &'a Self;
19942 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19943 value
19944 }
19945 }
19946
19947 unsafe impl fidl::encoding::TypeMarker for StreamBufferConstraints {
19948 type Owned = Self;
19949
19950 #[inline(always)]
19951 fn inline_align(_context: fidl::encoding::Context) -> usize {
19952 8
19953 }
19954
19955 #[inline(always)]
19956 fn inline_size(_context: fidl::encoding::Context) -> usize {
19957 16
19958 }
19959 }
19960
19961 unsafe impl<D: fidl::encoding::ResourceDialect>
19962 fidl::encoding::Encode<StreamBufferConstraints, D> for &StreamBufferConstraints
19963 {
19964 unsafe fn encode(
19965 self,
19966 encoder: &mut fidl::encoding::Encoder<'_, D>,
19967 offset: usize,
19968 mut depth: fidl::encoding::Depth,
19969 ) -> fidl::Result<()> {
19970 encoder.debug_check_bounds::<StreamBufferConstraints>(offset);
19971 let max_ordinal: u64 = self.max_ordinal_present();
19973 encoder.write_num(max_ordinal, offset);
19974 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19975 if max_ordinal == 0 {
19977 return Ok(());
19978 }
19979 depth.increment()?;
19980 let envelope_size = 8;
19981 let bytes_len = max_ordinal as usize * envelope_size;
19982 #[allow(unused_variables)]
19983 let offset = encoder.out_of_line_offset(bytes_len);
19984 let mut _prev_end_offset: usize = 0;
19985 if 1 > max_ordinal {
19986 return Ok(());
19987 }
19988
19989 let cur_offset: usize = (1 - 1) * envelope_size;
19992
19993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19995
19996 fidl::encoding::encode_in_envelope_optional::<u64, D>(
20001 self.buffer_constraints_version_ordinal
20002 .as_ref()
20003 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
20004 encoder,
20005 offset + cur_offset,
20006 depth,
20007 )?;
20008
20009 _prev_end_offset = cur_offset + envelope_size;
20010 if 2 > max_ordinal {
20011 return Ok(());
20012 }
20013
20014 let cur_offset: usize = (2 - 1) * envelope_size;
20017
20018 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20020
20021 fidl::encoding::encode_in_envelope_optional::<StreamBufferSettings, D>(
20026 self.default_settings
20027 .as_ref()
20028 .map(<StreamBufferSettings as fidl::encoding::ValueTypeMarker>::borrow),
20029 encoder,
20030 offset + cur_offset,
20031 depth,
20032 )?;
20033
20034 _prev_end_offset = cur_offset + envelope_size;
20035 if 3 > max_ordinal {
20036 return Ok(());
20037 }
20038
20039 let cur_offset: usize = (3 - 1) * envelope_size;
20042
20043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20045
20046 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20051 self.per_packet_buffer_bytes_min
20052 .as_ref()
20053 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20054 encoder,
20055 offset + cur_offset,
20056 depth,
20057 )?;
20058
20059 _prev_end_offset = cur_offset + envelope_size;
20060 if 4 > max_ordinal {
20061 return Ok(());
20062 }
20063
20064 let cur_offset: usize = (4 - 1) * envelope_size;
20067
20068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20070
20071 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20076 self.per_packet_buffer_bytes_recommended
20077 .as_ref()
20078 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20079 encoder,
20080 offset + cur_offset,
20081 depth,
20082 )?;
20083
20084 _prev_end_offset = cur_offset + envelope_size;
20085 if 5 > max_ordinal {
20086 return Ok(());
20087 }
20088
20089 let cur_offset: usize = (5 - 1) * envelope_size;
20092
20093 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20095
20096 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20101 self.per_packet_buffer_bytes_max
20102 .as_ref()
20103 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20104 encoder,
20105 offset + cur_offset,
20106 depth,
20107 )?;
20108
20109 _prev_end_offset = cur_offset + envelope_size;
20110 if 6 > max_ordinal {
20111 return Ok(());
20112 }
20113
20114 let cur_offset: usize = (6 - 1) * envelope_size;
20117
20118 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20120
20121 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20126 self.packet_count_for_server_min
20127 .as_ref()
20128 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20129 encoder,
20130 offset + cur_offset,
20131 depth,
20132 )?;
20133
20134 _prev_end_offset = cur_offset + envelope_size;
20135 if 7 > max_ordinal {
20136 return Ok(());
20137 }
20138
20139 let cur_offset: usize = (7 - 1) * envelope_size;
20142
20143 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20145
20146 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20151 self.packet_count_for_server_recommended
20152 .as_ref()
20153 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20154 encoder,
20155 offset + cur_offset,
20156 depth,
20157 )?;
20158
20159 _prev_end_offset = cur_offset + envelope_size;
20160 if 8 > max_ordinal {
20161 return Ok(());
20162 }
20163
20164 let cur_offset: usize = (8 - 1) * envelope_size;
20167
20168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20170
20171 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20176 self.packet_count_for_server_recommended_max
20177 .as_ref()
20178 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20179 encoder,
20180 offset + cur_offset,
20181 depth,
20182 )?;
20183
20184 _prev_end_offset = cur_offset + envelope_size;
20185 if 9 > max_ordinal {
20186 return Ok(());
20187 }
20188
20189 let cur_offset: usize = (9 - 1) * envelope_size;
20192
20193 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20195
20196 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20201 self.packet_count_for_server_max
20202 .as_ref()
20203 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20204 encoder,
20205 offset + cur_offset,
20206 depth,
20207 )?;
20208
20209 _prev_end_offset = cur_offset + envelope_size;
20210 if 10 > max_ordinal {
20211 return Ok(());
20212 }
20213
20214 let cur_offset: usize = (10 - 1) * envelope_size;
20217
20218 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20220
20221 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20226 self.packet_count_for_client_min
20227 .as_ref()
20228 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20229 encoder,
20230 offset + cur_offset,
20231 depth,
20232 )?;
20233
20234 _prev_end_offset = cur_offset + envelope_size;
20235 if 11 > max_ordinal {
20236 return Ok(());
20237 }
20238
20239 let cur_offset: usize = (11 - 1) * envelope_size;
20242
20243 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20245
20246 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20251 self.packet_count_for_client_max
20252 .as_ref()
20253 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20254 encoder,
20255 offset + cur_offset,
20256 depth,
20257 )?;
20258
20259 _prev_end_offset = cur_offset + envelope_size;
20260 if 12 > max_ordinal {
20261 return Ok(());
20262 }
20263
20264 let cur_offset: usize = (12 - 1) * envelope_size;
20267
20268 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20270
20271 fidl::encoding::encode_in_envelope_optional::<bool, D>(
20276 self.single_buffer_mode_allowed
20277 .as_ref()
20278 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
20279 encoder,
20280 offset + cur_offset,
20281 depth,
20282 )?;
20283
20284 _prev_end_offset = cur_offset + envelope_size;
20285 if 13 > max_ordinal {
20286 return Ok(());
20287 }
20288
20289 let cur_offset: usize = (13 - 1) * envelope_size;
20292
20293 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20295
20296 fidl::encoding::encode_in_envelope_optional::<bool, D>(
20301 self.is_physically_contiguous_required
20302 .as_ref()
20303 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
20304 encoder,
20305 offset + cur_offset,
20306 depth,
20307 )?;
20308
20309 _prev_end_offset = cur_offset + envelope_size;
20310
20311 Ok(())
20312 }
20313 }
20314
20315 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
20316 for StreamBufferConstraints
20317 {
20318 #[inline(always)]
20319 fn new_empty() -> Self {
20320 Self::default()
20321 }
20322
20323 unsafe fn decode(
20324 &mut self,
20325 decoder: &mut fidl::encoding::Decoder<'_, D>,
20326 offset: usize,
20327 mut depth: fidl::encoding::Depth,
20328 ) -> fidl::Result<()> {
20329 decoder.debug_check_bounds::<Self>(offset);
20330 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20331 None => return Err(fidl::Error::NotNullable),
20332 Some(len) => len,
20333 };
20334 if len == 0 {
20336 return Ok(());
20337 };
20338 depth.increment()?;
20339 let envelope_size = 8;
20340 let bytes_len = len * envelope_size;
20341 let offset = decoder.out_of_line_offset(bytes_len)?;
20342 let mut _next_ordinal_to_read = 0;
20344 let mut next_offset = offset;
20345 let end_offset = offset + bytes_len;
20346 _next_ordinal_to_read += 1;
20347 if next_offset >= end_offset {
20348 return Ok(());
20349 }
20350
20351 while _next_ordinal_to_read < 1 {
20353 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20354 _next_ordinal_to_read += 1;
20355 next_offset += envelope_size;
20356 }
20357
20358 let next_out_of_line = decoder.next_out_of_line();
20359 let handles_before = decoder.remaining_handles();
20360 if let Some((inlined, num_bytes, num_handles)) =
20361 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20362 {
20363 let member_inline_size =
20364 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20365 if inlined != (member_inline_size <= 4) {
20366 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20367 }
20368 let inner_offset;
20369 let mut inner_depth = depth.clone();
20370 if inlined {
20371 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20372 inner_offset = next_offset;
20373 } else {
20374 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20375 inner_depth.increment()?;
20376 }
20377 let val_ref = self
20378 .buffer_constraints_version_ordinal
20379 .get_or_insert_with(|| fidl::new_empty!(u64, D));
20380 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
20381 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20382 {
20383 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20384 }
20385 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20386 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20387 }
20388 }
20389
20390 next_offset += envelope_size;
20391 _next_ordinal_to_read += 1;
20392 if next_offset >= end_offset {
20393 return Ok(());
20394 }
20395
20396 while _next_ordinal_to_read < 2 {
20398 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20399 _next_ordinal_to_read += 1;
20400 next_offset += envelope_size;
20401 }
20402
20403 let next_out_of_line = decoder.next_out_of_line();
20404 let handles_before = decoder.remaining_handles();
20405 if let Some((inlined, num_bytes, num_handles)) =
20406 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20407 {
20408 let member_inline_size =
20409 <StreamBufferSettings as fidl::encoding::TypeMarker>::inline_size(
20410 decoder.context,
20411 );
20412 if inlined != (member_inline_size <= 4) {
20413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20414 }
20415 let inner_offset;
20416 let mut inner_depth = depth.clone();
20417 if inlined {
20418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20419 inner_offset = next_offset;
20420 } else {
20421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20422 inner_depth.increment()?;
20423 }
20424 let val_ref = self
20425 .default_settings
20426 .get_or_insert_with(|| fidl::new_empty!(StreamBufferSettings, D));
20427 fidl::decode!(
20428 StreamBufferSettings,
20429 D,
20430 val_ref,
20431 decoder,
20432 inner_offset,
20433 inner_depth
20434 )?;
20435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20436 {
20437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20438 }
20439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20441 }
20442 }
20443
20444 next_offset += envelope_size;
20445 _next_ordinal_to_read += 1;
20446 if next_offset >= end_offset {
20447 return Ok(());
20448 }
20449
20450 while _next_ordinal_to_read < 3 {
20452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20453 _next_ordinal_to_read += 1;
20454 next_offset += envelope_size;
20455 }
20456
20457 let next_out_of_line = decoder.next_out_of_line();
20458 let handles_before = decoder.remaining_handles();
20459 if let Some((inlined, num_bytes, num_handles)) =
20460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20461 {
20462 let member_inline_size =
20463 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20464 if inlined != (member_inline_size <= 4) {
20465 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20466 }
20467 let inner_offset;
20468 let mut inner_depth = depth.clone();
20469 if inlined {
20470 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20471 inner_offset = next_offset;
20472 } else {
20473 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20474 inner_depth.increment()?;
20475 }
20476 let val_ref = self
20477 .per_packet_buffer_bytes_min
20478 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20479 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20480 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20481 {
20482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20483 }
20484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20486 }
20487 }
20488
20489 next_offset += envelope_size;
20490 _next_ordinal_to_read += 1;
20491 if next_offset >= end_offset {
20492 return Ok(());
20493 }
20494
20495 while _next_ordinal_to_read < 4 {
20497 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20498 _next_ordinal_to_read += 1;
20499 next_offset += envelope_size;
20500 }
20501
20502 let next_out_of_line = decoder.next_out_of_line();
20503 let handles_before = decoder.remaining_handles();
20504 if let Some((inlined, num_bytes, num_handles)) =
20505 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20506 {
20507 let member_inline_size =
20508 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20509 if inlined != (member_inline_size <= 4) {
20510 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20511 }
20512 let inner_offset;
20513 let mut inner_depth = depth.clone();
20514 if inlined {
20515 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20516 inner_offset = next_offset;
20517 } else {
20518 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20519 inner_depth.increment()?;
20520 }
20521 let val_ref = self
20522 .per_packet_buffer_bytes_recommended
20523 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20524 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20526 {
20527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20528 }
20529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20531 }
20532 }
20533
20534 next_offset += envelope_size;
20535 _next_ordinal_to_read += 1;
20536 if next_offset >= end_offset {
20537 return Ok(());
20538 }
20539
20540 while _next_ordinal_to_read < 5 {
20542 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20543 _next_ordinal_to_read += 1;
20544 next_offset += envelope_size;
20545 }
20546
20547 let next_out_of_line = decoder.next_out_of_line();
20548 let handles_before = decoder.remaining_handles();
20549 if let Some((inlined, num_bytes, num_handles)) =
20550 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20551 {
20552 let member_inline_size =
20553 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20554 if inlined != (member_inline_size <= 4) {
20555 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20556 }
20557 let inner_offset;
20558 let mut inner_depth = depth.clone();
20559 if inlined {
20560 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20561 inner_offset = next_offset;
20562 } else {
20563 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20564 inner_depth.increment()?;
20565 }
20566 let val_ref = self
20567 .per_packet_buffer_bytes_max
20568 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20569 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20571 {
20572 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20573 }
20574 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20575 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20576 }
20577 }
20578
20579 next_offset += envelope_size;
20580 _next_ordinal_to_read += 1;
20581 if next_offset >= end_offset {
20582 return Ok(());
20583 }
20584
20585 while _next_ordinal_to_read < 6 {
20587 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20588 _next_ordinal_to_read += 1;
20589 next_offset += envelope_size;
20590 }
20591
20592 let next_out_of_line = decoder.next_out_of_line();
20593 let handles_before = decoder.remaining_handles();
20594 if let Some((inlined, num_bytes, num_handles)) =
20595 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20596 {
20597 let member_inline_size =
20598 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20599 if inlined != (member_inline_size <= 4) {
20600 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20601 }
20602 let inner_offset;
20603 let mut inner_depth = depth.clone();
20604 if inlined {
20605 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20606 inner_offset = next_offset;
20607 } else {
20608 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20609 inner_depth.increment()?;
20610 }
20611 let val_ref = self
20612 .packet_count_for_server_min
20613 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20614 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20615 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20616 {
20617 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20618 }
20619 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20620 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20621 }
20622 }
20623
20624 next_offset += envelope_size;
20625 _next_ordinal_to_read += 1;
20626 if next_offset >= end_offset {
20627 return Ok(());
20628 }
20629
20630 while _next_ordinal_to_read < 7 {
20632 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20633 _next_ordinal_to_read += 1;
20634 next_offset += envelope_size;
20635 }
20636
20637 let next_out_of_line = decoder.next_out_of_line();
20638 let handles_before = decoder.remaining_handles();
20639 if let Some((inlined, num_bytes, num_handles)) =
20640 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20641 {
20642 let member_inline_size =
20643 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20644 if inlined != (member_inline_size <= 4) {
20645 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20646 }
20647 let inner_offset;
20648 let mut inner_depth = depth.clone();
20649 if inlined {
20650 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20651 inner_offset = next_offset;
20652 } else {
20653 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20654 inner_depth.increment()?;
20655 }
20656 let val_ref = self
20657 .packet_count_for_server_recommended
20658 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20659 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20660 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20661 {
20662 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20663 }
20664 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20665 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20666 }
20667 }
20668
20669 next_offset += envelope_size;
20670 _next_ordinal_to_read += 1;
20671 if next_offset >= end_offset {
20672 return Ok(());
20673 }
20674
20675 while _next_ordinal_to_read < 8 {
20677 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20678 _next_ordinal_to_read += 1;
20679 next_offset += envelope_size;
20680 }
20681
20682 let next_out_of_line = decoder.next_out_of_line();
20683 let handles_before = decoder.remaining_handles();
20684 if let Some((inlined, num_bytes, num_handles)) =
20685 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20686 {
20687 let member_inline_size =
20688 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20689 if inlined != (member_inline_size <= 4) {
20690 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20691 }
20692 let inner_offset;
20693 let mut inner_depth = depth.clone();
20694 if inlined {
20695 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20696 inner_offset = next_offset;
20697 } else {
20698 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20699 inner_depth.increment()?;
20700 }
20701 let val_ref = self
20702 .packet_count_for_server_recommended_max
20703 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20704 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20706 {
20707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20708 }
20709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20711 }
20712 }
20713
20714 next_offset += envelope_size;
20715 _next_ordinal_to_read += 1;
20716 if next_offset >= end_offset {
20717 return Ok(());
20718 }
20719
20720 while _next_ordinal_to_read < 9 {
20722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20723 _next_ordinal_to_read += 1;
20724 next_offset += envelope_size;
20725 }
20726
20727 let next_out_of_line = decoder.next_out_of_line();
20728 let handles_before = decoder.remaining_handles();
20729 if let Some((inlined, num_bytes, num_handles)) =
20730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20731 {
20732 let member_inline_size =
20733 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20734 if inlined != (member_inline_size <= 4) {
20735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20736 }
20737 let inner_offset;
20738 let mut inner_depth = depth.clone();
20739 if inlined {
20740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20741 inner_offset = next_offset;
20742 } else {
20743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20744 inner_depth.increment()?;
20745 }
20746 let val_ref = self
20747 .packet_count_for_server_max
20748 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20749 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20750 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20751 {
20752 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20753 }
20754 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20755 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20756 }
20757 }
20758
20759 next_offset += envelope_size;
20760 _next_ordinal_to_read += 1;
20761 if next_offset >= end_offset {
20762 return Ok(());
20763 }
20764
20765 while _next_ordinal_to_read < 10 {
20767 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20768 _next_ordinal_to_read += 1;
20769 next_offset += envelope_size;
20770 }
20771
20772 let next_out_of_line = decoder.next_out_of_line();
20773 let handles_before = decoder.remaining_handles();
20774 if let Some((inlined, num_bytes, num_handles)) =
20775 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20776 {
20777 let member_inline_size =
20778 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20779 if inlined != (member_inline_size <= 4) {
20780 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20781 }
20782 let inner_offset;
20783 let mut inner_depth = depth.clone();
20784 if inlined {
20785 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20786 inner_offset = next_offset;
20787 } else {
20788 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20789 inner_depth.increment()?;
20790 }
20791 let val_ref = self
20792 .packet_count_for_client_min
20793 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20794 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20796 {
20797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20798 }
20799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20801 }
20802 }
20803
20804 next_offset += envelope_size;
20805 _next_ordinal_to_read += 1;
20806 if next_offset >= end_offset {
20807 return Ok(());
20808 }
20809
20810 while _next_ordinal_to_read < 11 {
20812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20813 _next_ordinal_to_read += 1;
20814 next_offset += envelope_size;
20815 }
20816
20817 let next_out_of_line = decoder.next_out_of_line();
20818 let handles_before = decoder.remaining_handles();
20819 if let Some((inlined, num_bytes, num_handles)) =
20820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20821 {
20822 let member_inline_size =
20823 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20824 if inlined != (member_inline_size <= 4) {
20825 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20826 }
20827 let inner_offset;
20828 let mut inner_depth = depth.clone();
20829 if inlined {
20830 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20831 inner_offset = next_offset;
20832 } else {
20833 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20834 inner_depth.increment()?;
20835 }
20836 let val_ref = self
20837 .packet_count_for_client_max
20838 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20839 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20840 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20841 {
20842 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20843 }
20844 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20845 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20846 }
20847 }
20848
20849 next_offset += envelope_size;
20850 _next_ordinal_to_read += 1;
20851 if next_offset >= end_offset {
20852 return Ok(());
20853 }
20854
20855 while _next_ordinal_to_read < 12 {
20857 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20858 _next_ordinal_to_read += 1;
20859 next_offset += envelope_size;
20860 }
20861
20862 let next_out_of_line = decoder.next_out_of_line();
20863 let handles_before = decoder.remaining_handles();
20864 if let Some((inlined, num_bytes, num_handles)) =
20865 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20866 {
20867 let member_inline_size =
20868 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20869 if inlined != (member_inline_size <= 4) {
20870 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20871 }
20872 let inner_offset;
20873 let mut inner_depth = depth.clone();
20874 if inlined {
20875 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20876 inner_offset = next_offset;
20877 } else {
20878 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20879 inner_depth.increment()?;
20880 }
20881 let val_ref = self
20882 .single_buffer_mode_allowed
20883 .get_or_insert_with(|| fidl::new_empty!(bool, D));
20884 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
20885 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20886 {
20887 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20888 }
20889 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20890 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20891 }
20892 }
20893
20894 next_offset += envelope_size;
20895 _next_ordinal_to_read += 1;
20896 if next_offset >= end_offset {
20897 return Ok(());
20898 }
20899
20900 while _next_ordinal_to_read < 13 {
20902 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20903 _next_ordinal_to_read += 1;
20904 next_offset += envelope_size;
20905 }
20906
20907 let next_out_of_line = decoder.next_out_of_line();
20908 let handles_before = decoder.remaining_handles();
20909 if let Some((inlined, num_bytes, num_handles)) =
20910 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20911 {
20912 let member_inline_size =
20913 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20914 if inlined != (member_inline_size <= 4) {
20915 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20916 }
20917 let inner_offset;
20918 let mut inner_depth = depth.clone();
20919 if inlined {
20920 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20921 inner_offset = next_offset;
20922 } else {
20923 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20924 inner_depth.increment()?;
20925 }
20926 let val_ref = self
20927 .is_physically_contiguous_required
20928 .get_or_insert_with(|| fidl::new_empty!(bool, D));
20929 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
20930 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20931 {
20932 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20933 }
20934 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20935 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20936 }
20937 }
20938
20939 next_offset += envelope_size;
20940
20941 while next_offset < end_offset {
20943 _next_ordinal_to_read += 1;
20944 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20945 next_offset += envelope_size;
20946 }
20947
20948 Ok(())
20949 }
20950 }
20951
20952 impl StreamBufferSettings {
20953 #[inline(always)]
20954 fn max_ordinal_present(&self) -> u64 {
20955 if let Some(_) = self.single_buffer_mode {
20956 return 6;
20957 }
20958 if let Some(_) = self.per_packet_buffer_bytes {
20959 return 5;
20960 }
20961 if let Some(_) = self.packet_count_for_client {
20962 return 4;
20963 }
20964 if let Some(_) = self.packet_count_for_server {
20965 return 3;
20966 }
20967 if let Some(_) = self.buffer_constraints_version_ordinal {
20968 return 2;
20969 }
20970 if let Some(_) = self.buffer_lifetime_ordinal {
20971 return 1;
20972 }
20973 0
20974 }
20975 }
20976
20977 impl fidl::encoding::ValueTypeMarker for StreamBufferSettings {
20978 type Borrowed<'a> = &'a Self;
20979 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20980 value
20981 }
20982 }
20983
20984 unsafe impl fidl::encoding::TypeMarker for StreamBufferSettings {
20985 type Owned = Self;
20986
20987 #[inline(always)]
20988 fn inline_align(_context: fidl::encoding::Context) -> usize {
20989 8
20990 }
20991
20992 #[inline(always)]
20993 fn inline_size(_context: fidl::encoding::Context) -> usize {
20994 16
20995 }
20996 }
20997
20998 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamBufferSettings, D>
20999 for &StreamBufferSettings
21000 {
21001 unsafe fn encode(
21002 self,
21003 encoder: &mut fidl::encoding::Encoder<'_, D>,
21004 offset: usize,
21005 mut depth: fidl::encoding::Depth,
21006 ) -> fidl::Result<()> {
21007 encoder.debug_check_bounds::<StreamBufferSettings>(offset);
21008 let max_ordinal: u64 = self.max_ordinal_present();
21010 encoder.write_num(max_ordinal, offset);
21011 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21012 if max_ordinal == 0 {
21014 return Ok(());
21015 }
21016 depth.increment()?;
21017 let envelope_size = 8;
21018 let bytes_len = max_ordinal as usize * envelope_size;
21019 #[allow(unused_variables)]
21020 let offset = encoder.out_of_line_offset(bytes_len);
21021 let mut _prev_end_offset: usize = 0;
21022 if 1 > max_ordinal {
21023 return Ok(());
21024 }
21025
21026 let cur_offset: usize = (1 - 1) * envelope_size;
21029
21030 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21032
21033 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21038 self.buffer_lifetime_ordinal
21039 .as_ref()
21040 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21041 encoder,
21042 offset + cur_offset,
21043 depth,
21044 )?;
21045
21046 _prev_end_offset = cur_offset + envelope_size;
21047 if 2 > max_ordinal {
21048 return Ok(());
21049 }
21050
21051 let cur_offset: usize = (2 - 1) * envelope_size;
21054
21055 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21057
21058 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21063 self.buffer_constraints_version_ordinal
21064 .as_ref()
21065 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21066 encoder,
21067 offset + cur_offset,
21068 depth,
21069 )?;
21070
21071 _prev_end_offset = cur_offset + envelope_size;
21072 if 3 > max_ordinal {
21073 return Ok(());
21074 }
21075
21076 let cur_offset: usize = (3 - 1) * envelope_size;
21079
21080 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21082
21083 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21088 self.packet_count_for_server
21089 .as_ref()
21090 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21091 encoder,
21092 offset + cur_offset,
21093 depth,
21094 )?;
21095
21096 _prev_end_offset = cur_offset + envelope_size;
21097 if 4 > max_ordinal {
21098 return Ok(());
21099 }
21100
21101 let cur_offset: usize = (4 - 1) * envelope_size;
21104
21105 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21107
21108 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21113 self.packet_count_for_client
21114 .as_ref()
21115 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21116 encoder,
21117 offset + cur_offset,
21118 depth,
21119 )?;
21120
21121 _prev_end_offset = cur_offset + envelope_size;
21122 if 5 > max_ordinal {
21123 return Ok(());
21124 }
21125
21126 let cur_offset: usize = (5 - 1) * envelope_size;
21129
21130 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21132
21133 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21138 self.per_packet_buffer_bytes
21139 .as_ref()
21140 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21141 encoder,
21142 offset + cur_offset,
21143 depth,
21144 )?;
21145
21146 _prev_end_offset = cur_offset + envelope_size;
21147 if 6 > max_ordinal {
21148 return Ok(());
21149 }
21150
21151 let cur_offset: usize = (6 - 1) * envelope_size;
21154
21155 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21157
21158 fidl::encoding::encode_in_envelope_optional::<bool, D>(
21163 self.single_buffer_mode
21164 .as_ref()
21165 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
21166 encoder,
21167 offset + cur_offset,
21168 depth,
21169 )?;
21170
21171 _prev_end_offset = cur_offset + envelope_size;
21172
21173 Ok(())
21174 }
21175 }
21176
21177 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamBufferSettings {
21178 #[inline(always)]
21179 fn new_empty() -> Self {
21180 Self::default()
21181 }
21182
21183 unsafe fn decode(
21184 &mut self,
21185 decoder: &mut fidl::encoding::Decoder<'_, D>,
21186 offset: usize,
21187 mut depth: fidl::encoding::Depth,
21188 ) -> fidl::Result<()> {
21189 decoder.debug_check_bounds::<Self>(offset);
21190 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21191 None => return Err(fidl::Error::NotNullable),
21192 Some(len) => len,
21193 };
21194 if len == 0 {
21196 return Ok(());
21197 };
21198 depth.increment()?;
21199 let envelope_size = 8;
21200 let bytes_len = len * envelope_size;
21201 let offset = decoder.out_of_line_offset(bytes_len)?;
21202 let mut _next_ordinal_to_read = 0;
21204 let mut next_offset = offset;
21205 let end_offset = offset + bytes_len;
21206 _next_ordinal_to_read += 1;
21207 if next_offset >= end_offset {
21208 return Ok(());
21209 }
21210
21211 while _next_ordinal_to_read < 1 {
21213 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21214 _next_ordinal_to_read += 1;
21215 next_offset += envelope_size;
21216 }
21217
21218 let next_out_of_line = decoder.next_out_of_line();
21219 let handles_before = decoder.remaining_handles();
21220 if let Some((inlined, num_bytes, num_handles)) =
21221 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21222 {
21223 let member_inline_size =
21224 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21225 if inlined != (member_inline_size <= 4) {
21226 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21227 }
21228 let inner_offset;
21229 let mut inner_depth = depth.clone();
21230 if inlined {
21231 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21232 inner_offset = next_offset;
21233 } else {
21234 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21235 inner_depth.increment()?;
21236 }
21237 let val_ref =
21238 self.buffer_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21239 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21240 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21241 {
21242 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21243 }
21244 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21245 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21246 }
21247 }
21248
21249 next_offset += envelope_size;
21250 _next_ordinal_to_read += 1;
21251 if next_offset >= end_offset {
21252 return Ok(());
21253 }
21254
21255 while _next_ordinal_to_read < 2 {
21257 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21258 _next_ordinal_to_read += 1;
21259 next_offset += envelope_size;
21260 }
21261
21262 let next_out_of_line = decoder.next_out_of_line();
21263 let handles_before = decoder.remaining_handles();
21264 if let Some((inlined, num_bytes, num_handles)) =
21265 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21266 {
21267 let member_inline_size =
21268 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21269 if inlined != (member_inline_size <= 4) {
21270 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21271 }
21272 let inner_offset;
21273 let mut inner_depth = depth.clone();
21274 if inlined {
21275 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21276 inner_offset = next_offset;
21277 } else {
21278 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21279 inner_depth.increment()?;
21280 }
21281 let val_ref = self
21282 .buffer_constraints_version_ordinal
21283 .get_or_insert_with(|| fidl::new_empty!(u64, D));
21284 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21285 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21286 {
21287 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21288 }
21289 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21290 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21291 }
21292 }
21293
21294 next_offset += envelope_size;
21295 _next_ordinal_to_read += 1;
21296 if next_offset >= end_offset {
21297 return Ok(());
21298 }
21299
21300 while _next_ordinal_to_read < 3 {
21302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21303 _next_ordinal_to_read += 1;
21304 next_offset += envelope_size;
21305 }
21306
21307 let next_out_of_line = decoder.next_out_of_line();
21308 let handles_before = decoder.remaining_handles();
21309 if let Some((inlined, num_bytes, num_handles)) =
21310 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21311 {
21312 let member_inline_size =
21313 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21314 if inlined != (member_inline_size <= 4) {
21315 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21316 }
21317 let inner_offset;
21318 let mut inner_depth = depth.clone();
21319 if inlined {
21320 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21321 inner_offset = next_offset;
21322 } else {
21323 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21324 inner_depth.increment()?;
21325 }
21326 let val_ref =
21327 self.packet_count_for_server.get_or_insert_with(|| fidl::new_empty!(u32, D));
21328 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21329 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21330 {
21331 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21332 }
21333 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21334 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21335 }
21336 }
21337
21338 next_offset += envelope_size;
21339 _next_ordinal_to_read += 1;
21340 if next_offset >= end_offset {
21341 return Ok(());
21342 }
21343
21344 while _next_ordinal_to_read < 4 {
21346 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21347 _next_ordinal_to_read += 1;
21348 next_offset += envelope_size;
21349 }
21350
21351 let next_out_of_line = decoder.next_out_of_line();
21352 let handles_before = decoder.remaining_handles();
21353 if let Some((inlined, num_bytes, num_handles)) =
21354 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21355 {
21356 let member_inline_size =
21357 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21358 if inlined != (member_inline_size <= 4) {
21359 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21360 }
21361 let inner_offset;
21362 let mut inner_depth = depth.clone();
21363 if inlined {
21364 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21365 inner_offset = next_offset;
21366 } else {
21367 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21368 inner_depth.increment()?;
21369 }
21370 let val_ref =
21371 self.packet_count_for_client.get_or_insert_with(|| fidl::new_empty!(u32, D));
21372 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21373 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21374 {
21375 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21376 }
21377 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21378 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21379 }
21380 }
21381
21382 next_offset += envelope_size;
21383 _next_ordinal_to_read += 1;
21384 if next_offset >= end_offset {
21385 return Ok(());
21386 }
21387
21388 while _next_ordinal_to_read < 5 {
21390 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21391 _next_ordinal_to_read += 1;
21392 next_offset += envelope_size;
21393 }
21394
21395 let next_out_of_line = decoder.next_out_of_line();
21396 let handles_before = decoder.remaining_handles();
21397 if let Some((inlined, num_bytes, num_handles)) =
21398 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21399 {
21400 let member_inline_size =
21401 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21402 if inlined != (member_inline_size <= 4) {
21403 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21404 }
21405 let inner_offset;
21406 let mut inner_depth = depth.clone();
21407 if inlined {
21408 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21409 inner_offset = next_offset;
21410 } else {
21411 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21412 inner_depth.increment()?;
21413 }
21414 let val_ref =
21415 self.per_packet_buffer_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
21416 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21417 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21418 {
21419 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21420 }
21421 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21422 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21423 }
21424 }
21425
21426 next_offset += envelope_size;
21427 _next_ordinal_to_read += 1;
21428 if next_offset >= end_offset {
21429 return Ok(());
21430 }
21431
21432 while _next_ordinal_to_read < 6 {
21434 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21435 _next_ordinal_to_read += 1;
21436 next_offset += envelope_size;
21437 }
21438
21439 let next_out_of_line = decoder.next_out_of_line();
21440 let handles_before = decoder.remaining_handles();
21441 if let Some((inlined, num_bytes, num_handles)) =
21442 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21443 {
21444 let member_inline_size =
21445 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21446 if inlined != (member_inline_size <= 4) {
21447 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21448 }
21449 let inner_offset;
21450 let mut inner_depth = depth.clone();
21451 if inlined {
21452 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21453 inner_offset = next_offset;
21454 } else {
21455 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21456 inner_depth.increment()?;
21457 }
21458 let val_ref =
21459 self.single_buffer_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
21460 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
21461 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21462 {
21463 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21464 }
21465 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21466 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21467 }
21468 }
21469
21470 next_offset += envelope_size;
21471
21472 while next_offset < end_offset {
21474 _next_ordinal_to_read += 1;
21475 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21476 next_offset += envelope_size;
21477 }
21478
21479 Ok(())
21480 }
21481 }
21482
21483 impl StreamOutputConstraints {
21484 #[inline(always)]
21485 fn max_ordinal_present(&self) -> u64 {
21486 if let Some(_) = self.buffer_constraints {
21487 return 3;
21488 }
21489 if let Some(_) = self.buffer_constraints_action_required {
21490 return 2;
21491 }
21492 if let Some(_) = self.stream_lifetime_ordinal {
21493 return 1;
21494 }
21495 0
21496 }
21497 }
21498
21499 impl fidl::encoding::ValueTypeMarker for StreamOutputConstraints {
21500 type Borrowed<'a> = &'a Self;
21501 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21502 value
21503 }
21504 }
21505
21506 unsafe impl fidl::encoding::TypeMarker for StreamOutputConstraints {
21507 type Owned = Self;
21508
21509 #[inline(always)]
21510 fn inline_align(_context: fidl::encoding::Context) -> usize {
21511 8
21512 }
21513
21514 #[inline(always)]
21515 fn inline_size(_context: fidl::encoding::Context) -> usize {
21516 16
21517 }
21518 }
21519
21520 unsafe impl<D: fidl::encoding::ResourceDialect>
21521 fidl::encoding::Encode<StreamOutputConstraints, D> for &StreamOutputConstraints
21522 {
21523 unsafe fn encode(
21524 self,
21525 encoder: &mut fidl::encoding::Encoder<'_, D>,
21526 offset: usize,
21527 mut depth: fidl::encoding::Depth,
21528 ) -> fidl::Result<()> {
21529 encoder.debug_check_bounds::<StreamOutputConstraints>(offset);
21530 let max_ordinal: u64 = self.max_ordinal_present();
21532 encoder.write_num(max_ordinal, offset);
21533 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21534 if max_ordinal == 0 {
21536 return Ok(());
21537 }
21538 depth.increment()?;
21539 let envelope_size = 8;
21540 let bytes_len = max_ordinal as usize * envelope_size;
21541 #[allow(unused_variables)]
21542 let offset = encoder.out_of_line_offset(bytes_len);
21543 let mut _prev_end_offset: usize = 0;
21544 if 1 > max_ordinal {
21545 return Ok(());
21546 }
21547
21548 let cur_offset: usize = (1 - 1) * envelope_size;
21551
21552 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21554
21555 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21560 self.stream_lifetime_ordinal
21561 .as_ref()
21562 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21563 encoder,
21564 offset + cur_offset,
21565 depth,
21566 )?;
21567
21568 _prev_end_offset = cur_offset + envelope_size;
21569 if 2 > max_ordinal {
21570 return Ok(());
21571 }
21572
21573 let cur_offset: usize = (2 - 1) * envelope_size;
21576
21577 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21579
21580 fidl::encoding::encode_in_envelope_optional::<bool, D>(
21585 self.buffer_constraints_action_required
21586 .as_ref()
21587 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
21588 encoder,
21589 offset + cur_offset,
21590 depth,
21591 )?;
21592
21593 _prev_end_offset = cur_offset + envelope_size;
21594 if 3 > max_ordinal {
21595 return Ok(());
21596 }
21597
21598 let cur_offset: usize = (3 - 1) * envelope_size;
21601
21602 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21604
21605 fidl::encoding::encode_in_envelope_optional::<StreamBufferConstraints, D>(
21610 self.buffer_constraints
21611 .as_ref()
21612 .map(<StreamBufferConstraints as fidl::encoding::ValueTypeMarker>::borrow),
21613 encoder,
21614 offset + cur_offset,
21615 depth,
21616 )?;
21617
21618 _prev_end_offset = cur_offset + envelope_size;
21619
21620 Ok(())
21621 }
21622 }
21623
21624 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
21625 for StreamOutputConstraints
21626 {
21627 #[inline(always)]
21628 fn new_empty() -> Self {
21629 Self::default()
21630 }
21631
21632 unsafe fn decode(
21633 &mut self,
21634 decoder: &mut fidl::encoding::Decoder<'_, D>,
21635 offset: usize,
21636 mut depth: fidl::encoding::Depth,
21637 ) -> fidl::Result<()> {
21638 decoder.debug_check_bounds::<Self>(offset);
21639 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21640 None => return Err(fidl::Error::NotNullable),
21641 Some(len) => len,
21642 };
21643 if len == 0 {
21645 return Ok(());
21646 };
21647 depth.increment()?;
21648 let envelope_size = 8;
21649 let bytes_len = len * envelope_size;
21650 let offset = decoder.out_of_line_offset(bytes_len)?;
21651 let mut _next_ordinal_to_read = 0;
21653 let mut next_offset = offset;
21654 let end_offset = offset + bytes_len;
21655 _next_ordinal_to_read += 1;
21656 if next_offset >= end_offset {
21657 return Ok(());
21658 }
21659
21660 while _next_ordinal_to_read < 1 {
21662 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21663 _next_ordinal_to_read += 1;
21664 next_offset += envelope_size;
21665 }
21666
21667 let next_out_of_line = decoder.next_out_of_line();
21668 let handles_before = decoder.remaining_handles();
21669 if let Some((inlined, num_bytes, num_handles)) =
21670 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21671 {
21672 let member_inline_size =
21673 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21674 if inlined != (member_inline_size <= 4) {
21675 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21676 }
21677 let inner_offset;
21678 let mut inner_depth = depth.clone();
21679 if inlined {
21680 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21681 inner_offset = next_offset;
21682 } else {
21683 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21684 inner_depth.increment()?;
21685 }
21686 let val_ref =
21687 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21688 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21689 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21690 {
21691 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21692 }
21693 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21694 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21695 }
21696 }
21697
21698 next_offset += envelope_size;
21699 _next_ordinal_to_read += 1;
21700 if next_offset >= end_offset {
21701 return Ok(());
21702 }
21703
21704 while _next_ordinal_to_read < 2 {
21706 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21707 _next_ordinal_to_read += 1;
21708 next_offset += envelope_size;
21709 }
21710
21711 let next_out_of_line = decoder.next_out_of_line();
21712 let handles_before = decoder.remaining_handles();
21713 if let Some((inlined, num_bytes, num_handles)) =
21714 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21715 {
21716 let member_inline_size =
21717 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21718 if inlined != (member_inline_size <= 4) {
21719 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21720 }
21721 let inner_offset;
21722 let mut inner_depth = depth.clone();
21723 if inlined {
21724 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21725 inner_offset = next_offset;
21726 } else {
21727 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21728 inner_depth.increment()?;
21729 }
21730 let val_ref = self
21731 .buffer_constraints_action_required
21732 .get_or_insert_with(|| fidl::new_empty!(bool, D));
21733 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
21734 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21735 {
21736 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21737 }
21738 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21739 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21740 }
21741 }
21742
21743 next_offset += envelope_size;
21744 _next_ordinal_to_read += 1;
21745 if next_offset >= end_offset {
21746 return Ok(());
21747 }
21748
21749 while _next_ordinal_to_read < 3 {
21751 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21752 _next_ordinal_to_read += 1;
21753 next_offset += envelope_size;
21754 }
21755
21756 let next_out_of_line = decoder.next_out_of_line();
21757 let handles_before = decoder.remaining_handles();
21758 if let Some((inlined, num_bytes, num_handles)) =
21759 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21760 {
21761 let member_inline_size =
21762 <StreamBufferConstraints as fidl::encoding::TypeMarker>::inline_size(
21763 decoder.context,
21764 );
21765 if inlined != (member_inline_size <= 4) {
21766 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21767 }
21768 let inner_offset;
21769 let mut inner_depth = depth.clone();
21770 if inlined {
21771 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21772 inner_offset = next_offset;
21773 } else {
21774 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21775 inner_depth.increment()?;
21776 }
21777 let val_ref = self
21778 .buffer_constraints
21779 .get_or_insert_with(|| fidl::new_empty!(StreamBufferConstraints, D));
21780 fidl::decode!(
21781 StreamBufferConstraints,
21782 D,
21783 val_ref,
21784 decoder,
21785 inner_offset,
21786 inner_depth
21787 )?;
21788 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21789 {
21790 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21791 }
21792 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21793 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21794 }
21795 }
21796
21797 next_offset += envelope_size;
21798
21799 while next_offset < end_offset {
21801 _next_ordinal_to_read += 1;
21802 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21803 next_offset += envelope_size;
21804 }
21805
21806 Ok(())
21807 }
21808 }
21809
21810 impl StreamOutputFormat {
21811 #[inline(always)]
21812 fn max_ordinal_present(&self) -> u64 {
21813 if let Some(_) = self.format_details {
21814 return 2;
21815 }
21816 if let Some(_) = self.stream_lifetime_ordinal {
21817 return 1;
21818 }
21819 0
21820 }
21821 }
21822
21823 impl fidl::encoding::ValueTypeMarker for StreamOutputFormat {
21824 type Borrowed<'a> = &'a Self;
21825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21826 value
21827 }
21828 }
21829
21830 unsafe impl fidl::encoding::TypeMarker for StreamOutputFormat {
21831 type Owned = Self;
21832
21833 #[inline(always)]
21834 fn inline_align(_context: fidl::encoding::Context) -> usize {
21835 8
21836 }
21837
21838 #[inline(always)]
21839 fn inline_size(_context: fidl::encoding::Context) -> usize {
21840 16
21841 }
21842 }
21843
21844 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamOutputFormat, D>
21845 for &StreamOutputFormat
21846 {
21847 unsafe fn encode(
21848 self,
21849 encoder: &mut fidl::encoding::Encoder<'_, D>,
21850 offset: usize,
21851 mut depth: fidl::encoding::Depth,
21852 ) -> fidl::Result<()> {
21853 encoder.debug_check_bounds::<StreamOutputFormat>(offset);
21854 let max_ordinal: u64 = self.max_ordinal_present();
21856 encoder.write_num(max_ordinal, offset);
21857 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21858 if max_ordinal == 0 {
21860 return Ok(());
21861 }
21862 depth.increment()?;
21863 let envelope_size = 8;
21864 let bytes_len = max_ordinal as usize * envelope_size;
21865 #[allow(unused_variables)]
21866 let offset = encoder.out_of_line_offset(bytes_len);
21867 let mut _prev_end_offset: usize = 0;
21868 if 1 > max_ordinal {
21869 return Ok(());
21870 }
21871
21872 let cur_offset: usize = (1 - 1) * envelope_size;
21875
21876 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21878
21879 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21884 self.stream_lifetime_ordinal
21885 .as_ref()
21886 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21887 encoder,
21888 offset + cur_offset,
21889 depth,
21890 )?;
21891
21892 _prev_end_offset = cur_offset + envelope_size;
21893 if 2 > max_ordinal {
21894 return Ok(());
21895 }
21896
21897 let cur_offset: usize = (2 - 1) * envelope_size;
21900
21901 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21903
21904 fidl::encoding::encode_in_envelope_optional::<FormatDetails, D>(
21909 self.format_details
21910 .as_ref()
21911 .map(<FormatDetails as fidl::encoding::ValueTypeMarker>::borrow),
21912 encoder,
21913 offset + cur_offset,
21914 depth,
21915 )?;
21916
21917 _prev_end_offset = cur_offset + envelope_size;
21918
21919 Ok(())
21920 }
21921 }
21922
21923 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamOutputFormat {
21924 #[inline(always)]
21925 fn new_empty() -> Self {
21926 Self::default()
21927 }
21928
21929 unsafe fn decode(
21930 &mut self,
21931 decoder: &mut fidl::encoding::Decoder<'_, D>,
21932 offset: usize,
21933 mut depth: fidl::encoding::Depth,
21934 ) -> fidl::Result<()> {
21935 decoder.debug_check_bounds::<Self>(offset);
21936 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21937 None => return Err(fidl::Error::NotNullable),
21938 Some(len) => len,
21939 };
21940 if len == 0 {
21942 return Ok(());
21943 };
21944 depth.increment()?;
21945 let envelope_size = 8;
21946 let bytes_len = len * envelope_size;
21947 let offset = decoder.out_of_line_offset(bytes_len)?;
21948 let mut _next_ordinal_to_read = 0;
21950 let mut next_offset = offset;
21951 let end_offset = offset + bytes_len;
21952 _next_ordinal_to_read += 1;
21953 if next_offset >= end_offset {
21954 return Ok(());
21955 }
21956
21957 while _next_ordinal_to_read < 1 {
21959 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21960 _next_ordinal_to_read += 1;
21961 next_offset += envelope_size;
21962 }
21963
21964 let next_out_of_line = decoder.next_out_of_line();
21965 let handles_before = decoder.remaining_handles();
21966 if let Some((inlined, num_bytes, num_handles)) =
21967 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21968 {
21969 let member_inline_size =
21970 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21971 if inlined != (member_inline_size <= 4) {
21972 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21973 }
21974 let inner_offset;
21975 let mut inner_depth = depth.clone();
21976 if inlined {
21977 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21978 inner_offset = next_offset;
21979 } else {
21980 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21981 inner_depth.increment()?;
21982 }
21983 let val_ref =
21984 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21985 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21986 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21987 {
21988 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21989 }
21990 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21991 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21992 }
21993 }
21994
21995 next_offset += envelope_size;
21996 _next_ordinal_to_read += 1;
21997 if next_offset >= end_offset {
21998 return Ok(());
21999 }
22000
22001 while _next_ordinal_to_read < 2 {
22003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22004 _next_ordinal_to_read += 1;
22005 next_offset += envelope_size;
22006 }
22007
22008 let next_out_of_line = decoder.next_out_of_line();
22009 let handles_before = decoder.remaining_handles();
22010 if let Some((inlined, num_bytes, num_handles)) =
22011 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22012 {
22013 let member_inline_size =
22014 <FormatDetails as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22015 if inlined != (member_inline_size <= 4) {
22016 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22017 }
22018 let inner_offset;
22019 let mut inner_depth = depth.clone();
22020 if inlined {
22021 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22022 inner_offset = next_offset;
22023 } else {
22024 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22025 inner_depth.increment()?;
22026 }
22027 let val_ref =
22028 self.format_details.get_or_insert_with(|| fidl::new_empty!(FormatDetails, D));
22029 fidl::decode!(FormatDetails, D, val_ref, decoder, inner_offset, inner_depth)?;
22030 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22031 {
22032 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22033 }
22034 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22035 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22036 }
22037 }
22038
22039 next_offset += envelope_size;
22040
22041 while next_offset < end_offset {
22043 _next_ordinal_to_read += 1;
22044 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22045 next_offset += envelope_size;
22046 }
22047
22048 Ok(())
22049 }
22050 }
22051
22052 impl UsageStateDucked {
22053 #[inline(always)]
22054 fn max_ordinal_present(&self) -> u64 {
22055 0
22056 }
22057 }
22058
22059 impl fidl::encoding::ValueTypeMarker for UsageStateDucked {
22060 type Borrowed<'a> = &'a Self;
22061 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22062 value
22063 }
22064 }
22065
22066 unsafe impl fidl::encoding::TypeMarker for UsageStateDucked {
22067 type Owned = Self;
22068
22069 #[inline(always)]
22070 fn inline_align(_context: fidl::encoding::Context) -> usize {
22071 8
22072 }
22073
22074 #[inline(always)]
22075 fn inline_size(_context: fidl::encoding::Context) -> usize {
22076 16
22077 }
22078 }
22079
22080 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateDucked, D>
22081 for &UsageStateDucked
22082 {
22083 unsafe fn encode(
22084 self,
22085 encoder: &mut fidl::encoding::Encoder<'_, D>,
22086 offset: usize,
22087 mut depth: fidl::encoding::Depth,
22088 ) -> fidl::Result<()> {
22089 encoder.debug_check_bounds::<UsageStateDucked>(offset);
22090 let max_ordinal: u64 = self.max_ordinal_present();
22092 encoder.write_num(max_ordinal, offset);
22093 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22094 if max_ordinal == 0 {
22096 return Ok(());
22097 }
22098 depth.increment()?;
22099 let envelope_size = 8;
22100 let bytes_len = max_ordinal as usize * envelope_size;
22101 #[allow(unused_variables)]
22102 let offset = encoder.out_of_line_offset(bytes_len);
22103 let mut _prev_end_offset: usize = 0;
22104
22105 Ok(())
22106 }
22107 }
22108
22109 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateDucked {
22110 #[inline(always)]
22111 fn new_empty() -> Self {
22112 Self::default()
22113 }
22114
22115 unsafe fn decode(
22116 &mut self,
22117 decoder: &mut fidl::encoding::Decoder<'_, D>,
22118 offset: usize,
22119 mut depth: fidl::encoding::Depth,
22120 ) -> fidl::Result<()> {
22121 decoder.debug_check_bounds::<Self>(offset);
22122 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22123 None => return Err(fidl::Error::NotNullable),
22124 Some(len) => len,
22125 };
22126 if len == 0 {
22128 return Ok(());
22129 };
22130 depth.increment()?;
22131 let envelope_size = 8;
22132 let bytes_len = len * envelope_size;
22133 let offset = decoder.out_of_line_offset(bytes_len)?;
22134 let mut _next_ordinal_to_read = 0;
22136 let mut next_offset = offset;
22137 let end_offset = offset + bytes_len;
22138
22139 while next_offset < end_offset {
22141 _next_ordinal_to_read += 1;
22142 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22143 next_offset += envelope_size;
22144 }
22145
22146 Ok(())
22147 }
22148 }
22149
22150 impl UsageStateMuted {
22151 #[inline(always)]
22152 fn max_ordinal_present(&self) -> u64 {
22153 0
22154 }
22155 }
22156
22157 impl fidl::encoding::ValueTypeMarker for UsageStateMuted {
22158 type Borrowed<'a> = &'a Self;
22159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22160 value
22161 }
22162 }
22163
22164 unsafe impl fidl::encoding::TypeMarker for UsageStateMuted {
22165 type Owned = Self;
22166
22167 #[inline(always)]
22168 fn inline_align(_context: fidl::encoding::Context) -> usize {
22169 8
22170 }
22171
22172 #[inline(always)]
22173 fn inline_size(_context: fidl::encoding::Context) -> usize {
22174 16
22175 }
22176 }
22177
22178 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateMuted, D>
22179 for &UsageStateMuted
22180 {
22181 unsafe fn encode(
22182 self,
22183 encoder: &mut fidl::encoding::Encoder<'_, D>,
22184 offset: usize,
22185 mut depth: fidl::encoding::Depth,
22186 ) -> fidl::Result<()> {
22187 encoder.debug_check_bounds::<UsageStateMuted>(offset);
22188 let max_ordinal: u64 = self.max_ordinal_present();
22190 encoder.write_num(max_ordinal, offset);
22191 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22192 if max_ordinal == 0 {
22194 return Ok(());
22195 }
22196 depth.increment()?;
22197 let envelope_size = 8;
22198 let bytes_len = max_ordinal as usize * envelope_size;
22199 #[allow(unused_variables)]
22200 let offset = encoder.out_of_line_offset(bytes_len);
22201 let mut _prev_end_offset: usize = 0;
22202
22203 Ok(())
22204 }
22205 }
22206
22207 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateMuted {
22208 #[inline(always)]
22209 fn new_empty() -> Self {
22210 Self::default()
22211 }
22212
22213 unsafe fn decode(
22214 &mut self,
22215 decoder: &mut fidl::encoding::Decoder<'_, D>,
22216 offset: usize,
22217 mut depth: fidl::encoding::Depth,
22218 ) -> fidl::Result<()> {
22219 decoder.debug_check_bounds::<Self>(offset);
22220 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22221 None => return Err(fidl::Error::NotNullable),
22222 Some(len) => len,
22223 };
22224 if len == 0 {
22226 return Ok(());
22227 };
22228 depth.increment()?;
22229 let envelope_size = 8;
22230 let bytes_len = len * envelope_size;
22231 let offset = decoder.out_of_line_offset(bytes_len)?;
22232 let mut _next_ordinal_to_read = 0;
22234 let mut next_offset = offset;
22235 let end_offset = offset + bytes_len;
22236
22237 while next_offset < end_offset {
22239 _next_ordinal_to_read += 1;
22240 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22241 next_offset += envelope_size;
22242 }
22243
22244 Ok(())
22245 }
22246 }
22247
22248 impl UsageStateUnadjusted {
22249 #[inline(always)]
22250 fn max_ordinal_present(&self) -> u64 {
22251 0
22252 }
22253 }
22254
22255 impl fidl::encoding::ValueTypeMarker for UsageStateUnadjusted {
22256 type Borrowed<'a> = &'a Self;
22257 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22258 value
22259 }
22260 }
22261
22262 unsafe impl fidl::encoding::TypeMarker for UsageStateUnadjusted {
22263 type Owned = Self;
22264
22265 #[inline(always)]
22266 fn inline_align(_context: fidl::encoding::Context) -> usize {
22267 8
22268 }
22269
22270 #[inline(always)]
22271 fn inline_size(_context: fidl::encoding::Context) -> usize {
22272 16
22273 }
22274 }
22275
22276 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateUnadjusted, D>
22277 for &UsageStateUnadjusted
22278 {
22279 unsafe fn encode(
22280 self,
22281 encoder: &mut fidl::encoding::Encoder<'_, D>,
22282 offset: usize,
22283 mut depth: fidl::encoding::Depth,
22284 ) -> fidl::Result<()> {
22285 encoder.debug_check_bounds::<UsageStateUnadjusted>(offset);
22286 let max_ordinal: u64 = self.max_ordinal_present();
22288 encoder.write_num(max_ordinal, offset);
22289 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22290 if max_ordinal == 0 {
22292 return Ok(());
22293 }
22294 depth.increment()?;
22295 let envelope_size = 8;
22296 let bytes_len = max_ordinal as usize * envelope_size;
22297 #[allow(unused_variables)]
22298 let offset = encoder.out_of_line_offset(bytes_len);
22299 let mut _prev_end_offset: usize = 0;
22300
22301 Ok(())
22302 }
22303 }
22304
22305 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateUnadjusted {
22306 #[inline(always)]
22307 fn new_empty() -> Self {
22308 Self::default()
22309 }
22310
22311 unsafe fn decode(
22312 &mut self,
22313 decoder: &mut fidl::encoding::Decoder<'_, D>,
22314 offset: usize,
22315 mut depth: fidl::encoding::Depth,
22316 ) -> fidl::Result<()> {
22317 decoder.debug_check_bounds::<Self>(offset);
22318 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22319 None => return Err(fidl::Error::NotNullable),
22320 Some(len) => len,
22321 };
22322 if len == 0 {
22324 return Ok(());
22325 };
22326 depth.increment()?;
22327 let envelope_size = 8;
22328 let bytes_len = len * envelope_size;
22329 let offset = decoder.out_of_line_offset(bytes_len)?;
22330 let mut _next_ordinal_to_read = 0;
22332 let mut next_offset = offset;
22333 let end_offset = offset + bytes_len;
22334
22335 while next_offset < end_offset {
22337 _next_ordinal_to_read += 1;
22338 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22339 next_offset += envelope_size;
22340 }
22341
22342 Ok(())
22343 }
22344 }
22345
22346 impl fidl::encoding::ValueTypeMarker for AacBitRate {
22347 type Borrowed<'a> = &'a Self;
22348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22349 value
22350 }
22351 }
22352
22353 unsafe impl fidl::encoding::TypeMarker for AacBitRate {
22354 type Owned = Self;
22355
22356 #[inline(always)]
22357 fn inline_align(_context: fidl::encoding::Context) -> usize {
22358 8
22359 }
22360
22361 #[inline(always)]
22362 fn inline_size(_context: fidl::encoding::Context) -> usize {
22363 16
22364 }
22365 }
22366
22367 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacBitRate, D>
22368 for &AacBitRate
22369 {
22370 #[inline]
22371 unsafe fn encode(
22372 self,
22373 encoder: &mut fidl::encoding::Encoder<'_, D>,
22374 offset: usize,
22375 _depth: fidl::encoding::Depth,
22376 ) -> fidl::Result<()> {
22377 encoder.debug_check_bounds::<AacBitRate>(offset);
22378 encoder.write_num::<u64>(self.ordinal(), offset);
22379 match self {
22380 AacBitRate::Constant(ref val) => {
22381 fidl::encoding::encode_in_envelope::<AacConstantBitRate, D>(
22382 <AacConstantBitRate as fidl::encoding::ValueTypeMarker>::borrow(val),
22383 encoder,
22384 offset + 8,
22385 _depth,
22386 )
22387 }
22388 AacBitRate::Variable(ref val) => {
22389 fidl::encoding::encode_in_envelope::<AacVariableBitRate, D>(
22390 <AacVariableBitRate as fidl::encoding::ValueTypeMarker>::borrow(val),
22391 encoder,
22392 offset + 8,
22393 _depth,
22394 )
22395 }
22396 }
22397 }
22398 }
22399
22400 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacBitRate {
22401 #[inline(always)]
22402 fn new_empty() -> Self {
22403 Self::Constant(fidl::new_empty!(AacConstantBitRate, D))
22404 }
22405
22406 #[inline]
22407 unsafe fn decode(
22408 &mut self,
22409 decoder: &mut fidl::encoding::Decoder<'_, D>,
22410 offset: usize,
22411 mut depth: fidl::encoding::Depth,
22412 ) -> fidl::Result<()> {
22413 decoder.debug_check_bounds::<Self>(offset);
22414 #[allow(unused_variables)]
22415 let next_out_of_line = decoder.next_out_of_line();
22416 let handles_before = decoder.remaining_handles();
22417 let (ordinal, inlined, num_bytes, num_handles) =
22418 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22419
22420 let member_inline_size = match ordinal {
22421 1 => {
22422 <AacConstantBitRate as fidl::encoding::TypeMarker>::inline_size(decoder.context)
22423 }
22424 2 => {
22425 <AacVariableBitRate as fidl::encoding::TypeMarker>::inline_size(decoder.context)
22426 }
22427 _ => return Err(fidl::Error::UnknownUnionTag),
22428 };
22429
22430 if inlined != (member_inline_size <= 4) {
22431 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22432 }
22433 let _inner_offset;
22434 if inlined {
22435 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22436 _inner_offset = offset + 8;
22437 } else {
22438 depth.increment()?;
22439 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22440 }
22441 match ordinal {
22442 1 => {
22443 #[allow(irrefutable_let_patterns)]
22444 if let AacBitRate::Constant(_) = self {
22445 } else {
22447 *self = AacBitRate::Constant(fidl::new_empty!(AacConstantBitRate, D));
22449 }
22450 #[allow(irrefutable_let_patterns)]
22451 if let AacBitRate::Constant(ref mut val) = self {
22452 fidl::decode!(AacConstantBitRate, D, val, decoder, _inner_offset, depth)?;
22453 } else {
22454 unreachable!()
22455 }
22456 }
22457 2 => {
22458 #[allow(irrefutable_let_patterns)]
22459 if let AacBitRate::Variable(_) = self {
22460 } else {
22462 *self = AacBitRate::Variable(fidl::new_empty!(AacVariableBitRate, D));
22464 }
22465 #[allow(irrefutable_let_patterns)]
22466 if let AacBitRate::Variable(ref mut val) = self {
22467 fidl::decode!(AacVariableBitRate, D, val, decoder, _inner_offset, depth)?;
22468 } else {
22469 unreachable!()
22470 }
22471 }
22472 ordinal => panic!("unexpected ordinal {:?}", ordinal),
22473 }
22474 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22475 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22476 }
22477 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22478 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22479 }
22480 Ok(())
22481 }
22482 }
22483
22484 impl fidl::encoding::ValueTypeMarker for AacTransport {
22485 type Borrowed<'a> = &'a Self;
22486 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22487 value
22488 }
22489 }
22490
22491 unsafe impl fidl::encoding::TypeMarker for AacTransport {
22492 type Owned = Self;
22493
22494 #[inline(always)]
22495 fn inline_align(_context: fidl::encoding::Context) -> usize {
22496 8
22497 }
22498
22499 #[inline(always)]
22500 fn inline_size(_context: fidl::encoding::Context) -> usize {
22501 16
22502 }
22503 }
22504
22505 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransport, D>
22506 for &AacTransport
22507 {
22508 #[inline]
22509 unsafe fn encode(
22510 self,
22511 encoder: &mut fidl::encoding::Encoder<'_, D>,
22512 offset: usize,
22513 _depth: fidl::encoding::Depth,
22514 ) -> fidl::Result<()> {
22515 encoder.debug_check_bounds::<AacTransport>(offset);
22516 encoder.write_num::<u64>(self.ordinal(), offset);
22517 match self {
22518 AacTransport::Raw(ref val) => {
22519 fidl::encoding::encode_in_envelope::<AacTransportRaw, D>(
22520 <AacTransportRaw as fidl::encoding::ValueTypeMarker>::borrow(val),
22521 encoder,
22522 offset + 8,
22523 _depth,
22524 )
22525 }
22526 AacTransport::Latm(ref val) => {
22527 fidl::encoding::encode_in_envelope::<AacTransportLatm, D>(
22528 <AacTransportLatm as fidl::encoding::ValueTypeMarker>::borrow(val),
22529 encoder,
22530 offset + 8,
22531 _depth,
22532 )
22533 }
22534 AacTransport::Adts(ref val) => {
22535 fidl::encoding::encode_in_envelope::<AacTransportAdts, D>(
22536 <AacTransportAdts as fidl::encoding::ValueTypeMarker>::borrow(val),
22537 encoder,
22538 offset + 8,
22539 _depth,
22540 )
22541 }
22542 AacTransport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
22543 }
22544 }
22545 }
22546
22547 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransport {
22548 #[inline(always)]
22549 fn new_empty() -> Self {
22550 Self::__SourceBreaking { unknown_ordinal: 0 }
22551 }
22552
22553 #[inline]
22554 unsafe fn decode(
22555 &mut self,
22556 decoder: &mut fidl::encoding::Decoder<'_, D>,
22557 offset: usize,
22558 mut depth: fidl::encoding::Depth,
22559 ) -> fidl::Result<()> {
22560 decoder.debug_check_bounds::<Self>(offset);
22561 #[allow(unused_variables)]
22562 let next_out_of_line = decoder.next_out_of_line();
22563 let handles_before = decoder.remaining_handles();
22564 let (ordinal, inlined, num_bytes, num_handles) =
22565 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22566
22567 let member_inline_size = match ordinal {
22568 1 => <AacTransportRaw as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22569 2 => <AacTransportLatm as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22570 3 => <AacTransportAdts as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22571 0 => return Err(fidl::Error::UnknownUnionTag),
22572 _ => num_bytes as usize,
22573 };
22574
22575 if inlined != (member_inline_size <= 4) {
22576 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22577 }
22578 let _inner_offset;
22579 if inlined {
22580 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22581 _inner_offset = offset + 8;
22582 } else {
22583 depth.increment()?;
22584 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22585 }
22586 match ordinal {
22587 1 => {
22588 #[allow(irrefutable_let_patterns)]
22589 if let AacTransport::Raw(_) = self {
22590 } else {
22592 *self = AacTransport::Raw(fidl::new_empty!(AacTransportRaw, D));
22594 }
22595 #[allow(irrefutable_let_patterns)]
22596 if let AacTransport::Raw(ref mut val) = self {
22597 fidl::decode!(AacTransportRaw, D, val, decoder, _inner_offset, depth)?;
22598 } else {
22599 unreachable!()
22600 }
22601 }
22602 2 => {
22603 #[allow(irrefutable_let_patterns)]
22604 if let AacTransport::Latm(_) = self {
22605 } else {
22607 *self = AacTransport::Latm(fidl::new_empty!(AacTransportLatm, D));
22609 }
22610 #[allow(irrefutable_let_patterns)]
22611 if let AacTransport::Latm(ref mut val) = self {
22612 fidl::decode!(AacTransportLatm, D, val, decoder, _inner_offset, depth)?;
22613 } else {
22614 unreachable!()
22615 }
22616 }
22617 3 => {
22618 #[allow(irrefutable_let_patterns)]
22619 if let AacTransport::Adts(_) = self {
22620 } else {
22622 *self = AacTransport::Adts(fidl::new_empty!(AacTransportAdts, D));
22624 }
22625 #[allow(irrefutable_let_patterns)]
22626 if let AacTransport::Adts(ref mut val) = self {
22627 fidl::decode!(AacTransportAdts, D, val, decoder, _inner_offset, depth)?;
22628 } else {
22629 unreachable!()
22630 }
22631 }
22632 #[allow(deprecated)]
22633 ordinal => {
22634 for _ in 0..num_handles {
22635 decoder.drop_next_handle()?;
22636 }
22637 *self = AacTransport::__SourceBreaking { unknown_ordinal: ordinal };
22638 }
22639 }
22640 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22641 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22642 }
22643 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22644 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22645 }
22646 Ok(())
22647 }
22648 }
22649
22650 impl fidl::encoding::ValueTypeMarker for AudioCapturerConfiguration {
22651 type Borrowed<'a> = &'a Self;
22652 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22653 value
22654 }
22655 }
22656
22657 unsafe impl fidl::encoding::TypeMarker for AudioCapturerConfiguration {
22658 type Owned = Self;
22659
22660 #[inline(always)]
22661 fn inline_align(_context: fidl::encoding::Context) -> usize {
22662 8
22663 }
22664
22665 #[inline(always)]
22666 fn inline_size(_context: fidl::encoding::Context) -> usize {
22667 16
22668 }
22669 }
22670
22671 unsafe impl<D: fidl::encoding::ResourceDialect>
22672 fidl::encoding::Encode<AudioCapturerConfiguration, D> for &AudioCapturerConfiguration
22673 {
22674 #[inline]
22675 unsafe fn encode(
22676 self,
22677 encoder: &mut fidl::encoding::Encoder<'_, D>,
22678 offset: usize,
22679 _depth: fidl::encoding::Depth,
22680 ) -> fidl::Result<()> {
22681 encoder.debug_check_bounds::<AudioCapturerConfiguration>(offset);
22682 encoder.write_num::<u64>(self.ordinal(), offset);
22683 match self {
22684 AudioCapturerConfiguration::Loopback(ref val) => fidl::encoding::encode_in_envelope::<
22685 LoopbackAudioCapturerConfiguration,
22686 D,
22687 >(
22688 <LoopbackAudioCapturerConfiguration as fidl::encoding::ValueTypeMarker>::borrow(
22689 val,
22690 ),
22691 encoder,
22692 offset + 8,
22693 _depth,
22694 ),
22695 AudioCapturerConfiguration::Input(ref val) => fidl::encoding::encode_in_envelope::<
22696 InputAudioCapturerConfiguration,
22697 D,
22698 >(
22699 <InputAudioCapturerConfiguration as fidl::encoding::ValueTypeMarker>::borrow(
22700 val,
22701 ),
22702 encoder,
22703 offset + 8,
22704 _depth,
22705 ),
22706 }
22707 }
22708 }
22709
22710 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
22711 for AudioCapturerConfiguration
22712 {
22713 #[inline(always)]
22714 fn new_empty() -> Self {
22715 Self::Loopback(fidl::new_empty!(LoopbackAudioCapturerConfiguration, D))
22716 }
22717
22718 #[inline]
22719 unsafe fn decode(
22720 &mut self,
22721 decoder: &mut fidl::encoding::Decoder<'_, D>,
22722 offset: usize,
22723 mut depth: fidl::encoding::Depth,
22724 ) -> fidl::Result<()> {
22725 decoder.debug_check_bounds::<Self>(offset);
22726 #[allow(unused_variables)]
22727 let next_out_of_line = decoder.next_out_of_line();
22728 let handles_before = decoder.remaining_handles();
22729 let (ordinal, inlined, num_bytes, num_handles) =
22730 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22731
22732 let member_inline_size = match ordinal {
22733 1 => {
22734 <LoopbackAudioCapturerConfiguration as fidl::encoding::TypeMarker>::inline_size(
22735 decoder.context,
22736 )
22737 }
22738 2 => <InputAudioCapturerConfiguration as fidl::encoding::TypeMarker>::inline_size(
22739 decoder.context,
22740 ),
22741 _ => return Err(fidl::Error::UnknownUnionTag),
22742 };
22743
22744 if inlined != (member_inline_size <= 4) {
22745 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22746 }
22747 let _inner_offset;
22748 if inlined {
22749 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22750 _inner_offset = offset + 8;
22751 } else {
22752 depth.increment()?;
22753 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22754 }
22755 match ordinal {
22756 1 => {
22757 #[allow(irrefutable_let_patterns)]
22758 if let AudioCapturerConfiguration::Loopback(_) = self {
22759 } else {
22761 *self = AudioCapturerConfiguration::Loopback(fidl::new_empty!(
22763 LoopbackAudioCapturerConfiguration,
22764 D
22765 ));
22766 }
22767 #[allow(irrefutable_let_patterns)]
22768 if let AudioCapturerConfiguration::Loopback(ref mut val) = self {
22769 fidl::decode!(
22770 LoopbackAudioCapturerConfiguration,
22771 D,
22772 val,
22773 decoder,
22774 _inner_offset,
22775 depth
22776 )?;
22777 } else {
22778 unreachable!()
22779 }
22780 }
22781 2 => {
22782 #[allow(irrefutable_let_patterns)]
22783 if let AudioCapturerConfiguration::Input(_) = self {
22784 } else {
22786 *self = AudioCapturerConfiguration::Input(fidl::new_empty!(
22788 InputAudioCapturerConfiguration,
22789 D
22790 ));
22791 }
22792 #[allow(irrefutable_let_patterns)]
22793 if let AudioCapturerConfiguration::Input(ref mut val) = self {
22794 fidl::decode!(
22795 InputAudioCapturerConfiguration,
22796 D,
22797 val,
22798 decoder,
22799 _inner_offset,
22800 depth
22801 )?;
22802 } else {
22803 unreachable!()
22804 }
22805 }
22806 ordinal => panic!("unexpected ordinal {:?}", ordinal),
22807 }
22808 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22809 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22810 }
22811 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22812 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22813 }
22814 Ok(())
22815 }
22816 }
22817
22818 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormat {
22819 type Borrowed<'a> = &'a Self;
22820 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22821 value
22822 }
22823 }
22824
22825 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormat {
22826 type Owned = Self;
22827
22828 #[inline(always)]
22829 fn inline_align(_context: fidl::encoding::Context) -> usize {
22830 8
22831 }
22832
22833 #[inline(always)]
22834 fn inline_size(_context: fidl::encoding::Context) -> usize {
22835 16
22836 }
22837 }
22838
22839 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioCompressedFormat, D>
22840 for &AudioCompressedFormat
22841 {
22842 #[inline]
22843 unsafe fn encode(
22844 self,
22845 encoder: &mut fidl::encoding::Encoder<'_, D>,
22846 offset: usize,
22847 _depth: fidl::encoding::Depth,
22848 ) -> fidl::Result<()> {
22849 encoder.debug_check_bounds::<AudioCompressedFormat>(offset);
22850 encoder.write_num::<u64>(self.ordinal(), offset);
22851 match self {
22852 AudioCompressedFormat::Aac(ref val) => {
22853 fidl::encoding::encode_in_envelope::<AudioCompressedFormatAac, D>(
22854 <AudioCompressedFormatAac as fidl::encoding::ValueTypeMarker>::borrow(val),
22855 encoder,
22856 offset + 8,
22857 _depth,
22858 )
22859 }
22860 AudioCompressedFormat::Sbc(ref val) => {
22861 fidl::encoding::encode_in_envelope::<AudioCompressedFormatSbc, D>(
22862 <AudioCompressedFormatSbc as fidl::encoding::ValueTypeMarker>::borrow(val),
22863 encoder,
22864 offset + 8,
22865 _depth,
22866 )
22867 }
22868 AudioCompressedFormat::Cvsd(ref val) => {
22869 fidl::encoding::encode_in_envelope::<AudioCompressedFormatCvsd, D>(
22870 <AudioCompressedFormatCvsd as fidl::encoding::ValueTypeMarker>::borrow(val),
22871 encoder,
22872 offset + 8,
22873 _depth,
22874 )
22875 }
22876 AudioCompressedFormat::Lc3(ref val) => {
22877 fidl::encoding::encode_in_envelope::<AudioCompressedFormatLc3, D>(
22878 <AudioCompressedFormatLc3 as fidl::encoding::ValueTypeMarker>::borrow(val),
22879 encoder,
22880 offset + 8,
22881 _depth,
22882 )
22883 }
22884 AudioCompressedFormat::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
22885 }
22886 }
22887 }
22888
22889 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCompressedFormat {
22890 #[inline(always)]
22891 fn new_empty() -> Self {
22892 Self::__SourceBreaking { unknown_ordinal: 0 }
22893 }
22894
22895 #[inline]
22896 unsafe fn decode(
22897 &mut self,
22898 decoder: &mut fidl::encoding::Decoder<'_, D>,
22899 offset: usize,
22900 mut depth: fidl::encoding::Depth,
22901 ) -> fidl::Result<()> {
22902 decoder.debug_check_bounds::<Self>(offset);
22903 #[allow(unused_variables)]
22904 let next_out_of_line = decoder.next_out_of_line();
22905 let handles_before = decoder.remaining_handles();
22906 let (ordinal, inlined, num_bytes, num_handles) =
22907 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22908
22909 let member_inline_size = match ordinal {
22910 1 => <AudioCompressedFormatAac as fidl::encoding::TypeMarker>::inline_size(
22911 decoder.context,
22912 ),
22913 2 => <AudioCompressedFormatSbc as fidl::encoding::TypeMarker>::inline_size(
22914 decoder.context,
22915 ),
22916 3 => <AudioCompressedFormatCvsd as fidl::encoding::TypeMarker>::inline_size(
22917 decoder.context,
22918 ),
22919 4 => <AudioCompressedFormatLc3 as fidl::encoding::TypeMarker>::inline_size(
22920 decoder.context,
22921 ),
22922 0 => return Err(fidl::Error::UnknownUnionTag),
22923 _ => num_bytes as usize,
22924 };
22925
22926 if inlined != (member_inline_size <= 4) {
22927 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22928 }
22929 let _inner_offset;
22930 if inlined {
22931 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22932 _inner_offset = offset + 8;
22933 } else {
22934 depth.increment()?;
22935 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22936 }
22937 match ordinal {
22938 1 => {
22939 #[allow(irrefutable_let_patterns)]
22940 if let AudioCompressedFormat::Aac(_) = self {
22941 } else {
22943 *self = AudioCompressedFormat::Aac(fidl::new_empty!(
22945 AudioCompressedFormatAac,
22946 D
22947 ));
22948 }
22949 #[allow(irrefutable_let_patterns)]
22950 if let AudioCompressedFormat::Aac(ref mut val) = self {
22951 fidl::decode!(
22952 AudioCompressedFormatAac,
22953 D,
22954 val,
22955 decoder,
22956 _inner_offset,
22957 depth
22958 )?;
22959 } else {
22960 unreachable!()
22961 }
22962 }
22963 2 => {
22964 #[allow(irrefutable_let_patterns)]
22965 if let AudioCompressedFormat::Sbc(_) = self {
22966 } else {
22968 *self = AudioCompressedFormat::Sbc(fidl::new_empty!(
22970 AudioCompressedFormatSbc,
22971 D
22972 ));
22973 }
22974 #[allow(irrefutable_let_patterns)]
22975 if let AudioCompressedFormat::Sbc(ref mut val) = self {
22976 fidl::decode!(
22977 AudioCompressedFormatSbc,
22978 D,
22979 val,
22980 decoder,
22981 _inner_offset,
22982 depth
22983 )?;
22984 } else {
22985 unreachable!()
22986 }
22987 }
22988 3 => {
22989 #[allow(irrefutable_let_patterns)]
22990 if let AudioCompressedFormat::Cvsd(_) = self {
22991 } else {
22993 *self = AudioCompressedFormat::Cvsd(fidl::new_empty!(
22995 AudioCompressedFormatCvsd,
22996 D
22997 ));
22998 }
22999 #[allow(irrefutable_let_patterns)]
23000 if let AudioCompressedFormat::Cvsd(ref mut val) = self {
23001 fidl::decode!(
23002 AudioCompressedFormatCvsd,
23003 D,
23004 val,
23005 decoder,
23006 _inner_offset,
23007 depth
23008 )?;
23009 } else {
23010 unreachable!()
23011 }
23012 }
23013 4 => {
23014 #[allow(irrefutable_let_patterns)]
23015 if let AudioCompressedFormat::Lc3(_) = self {
23016 } else {
23018 *self = AudioCompressedFormat::Lc3(fidl::new_empty!(
23020 AudioCompressedFormatLc3,
23021 D
23022 ));
23023 }
23024 #[allow(irrefutable_let_patterns)]
23025 if let AudioCompressedFormat::Lc3(ref mut val) = self {
23026 fidl::decode!(
23027 AudioCompressedFormatLc3,
23028 D,
23029 val,
23030 decoder,
23031 _inner_offset,
23032 depth
23033 )?;
23034 } else {
23035 unreachable!()
23036 }
23037 }
23038 #[allow(deprecated)]
23039 ordinal => {
23040 for _ in 0..num_handles {
23041 decoder.drop_next_handle()?;
23042 }
23043 *self = AudioCompressedFormat::__SourceBreaking { unknown_ordinal: ordinal };
23044 }
23045 }
23046 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23047 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23048 }
23049 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23050 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23051 }
23052 Ok(())
23053 }
23054 }
23055
23056 impl fidl::encoding::ValueTypeMarker for AudioConsumerError {
23057 type Borrowed<'a> = &'a Self;
23058 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23059 value
23060 }
23061 }
23062
23063 unsafe impl fidl::encoding::TypeMarker for AudioConsumerError {
23064 type Owned = Self;
23065
23066 #[inline(always)]
23067 fn inline_align(_context: fidl::encoding::Context) -> usize {
23068 8
23069 }
23070
23071 #[inline(always)]
23072 fn inline_size(_context: fidl::encoding::Context) -> usize {
23073 16
23074 }
23075 }
23076
23077 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioConsumerError, D>
23078 for &AudioConsumerError
23079 {
23080 #[inline]
23081 unsafe fn encode(
23082 self,
23083 encoder: &mut fidl::encoding::Encoder<'_, D>,
23084 offset: usize,
23085 _depth: fidl::encoding::Depth,
23086 ) -> fidl::Result<()> {
23087 encoder.debug_check_bounds::<AudioConsumerError>(offset);
23088 encoder.write_num::<u64>(self.ordinal(), offset);
23089 match self {
23090 AudioConsumerError::PlaceHolder(ref val) => {
23091 fidl::encoding::encode_in_envelope::<Void, D>(
23092 <Void as fidl::encoding::ValueTypeMarker>::borrow(val),
23093 encoder,
23094 offset + 8,
23095 _depth,
23096 )
23097 }
23098 }
23099 }
23100 }
23101
23102 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioConsumerError {
23103 #[inline(always)]
23104 fn new_empty() -> Self {
23105 Self::PlaceHolder(fidl::new_empty!(Void, D))
23106 }
23107
23108 #[inline]
23109 unsafe fn decode(
23110 &mut self,
23111 decoder: &mut fidl::encoding::Decoder<'_, D>,
23112 offset: usize,
23113 mut depth: fidl::encoding::Depth,
23114 ) -> fidl::Result<()> {
23115 decoder.debug_check_bounds::<Self>(offset);
23116 #[allow(unused_variables)]
23117 let next_out_of_line = decoder.next_out_of_line();
23118 let handles_before = decoder.remaining_handles();
23119 let (ordinal, inlined, num_bytes, num_handles) =
23120 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23121
23122 let member_inline_size = match ordinal {
23123 1 => <Void as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23124 _ => return Err(fidl::Error::UnknownUnionTag),
23125 };
23126
23127 if inlined != (member_inline_size <= 4) {
23128 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23129 }
23130 let _inner_offset;
23131 if inlined {
23132 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23133 _inner_offset = offset + 8;
23134 } else {
23135 depth.increment()?;
23136 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23137 }
23138 match ordinal {
23139 1 => {
23140 #[allow(irrefutable_let_patterns)]
23141 if let AudioConsumerError::PlaceHolder(_) = self {
23142 } else {
23144 *self = AudioConsumerError::PlaceHolder(fidl::new_empty!(Void, D));
23146 }
23147 #[allow(irrefutable_let_patterns)]
23148 if let AudioConsumerError::PlaceHolder(ref mut val) = self {
23149 fidl::decode!(Void, D, val, decoder, _inner_offset, depth)?;
23150 } else {
23151 unreachable!()
23152 }
23153 }
23154 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23155 }
23156 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23158 }
23159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23161 }
23162 Ok(())
23163 }
23164 }
23165
23166 impl fidl::encoding::ValueTypeMarker for AudioFormat {
23167 type Borrowed<'a> = &'a Self;
23168 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23169 value
23170 }
23171 }
23172
23173 unsafe impl fidl::encoding::TypeMarker for AudioFormat {
23174 type Owned = Self;
23175
23176 #[inline(always)]
23177 fn inline_align(_context: fidl::encoding::Context) -> usize {
23178 8
23179 }
23180
23181 #[inline(always)]
23182 fn inline_size(_context: fidl::encoding::Context) -> usize {
23183 16
23184 }
23185 }
23186
23187 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioFormat, D>
23188 for &AudioFormat
23189 {
23190 #[inline]
23191 unsafe fn encode(
23192 self,
23193 encoder: &mut fidl::encoding::Encoder<'_, D>,
23194 offset: usize,
23195 _depth: fidl::encoding::Depth,
23196 ) -> fidl::Result<()> {
23197 encoder.debug_check_bounds::<AudioFormat>(offset);
23198 encoder.write_num::<u64>(self.ordinal(), offset);
23199 match self {
23200 AudioFormat::Compressed(ref val) => {
23201 fidl::encoding::encode_in_envelope::<AudioCompressedFormat, D>(
23202 <AudioCompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23203 encoder,
23204 offset + 8,
23205 _depth,
23206 )
23207 }
23208 AudioFormat::Uncompressed(ref val) => {
23209 fidl::encoding::encode_in_envelope::<AudioUncompressedFormat, D>(
23210 <AudioUncompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23211 encoder,
23212 offset + 8,
23213 _depth,
23214 )
23215 }
23216 }
23217 }
23218 }
23219
23220 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioFormat {
23221 #[inline(always)]
23222 fn new_empty() -> Self {
23223 Self::Compressed(fidl::new_empty!(AudioCompressedFormat, D))
23224 }
23225
23226 #[inline]
23227 unsafe fn decode(
23228 &mut self,
23229 decoder: &mut fidl::encoding::Decoder<'_, D>,
23230 offset: usize,
23231 mut depth: fidl::encoding::Depth,
23232 ) -> fidl::Result<()> {
23233 decoder.debug_check_bounds::<Self>(offset);
23234 #[allow(unused_variables)]
23235 let next_out_of_line = decoder.next_out_of_line();
23236 let handles_before = decoder.remaining_handles();
23237 let (ordinal, inlined, num_bytes, num_handles) =
23238 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23239
23240 let member_inline_size = match ordinal {
23241 1 => <AudioCompressedFormat as fidl::encoding::TypeMarker>::inline_size(
23242 decoder.context,
23243 ),
23244 2 => <AudioUncompressedFormat as fidl::encoding::TypeMarker>::inline_size(
23245 decoder.context,
23246 ),
23247 _ => return Err(fidl::Error::UnknownUnionTag),
23248 };
23249
23250 if inlined != (member_inline_size <= 4) {
23251 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23252 }
23253 let _inner_offset;
23254 if inlined {
23255 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23256 _inner_offset = offset + 8;
23257 } else {
23258 depth.increment()?;
23259 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23260 }
23261 match ordinal {
23262 1 => {
23263 #[allow(irrefutable_let_patterns)]
23264 if let AudioFormat::Compressed(_) = self {
23265 } else {
23267 *self = AudioFormat::Compressed(fidl::new_empty!(AudioCompressedFormat, D));
23269 }
23270 #[allow(irrefutable_let_patterns)]
23271 if let AudioFormat::Compressed(ref mut val) = self {
23272 fidl::decode!(
23273 AudioCompressedFormat,
23274 D,
23275 val,
23276 decoder,
23277 _inner_offset,
23278 depth
23279 )?;
23280 } else {
23281 unreachable!()
23282 }
23283 }
23284 2 => {
23285 #[allow(irrefutable_let_patterns)]
23286 if let AudioFormat::Uncompressed(_) = self {
23287 } else {
23289 *self =
23291 AudioFormat::Uncompressed(fidl::new_empty!(AudioUncompressedFormat, D));
23292 }
23293 #[allow(irrefutable_let_patterns)]
23294 if let AudioFormat::Uncompressed(ref mut val) = self {
23295 fidl::decode!(
23296 AudioUncompressedFormat,
23297 D,
23298 val,
23299 decoder,
23300 _inner_offset,
23301 depth
23302 )?;
23303 } else {
23304 unreachable!()
23305 }
23306 }
23307 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23308 }
23309 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23310 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23311 }
23312 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23313 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23314 }
23315 Ok(())
23316 }
23317 }
23318
23319 impl fidl::encoding::ValueTypeMarker for AudioUncompressedFormat {
23320 type Borrowed<'a> = &'a Self;
23321 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23322 value
23323 }
23324 }
23325
23326 unsafe impl fidl::encoding::TypeMarker for AudioUncompressedFormat {
23327 type Owned = Self;
23328
23329 #[inline(always)]
23330 fn inline_align(_context: fidl::encoding::Context) -> usize {
23331 8
23332 }
23333
23334 #[inline(always)]
23335 fn inline_size(_context: fidl::encoding::Context) -> usize {
23336 16
23337 }
23338 }
23339
23340 unsafe impl<D: fidl::encoding::ResourceDialect>
23341 fidl::encoding::Encode<AudioUncompressedFormat, D> for &AudioUncompressedFormat
23342 {
23343 #[inline]
23344 unsafe fn encode(
23345 self,
23346 encoder: &mut fidl::encoding::Encoder<'_, D>,
23347 offset: usize,
23348 _depth: fidl::encoding::Depth,
23349 ) -> fidl::Result<()> {
23350 encoder.debug_check_bounds::<AudioUncompressedFormat>(offset);
23351 encoder.write_num::<u64>(self.ordinal(), offset);
23352 match self {
23353 AudioUncompressedFormat::Pcm(ref val) => {
23354 fidl::encoding::encode_in_envelope::<PcmFormat, D>(
23355 <PcmFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23356 encoder,
23357 offset + 8,
23358 _depth,
23359 )
23360 }
23361 }
23362 }
23363 }
23364
23365 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
23366 for AudioUncompressedFormat
23367 {
23368 #[inline(always)]
23369 fn new_empty() -> Self {
23370 Self::Pcm(fidl::new_empty!(PcmFormat, D))
23371 }
23372
23373 #[inline]
23374 unsafe fn decode(
23375 &mut self,
23376 decoder: &mut fidl::encoding::Decoder<'_, D>,
23377 offset: usize,
23378 mut depth: fidl::encoding::Depth,
23379 ) -> fidl::Result<()> {
23380 decoder.debug_check_bounds::<Self>(offset);
23381 #[allow(unused_variables)]
23382 let next_out_of_line = decoder.next_out_of_line();
23383 let handles_before = decoder.remaining_handles();
23384 let (ordinal, inlined, num_bytes, num_handles) =
23385 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23386
23387 let member_inline_size = match ordinal {
23388 1 => <PcmFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23389 _ => return Err(fidl::Error::UnknownUnionTag),
23390 };
23391
23392 if inlined != (member_inline_size <= 4) {
23393 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23394 }
23395 let _inner_offset;
23396 if inlined {
23397 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23398 _inner_offset = offset + 8;
23399 } else {
23400 depth.increment()?;
23401 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23402 }
23403 match ordinal {
23404 1 => {
23405 #[allow(irrefutable_let_patterns)]
23406 if let AudioUncompressedFormat::Pcm(_) = self {
23407 } else {
23409 *self = AudioUncompressedFormat::Pcm(fidl::new_empty!(PcmFormat, D));
23411 }
23412 #[allow(irrefutable_let_patterns)]
23413 if let AudioUncompressedFormat::Pcm(ref mut val) = self {
23414 fidl::decode!(PcmFormat, D, val, decoder, _inner_offset, depth)?;
23415 } else {
23416 unreachable!()
23417 }
23418 }
23419 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23420 }
23421 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23422 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23423 }
23424 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23425 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23426 }
23427 Ok(())
23428 }
23429 }
23430
23431 impl fidl::encoding::ValueTypeMarker for CryptoFormat {
23432 type Borrowed<'a> = &'a Self;
23433 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23434 value
23435 }
23436 }
23437
23438 unsafe impl fidl::encoding::TypeMarker for CryptoFormat {
23439 type Owned = Self;
23440
23441 #[inline(always)]
23442 fn inline_align(_context: fidl::encoding::Context) -> usize {
23443 8
23444 }
23445
23446 #[inline(always)]
23447 fn inline_size(_context: fidl::encoding::Context) -> usize {
23448 16
23449 }
23450 }
23451
23452 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CryptoFormat, D>
23453 for &CryptoFormat
23454 {
23455 #[inline]
23456 unsafe fn encode(
23457 self,
23458 encoder: &mut fidl::encoding::Encoder<'_, D>,
23459 offset: usize,
23460 _depth: fidl::encoding::Depth,
23461 ) -> fidl::Result<()> {
23462 encoder.debug_check_bounds::<CryptoFormat>(offset);
23463 encoder.write_num::<u64>(self.ordinal(), offset);
23464 match self {
23465 CryptoFormat::Encrypted(ref val) => {
23466 fidl::encoding::encode_in_envelope::<EncryptedFormat, D>(
23467 <EncryptedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23468 encoder,
23469 offset + 8,
23470 _depth,
23471 )
23472 }
23473 CryptoFormat::Decrypted(ref val) => {
23474 fidl::encoding::encode_in_envelope::<DecryptedFormat, D>(
23475 <DecryptedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23476 encoder,
23477 offset + 8,
23478 _depth,
23479 )
23480 }
23481 CryptoFormat::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
23482 }
23483 }
23484 }
23485
23486 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CryptoFormat {
23487 #[inline(always)]
23488 fn new_empty() -> Self {
23489 Self::__SourceBreaking { unknown_ordinal: 0 }
23490 }
23491
23492 #[inline]
23493 unsafe fn decode(
23494 &mut self,
23495 decoder: &mut fidl::encoding::Decoder<'_, D>,
23496 offset: usize,
23497 mut depth: fidl::encoding::Depth,
23498 ) -> fidl::Result<()> {
23499 decoder.debug_check_bounds::<Self>(offset);
23500 #[allow(unused_variables)]
23501 let next_out_of_line = decoder.next_out_of_line();
23502 let handles_before = decoder.remaining_handles();
23503 let (ordinal, inlined, num_bytes, num_handles) =
23504 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23505
23506 let member_inline_size = match ordinal {
23507 1 => <EncryptedFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23508 2 => <DecryptedFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23509 0 => return Err(fidl::Error::UnknownUnionTag),
23510 _ => num_bytes as usize,
23511 };
23512
23513 if inlined != (member_inline_size <= 4) {
23514 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23515 }
23516 let _inner_offset;
23517 if inlined {
23518 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23519 _inner_offset = offset + 8;
23520 } else {
23521 depth.increment()?;
23522 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23523 }
23524 match ordinal {
23525 1 => {
23526 #[allow(irrefutable_let_patterns)]
23527 if let CryptoFormat::Encrypted(_) = self {
23528 } else {
23530 *self = CryptoFormat::Encrypted(fidl::new_empty!(EncryptedFormat, D));
23532 }
23533 #[allow(irrefutable_let_patterns)]
23534 if let CryptoFormat::Encrypted(ref mut val) = self {
23535 fidl::decode!(EncryptedFormat, D, val, decoder, _inner_offset, depth)?;
23536 } else {
23537 unreachable!()
23538 }
23539 }
23540 2 => {
23541 #[allow(irrefutable_let_patterns)]
23542 if let CryptoFormat::Decrypted(_) = self {
23543 } else {
23545 *self = CryptoFormat::Decrypted(fidl::new_empty!(DecryptedFormat, D));
23547 }
23548 #[allow(irrefutable_let_patterns)]
23549 if let CryptoFormat::Decrypted(ref mut val) = self {
23550 fidl::decode!(DecryptedFormat, D, val, decoder, _inner_offset, depth)?;
23551 } else {
23552 unreachable!()
23553 }
23554 }
23555 #[allow(deprecated)]
23556 ordinal => {
23557 for _ in 0..num_handles {
23558 decoder.drop_next_handle()?;
23559 }
23560 *self = CryptoFormat::__SourceBreaking { unknown_ordinal: ordinal };
23561 }
23562 }
23563 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23564 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23565 }
23566 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23567 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23568 }
23569 Ok(())
23570 }
23571 }
23572
23573 impl fidl::encoding::ValueTypeMarker for DomainFormat {
23574 type Borrowed<'a> = &'a Self;
23575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23576 value
23577 }
23578 }
23579
23580 unsafe impl fidl::encoding::TypeMarker for DomainFormat {
23581 type Owned = Self;
23582
23583 #[inline(always)]
23584 fn inline_align(_context: fidl::encoding::Context) -> usize {
23585 8
23586 }
23587
23588 #[inline(always)]
23589 fn inline_size(_context: fidl::encoding::Context) -> usize {
23590 16
23591 }
23592 }
23593
23594 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DomainFormat, D>
23595 for &DomainFormat
23596 {
23597 #[inline]
23598 unsafe fn encode(
23599 self,
23600 encoder: &mut fidl::encoding::Encoder<'_, D>,
23601 offset: usize,
23602 _depth: fidl::encoding::Depth,
23603 ) -> fidl::Result<()> {
23604 encoder.debug_check_bounds::<DomainFormat>(offset);
23605 encoder.write_num::<u64>(self.ordinal(), offset);
23606 match self {
23607 DomainFormat::Audio(ref val) => {
23608 fidl::encoding::encode_in_envelope::<AudioFormat, D>(
23609 <AudioFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23610 encoder,
23611 offset + 8,
23612 _depth,
23613 )
23614 }
23615 DomainFormat::Video(ref val) => {
23616 fidl::encoding::encode_in_envelope::<VideoFormat, D>(
23617 <VideoFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23618 encoder,
23619 offset + 8,
23620 _depth,
23621 )
23622 }
23623 DomainFormat::Crypto(ref val) => {
23624 fidl::encoding::encode_in_envelope::<CryptoFormat, D>(
23625 <CryptoFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23626 encoder,
23627 offset + 8,
23628 _depth,
23629 )
23630 }
23631 }
23632 }
23633 }
23634
23635 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DomainFormat {
23636 #[inline(always)]
23637 fn new_empty() -> Self {
23638 Self::Audio(fidl::new_empty!(AudioFormat, D))
23639 }
23640
23641 #[inline]
23642 unsafe fn decode(
23643 &mut self,
23644 decoder: &mut fidl::encoding::Decoder<'_, D>,
23645 offset: usize,
23646 mut depth: fidl::encoding::Depth,
23647 ) -> fidl::Result<()> {
23648 decoder.debug_check_bounds::<Self>(offset);
23649 #[allow(unused_variables)]
23650 let next_out_of_line = decoder.next_out_of_line();
23651 let handles_before = decoder.remaining_handles();
23652 let (ordinal, inlined, num_bytes, num_handles) =
23653 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23654
23655 let member_inline_size = match ordinal {
23656 1 => <AudioFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23657 2 => <VideoFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23658 3 => <CryptoFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23659 _ => return Err(fidl::Error::UnknownUnionTag),
23660 };
23661
23662 if inlined != (member_inline_size <= 4) {
23663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23664 }
23665 let _inner_offset;
23666 if inlined {
23667 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23668 _inner_offset = offset + 8;
23669 } else {
23670 depth.increment()?;
23671 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23672 }
23673 match ordinal {
23674 1 => {
23675 #[allow(irrefutable_let_patterns)]
23676 if let DomainFormat::Audio(_) = self {
23677 } else {
23679 *self = DomainFormat::Audio(fidl::new_empty!(AudioFormat, D));
23681 }
23682 #[allow(irrefutable_let_patterns)]
23683 if let DomainFormat::Audio(ref mut val) = self {
23684 fidl::decode!(AudioFormat, D, val, decoder, _inner_offset, depth)?;
23685 } else {
23686 unreachable!()
23687 }
23688 }
23689 2 => {
23690 #[allow(irrefutable_let_patterns)]
23691 if let DomainFormat::Video(_) = self {
23692 } else {
23694 *self = DomainFormat::Video(fidl::new_empty!(VideoFormat, D));
23696 }
23697 #[allow(irrefutable_let_patterns)]
23698 if let DomainFormat::Video(ref mut val) = self {
23699 fidl::decode!(VideoFormat, D, val, decoder, _inner_offset, depth)?;
23700 } else {
23701 unreachable!()
23702 }
23703 }
23704 3 => {
23705 #[allow(irrefutable_let_patterns)]
23706 if let DomainFormat::Crypto(_) = self {
23707 } else {
23709 *self = DomainFormat::Crypto(fidl::new_empty!(CryptoFormat, D));
23711 }
23712 #[allow(irrefutable_let_patterns)]
23713 if let DomainFormat::Crypto(ref mut val) = self {
23714 fidl::decode!(CryptoFormat, D, val, decoder, _inner_offset, depth)?;
23715 } else {
23716 unreachable!()
23717 }
23718 }
23719 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23720 }
23721 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23722 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23723 }
23724 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23725 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23726 }
23727 Ok(())
23728 }
23729 }
23730
23731 impl fidl::encoding::ValueTypeMarker for EncoderSettings {
23732 type Borrowed<'a> = &'a Self;
23733 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23734 value
23735 }
23736 }
23737
23738 unsafe impl fidl::encoding::TypeMarker for EncoderSettings {
23739 type Owned = Self;
23740
23741 #[inline(always)]
23742 fn inline_align(_context: fidl::encoding::Context) -> usize {
23743 8
23744 }
23745
23746 #[inline(always)]
23747 fn inline_size(_context: fidl::encoding::Context) -> usize {
23748 16
23749 }
23750 }
23751
23752 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncoderSettings, D>
23753 for &EncoderSettings
23754 {
23755 #[inline]
23756 unsafe fn encode(
23757 self,
23758 encoder: &mut fidl::encoding::Encoder<'_, D>,
23759 offset: usize,
23760 _depth: fidl::encoding::Depth,
23761 ) -> fidl::Result<()> {
23762 encoder.debug_check_bounds::<EncoderSettings>(offset);
23763 encoder.write_num::<u64>(self.ordinal(), offset);
23764 match self {
23765 EncoderSettings::Sbc(ref val) => {
23766 fidl::encoding::encode_in_envelope::<SbcEncoderSettings, D>(
23767 <SbcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23768 encoder,
23769 offset + 8,
23770 _depth,
23771 )
23772 }
23773 EncoderSettings::Aac(ref val) => {
23774 fidl::encoding::encode_in_envelope::<AacEncoderSettings, D>(
23775 <AacEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23776 encoder,
23777 offset + 8,
23778 _depth,
23779 )
23780 }
23781 EncoderSettings::H264(ref val) => {
23782 fidl::encoding::encode_in_envelope::<H264EncoderSettings, D>(
23783 <H264EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23784 encoder,
23785 offset + 8,
23786 _depth,
23787 )
23788 }
23789 EncoderSettings::Hevc(ref val) => {
23790 fidl::encoding::encode_in_envelope::<HevcEncoderSettings, D>(
23791 <HevcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23792 encoder,
23793 offset + 8,
23794 _depth,
23795 )
23796 }
23797 EncoderSettings::Cvsd(ref val) => {
23798 fidl::encoding::encode_in_envelope::<CvsdEncoderSettings, D>(
23799 <CvsdEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23800 encoder,
23801 offset + 8,
23802 _depth,
23803 )
23804 }
23805 EncoderSettings::Lc3(ref val) => {
23806 fidl::encoding::encode_in_envelope::<Lc3EncoderSettings, D>(
23807 <Lc3EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23808 encoder,
23809 offset + 8,
23810 _depth,
23811 )
23812 }
23813 EncoderSettings::Msbc(ref val) => {
23814 fidl::encoding::encode_in_envelope::<MSbcEncoderSettings, D>(
23815 <MSbcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23816 encoder,
23817 offset + 8,
23818 _depth,
23819 )
23820 }
23821 EncoderSettings::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
23822 }
23823 }
23824 }
23825
23826 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncoderSettings {
23827 #[inline(always)]
23828 fn new_empty() -> Self {
23829 Self::__SourceBreaking { unknown_ordinal: 0 }
23830 }
23831
23832 #[inline]
23833 unsafe fn decode(
23834 &mut self,
23835 decoder: &mut fidl::encoding::Decoder<'_, D>,
23836 offset: usize,
23837 mut depth: fidl::encoding::Depth,
23838 ) -> fidl::Result<()> {
23839 decoder.debug_check_bounds::<Self>(offset);
23840 #[allow(unused_variables)]
23841 let next_out_of_line = decoder.next_out_of_line();
23842 let handles_before = decoder.remaining_handles();
23843 let (ordinal, inlined, num_bytes, num_handles) =
23844 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23845
23846 let member_inline_size = match ordinal {
23847 1 => {
23848 <SbcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23849 }
23850 2 => {
23851 <AacEncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23852 }
23853 3 => <H264EncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23854 decoder.context,
23855 ),
23856 4 => <HevcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23857 decoder.context,
23858 ),
23859 5 => <CvsdEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23860 decoder.context,
23861 ),
23862 6 => {
23863 <Lc3EncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23864 }
23865 7 => <MSbcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23866 decoder.context,
23867 ),
23868 0 => return Err(fidl::Error::UnknownUnionTag),
23869 _ => num_bytes as usize,
23870 };
23871
23872 if inlined != (member_inline_size <= 4) {
23873 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23874 }
23875 let _inner_offset;
23876 if inlined {
23877 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23878 _inner_offset = offset + 8;
23879 } else {
23880 depth.increment()?;
23881 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23882 }
23883 match ordinal {
23884 1 => {
23885 #[allow(irrefutable_let_patterns)]
23886 if let EncoderSettings::Sbc(_) = self {
23887 } else {
23889 *self = EncoderSettings::Sbc(fidl::new_empty!(SbcEncoderSettings, D));
23891 }
23892 #[allow(irrefutable_let_patterns)]
23893 if let EncoderSettings::Sbc(ref mut val) = self {
23894 fidl::decode!(SbcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23895 } else {
23896 unreachable!()
23897 }
23898 }
23899 2 => {
23900 #[allow(irrefutable_let_patterns)]
23901 if let EncoderSettings::Aac(_) = self {
23902 } else {
23904 *self = EncoderSettings::Aac(fidl::new_empty!(AacEncoderSettings, D));
23906 }
23907 #[allow(irrefutable_let_patterns)]
23908 if let EncoderSettings::Aac(ref mut val) = self {
23909 fidl::decode!(AacEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23910 } else {
23911 unreachable!()
23912 }
23913 }
23914 3 => {
23915 #[allow(irrefutable_let_patterns)]
23916 if let EncoderSettings::H264(_) = self {
23917 } else {
23919 *self = EncoderSettings::H264(fidl::new_empty!(H264EncoderSettings, D));
23921 }
23922 #[allow(irrefutable_let_patterns)]
23923 if let EncoderSettings::H264(ref mut val) = self {
23924 fidl::decode!(H264EncoderSettings, D, val, decoder, _inner_offset, depth)?;
23925 } else {
23926 unreachable!()
23927 }
23928 }
23929 4 => {
23930 #[allow(irrefutable_let_patterns)]
23931 if let EncoderSettings::Hevc(_) = self {
23932 } else {
23934 *self = EncoderSettings::Hevc(fidl::new_empty!(HevcEncoderSettings, D));
23936 }
23937 #[allow(irrefutable_let_patterns)]
23938 if let EncoderSettings::Hevc(ref mut val) = self {
23939 fidl::decode!(HevcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23940 } else {
23941 unreachable!()
23942 }
23943 }
23944 5 => {
23945 #[allow(irrefutable_let_patterns)]
23946 if let EncoderSettings::Cvsd(_) = self {
23947 } else {
23949 *self = EncoderSettings::Cvsd(fidl::new_empty!(CvsdEncoderSettings, D));
23951 }
23952 #[allow(irrefutable_let_patterns)]
23953 if let EncoderSettings::Cvsd(ref mut val) = self {
23954 fidl::decode!(CvsdEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23955 } else {
23956 unreachable!()
23957 }
23958 }
23959 6 => {
23960 #[allow(irrefutable_let_patterns)]
23961 if let EncoderSettings::Lc3(_) = self {
23962 } else {
23964 *self = EncoderSettings::Lc3(fidl::new_empty!(Lc3EncoderSettings, D));
23966 }
23967 #[allow(irrefutable_let_patterns)]
23968 if let EncoderSettings::Lc3(ref mut val) = self {
23969 fidl::decode!(Lc3EncoderSettings, D, val, decoder, _inner_offset, depth)?;
23970 } else {
23971 unreachable!()
23972 }
23973 }
23974 7 => {
23975 #[allow(irrefutable_let_patterns)]
23976 if let EncoderSettings::Msbc(_) = self {
23977 } else {
23979 *self = EncoderSettings::Msbc(fidl::new_empty!(MSbcEncoderSettings, D));
23981 }
23982 #[allow(irrefutable_let_patterns)]
23983 if let EncoderSettings::Msbc(ref mut val) = self {
23984 fidl::decode!(MSbcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23985 } else {
23986 unreachable!()
23987 }
23988 }
23989 #[allow(deprecated)]
23990 ordinal => {
23991 for _ in 0..num_handles {
23992 decoder.drop_next_handle()?;
23993 }
23994 *self = EncoderSettings::__SourceBreaking { unknown_ordinal: ordinal };
23995 }
23996 }
23997 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23998 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23999 }
24000 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24001 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24002 }
24003 Ok(())
24004 }
24005 }
24006
24007 impl fidl::encoding::ValueTypeMarker for MediumSpecificStreamType {
24008 type Borrowed<'a> = &'a Self;
24009 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24010 value
24011 }
24012 }
24013
24014 unsafe impl fidl::encoding::TypeMarker for MediumSpecificStreamType {
24015 type Owned = Self;
24016
24017 #[inline(always)]
24018 fn inline_align(_context: fidl::encoding::Context) -> usize {
24019 8
24020 }
24021
24022 #[inline(always)]
24023 fn inline_size(_context: fidl::encoding::Context) -> usize {
24024 16
24025 }
24026 }
24027
24028 unsafe impl<D: fidl::encoding::ResourceDialect>
24029 fidl::encoding::Encode<MediumSpecificStreamType, D> for &MediumSpecificStreamType
24030 {
24031 #[inline]
24032 unsafe fn encode(
24033 self,
24034 encoder: &mut fidl::encoding::Encoder<'_, D>,
24035 offset: usize,
24036 _depth: fidl::encoding::Depth,
24037 ) -> fidl::Result<()> {
24038 encoder.debug_check_bounds::<MediumSpecificStreamType>(offset);
24039 encoder.write_num::<u64>(self.ordinal(), offset);
24040 match self {
24041 MediumSpecificStreamType::Audio(ref val) => {
24042 fidl::encoding::encode_in_envelope::<AudioStreamType, D>(
24043 <AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24044 encoder,
24045 offset + 8,
24046 _depth,
24047 )
24048 }
24049 MediumSpecificStreamType::Video(ref val) => {
24050 fidl::encoding::encode_in_envelope::<VideoStreamType, D>(
24051 <VideoStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24052 encoder,
24053 offset + 8,
24054 _depth,
24055 )
24056 }
24057 MediumSpecificStreamType::Text(ref val) => {
24058 fidl::encoding::encode_in_envelope::<TextStreamType, D>(
24059 <TextStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24060 encoder,
24061 offset + 8,
24062 _depth,
24063 )
24064 }
24065 MediumSpecificStreamType::Subpicture(ref val) => {
24066 fidl::encoding::encode_in_envelope::<SubpictureStreamType, D>(
24067 <SubpictureStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24068 encoder,
24069 offset + 8,
24070 _depth,
24071 )
24072 }
24073 }
24074 }
24075 }
24076
24077 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
24078 for MediumSpecificStreamType
24079 {
24080 #[inline(always)]
24081 fn new_empty() -> Self {
24082 Self::Audio(fidl::new_empty!(AudioStreamType, D))
24083 }
24084
24085 #[inline]
24086 unsafe fn decode(
24087 &mut self,
24088 decoder: &mut fidl::encoding::Decoder<'_, D>,
24089 offset: usize,
24090 mut depth: fidl::encoding::Depth,
24091 ) -> fidl::Result<()> {
24092 decoder.debug_check_bounds::<Self>(offset);
24093 #[allow(unused_variables)]
24094 let next_out_of_line = decoder.next_out_of_line();
24095 let handles_before = decoder.remaining_handles();
24096 let (ordinal, inlined, num_bytes, num_handles) =
24097 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24098
24099 let member_inline_size = match ordinal {
24100 1 => <AudioStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24101 2 => <VideoStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24102 3 => <TextStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24103 4 => <SubpictureStreamType as fidl::encoding::TypeMarker>::inline_size(
24104 decoder.context,
24105 ),
24106 _ => return Err(fidl::Error::UnknownUnionTag),
24107 };
24108
24109 if inlined != (member_inline_size <= 4) {
24110 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24111 }
24112 let _inner_offset;
24113 if inlined {
24114 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24115 _inner_offset = offset + 8;
24116 } else {
24117 depth.increment()?;
24118 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24119 }
24120 match ordinal {
24121 1 => {
24122 #[allow(irrefutable_let_patterns)]
24123 if let MediumSpecificStreamType::Audio(_) = self {
24124 } else {
24126 *self =
24128 MediumSpecificStreamType::Audio(fidl::new_empty!(AudioStreamType, D));
24129 }
24130 #[allow(irrefutable_let_patterns)]
24131 if let MediumSpecificStreamType::Audio(ref mut val) = self {
24132 fidl::decode!(AudioStreamType, D, val, decoder, _inner_offset, depth)?;
24133 } else {
24134 unreachable!()
24135 }
24136 }
24137 2 => {
24138 #[allow(irrefutable_let_patterns)]
24139 if let MediumSpecificStreamType::Video(_) = self {
24140 } else {
24142 *self =
24144 MediumSpecificStreamType::Video(fidl::new_empty!(VideoStreamType, D));
24145 }
24146 #[allow(irrefutable_let_patterns)]
24147 if let MediumSpecificStreamType::Video(ref mut val) = self {
24148 fidl::decode!(VideoStreamType, D, val, decoder, _inner_offset, depth)?;
24149 } else {
24150 unreachable!()
24151 }
24152 }
24153 3 => {
24154 #[allow(irrefutable_let_patterns)]
24155 if let MediumSpecificStreamType::Text(_) = self {
24156 } else {
24158 *self = MediumSpecificStreamType::Text(fidl::new_empty!(TextStreamType, D));
24160 }
24161 #[allow(irrefutable_let_patterns)]
24162 if let MediumSpecificStreamType::Text(ref mut val) = self {
24163 fidl::decode!(TextStreamType, D, val, decoder, _inner_offset, depth)?;
24164 } else {
24165 unreachable!()
24166 }
24167 }
24168 4 => {
24169 #[allow(irrefutable_let_patterns)]
24170 if let MediumSpecificStreamType::Subpicture(_) = self {
24171 } else {
24173 *self = MediumSpecificStreamType::Subpicture(fidl::new_empty!(
24175 SubpictureStreamType,
24176 D
24177 ));
24178 }
24179 #[allow(irrefutable_let_patterns)]
24180 if let MediumSpecificStreamType::Subpicture(ref mut val) = self {
24181 fidl::decode!(SubpictureStreamType, D, val, decoder, _inner_offset, depth)?;
24182 } else {
24183 unreachable!()
24184 }
24185 }
24186 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24187 }
24188 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24189 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24190 }
24191 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24192 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24193 }
24194 Ok(())
24195 }
24196 }
24197
24198 impl fidl::encoding::ValueTypeMarker for Usage {
24199 type Borrowed<'a> = &'a Self;
24200 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24201 value
24202 }
24203 }
24204
24205 unsafe impl fidl::encoding::TypeMarker for Usage {
24206 type Owned = Self;
24207
24208 #[inline(always)]
24209 fn inline_align(_context: fidl::encoding::Context) -> usize {
24210 8
24211 }
24212
24213 #[inline(always)]
24214 fn inline_size(_context: fidl::encoding::Context) -> usize {
24215 16
24216 }
24217 }
24218
24219 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Usage, D> for &Usage {
24220 #[inline]
24221 unsafe fn encode(
24222 self,
24223 encoder: &mut fidl::encoding::Encoder<'_, D>,
24224 offset: usize,
24225 _depth: fidl::encoding::Depth,
24226 ) -> fidl::Result<()> {
24227 encoder.debug_check_bounds::<Usage>(offset);
24228 encoder.write_num::<u64>(self.ordinal(), offset);
24229 match self {
24230 Usage::RenderUsage(ref val) => {
24231 fidl::encoding::encode_in_envelope::<AudioRenderUsage, D>(
24232 <AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(val),
24233 encoder,
24234 offset + 8,
24235 _depth,
24236 )
24237 }
24238 Usage::CaptureUsage(ref val) => {
24239 fidl::encoding::encode_in_envelope::<AudioCaptureUsage, D>(
24240 <AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(val),
24241 encoder,
24242 offset + 8,
24243 _depth,
24244 )
24245 }
24246 }
24247 }
24248 }
24249
24250 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Usage {
24251 #[inline(always)]
24252 fn new_empty() -> Self {
24253 Self::RenderUsage(fidl::new_empty!(AudioRenderUsage, D))
24254 }
24255
24256 #[inline]
24257 unsafe fn decode(
24258 &mut self,
24259 decoder: &mut fidl::encoding::Decoder<'_, D>,
24260 offset: usize,
24261 mut depth: fidl::encoding::Depth,
24262 ) -> fidl::Result<()> {
24263 decoder.debug_check_bounds::<Self>(offset);
24264 #[allow(unused_variables)]
24265 let next_out_of_line = decoder.next_out_of_line();
24266 let handles_before = decoder.remaining_handles();
24267 let (ordinal, inlined, num_bytes, num_handles) =
24268 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24269
24270 let member_inline_size = match ordinal {
24271 1 => <AudioRenderUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24272 2 => {
24273 <AudioCaptureUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24274 }
24275 _ => return Err(fidl::Error::UnknownUnionTag),
24276 };
24277
24278 if inlined != (member_inline_size <= 4) {
24279 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24280 }
24281 let _inner_offset;
24282 if inlined {
24283 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24284 _inner_offset = offset + 8;
24285 } else {
24286 depth.increment()?;
24287 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24288 }
24289 match ordinal {
24290 1 => {
24291 #[allow(irrefutable_let_patterns)]
24292 if let Usage::RenderUsage(_) = self {
24293 } else {
24295 *self = Usage::RenderUsage(fidl::new_empty!(AudioRenderUsage, D));
24297 }
24298 #[allow(irrefutable_let_patterns)]
24299 if let Usage::RenderUsage(ref mut val) = self {
24300 fidl::decode!(AudioRenderUsage, D, val, decoder, _inner_offset, depth)?;
24301 } else {
24302 unreachable!()
24303 }
24304 }
24305 2 => {
24306 #[allow(irrefutable_let_patterns)]
24307 if let Usage::CaptureUsage(_) = self {
24308 } else {
24310 *self = Usage::CaptureUsage(fidl::new_empty!(AudioCaptureUsage, D));
24312 }
24313 #[allow(irrefutable_let_patterns)]
24314 if let Usage::CaptureUsage(ref mut val) = self {
24315 fidl::decode!(AudioCaptureUsage, D, val, decoder, _inner_offset, depth)?;
24316 } else {
24317 unreachable!()
24318 }
24319 }
24320 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24321 }
24322 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24323 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24324 }
24325 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24326 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24327 }
24328 Ok(())
24329 }
24330 }
24331
24332 impl fidl::encoding::ValueTypeMarker for Usage2 {
24333 type Borrowed<'a> = &'a Self;
24334 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24335 value
24336 }
24337 }
24338
24339 unsafe impl fidl::encoding::TypeMarker for Usage2 {
24340 type Owned = Self;
24341
24342 #[inline(always)]
24343 fn inline_align(_context: fidl::encoding::Context) -> usize {
24344 8
24345 }
24346
24347 #[inline(always)]
24348 fn inline_size(_context: fidl::encoding::Context) -> usize {
24349 16
24350 }
24351 }
24352
24353 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Usage2, D> for &Usage2 {
24354 #[inline]
24355 unsafe fn encode(
24356 self,
24357 encoder: &mut fidl::encoding::Encoder<'_, D>,
24358 offset: usize,
24359 _depth: fidl::encoding::Depth,
24360 ) -> fidl::Result<()> {
24361 encoder.debug_check_bounds::<Usage2>(offset);
24362 encoder.write_num::<u64>(self.ordinal(), offset);
24363 match self {
24364 Usage2::RenderUsage(ref val) => {
24365 fidl::encoding::encode_in_envelope::<AudioRenderUsage2, D>(
24366 <AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(val),
24367 encoder,
24368 offset + 8,
24369 _depth,
24370 )
24371 }
24372 Usage2::CaptureUsage(ref val) => {
24373 fidl::encoding::encode_in_envelope::<AudioCaptureUsage2, D>(
24374 <AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(val),
24375 encoder,
24376 offset + 8,
24377 _depth,
24378 )
24379 }
24380 Usage2::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
24381 }
24382 }
24383 }
24384
24385 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Usage2 {
24386 #[inline(always)]
24387 fn new_empty() -> Self {
24388 Self::__SourceBreaking { unknown_ordinal: 0 }
24389 }
24390
24391 #[inline]
24392 unsafe fn decode(
24393 &mut self,
24394 decoder: &mut fidl::encoding::Decoder<'_, D>,
24395 offset: usize,
24396 mut depth: fidl::encoding::Depth,
24397 ) -> fidl::Result<()> {
24398 decoder.debug_check_bounds::<Self>(offset);
24399 #[allow(unused_variables)]
24400 let next_out_of_line = decoder.next_out_of_line();
24401 let handles_before = decoder.remaining_handles();
24402 let (ordinal, inlined, num_bytes, num_handles) =
24403 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24404
24405 let member_inline_size = match ordinal {
24406 1 => {
24407 <AudioRenderUsage2 as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24408 }
24409 2 => {
24410 <AudioCaptureUsage2 as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24411 }
24412 0 => return Err(fidl::Error::UnknownUnionTag),
24413 _ => num_bytes as usize,
24414 };
24415
24416 if inlined != (member_inline_size <= 4) {
24417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24418 }
24419 let _inner_offset;
24420 if inlined {
24421 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24422 _inner_offset = offset + 8;
24423 } else {
24424 depth.increment()?;
24425 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24426 }
24427 match ordinal {
24428 1 => {
24429 #[allow(irrefutable_let_patterns)]
24430 if let Usage2::RenderUsage(_) = self {
24431 } else {
24433 *self = Usage2::RenderUsage(fidl::new_empty!(AudioRenderUsage2, D));
24435 }
24436 #[allow(irrefutable_let_patterns)]
24437 if let Usage2::RenderUsage(ref mut val) = self {
24438 fidl::decode!(AudioRenderUsage2, D, val, decoder, _inner_offset, depth)?;
24439 } else {
24440 unreachable!()
24441 }
24442 }
24443 2 => {
24444 #[allow(irrefutable_let_patterns)]
24445 if let Usage2::CaptureUsage(_) = self {
24446 } else {
24448 *self = Usage2::CaptureUsage(fidl::new_empty!(AudioCaptureUsage2, D));
24450 }
24451 #[allow(irrefutable_let_patterns)]
24452 if let Usage2::CaptureUsage(ref mut val) = self {
24453 fidl::decode!(AudioCaptureUsage2, D, val, decoder, _inner_offset, depth)?;
24454 } else {
24455 unreachable!()
24456 }
24457 }
24458 #[allow(deprecated)]
24459 ordinal => {
24460 for _ in 0..num_handles {
24461 decoder.drop_next_handle()?;
24462 }
24463 *self = Usage2::__SourceBreaking { unknown_ordinal: ordinal };
24464 }
24465 }
24466 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24468 }
24469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24471 }
24472 Ok(())
24473 }
24474 }
24475
24476 impl fidl::encoding::ValueTypeMarker for UsageState {
24477 type Borrowed<'a> = &'a Self;
24478 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24479 value
24480 }
24481 }
24482
24483 unsafe impl fidl::encoding::TypeMarker for UsageState {
24484 type Owned = Self;
24485
24486 #[inline(always)]
24487 fn inline_align(_context: fidl::encoding::Context) -> usize {
24488 8
24489 }
24490
24491 #[inline(always)]
24492 fn inline_size(_context: fidl::encoding::Context) -> usize {
24493 16
24494 }
24495 }
24496
24497 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageState, D>
24498 for &UsageState
24499 {
24500 #[inline]
24501 unsafe fn encode(
24502 self,
24503 encoder: &mut fidl::encoding::Encoder<'_, D>,
24504 offset: usize,
24505 _depth: fidl::encoding::Depth,
24506 ) -> fidl::Result<()> {
24507 encoder.debug_check_bounds::<UsageState>(offset);
24508 encoder.write_num::<u64>(self.ordinal(), offset);
24509 match self {
24510 UsageState::Unadjusted(ref val) => {
24511 fidl::encoding::encode_in_envelope::<UsageStateUnadjusted, D>(
24512 <UsageStateUnadjusted as fidl::encoding::ValueTypeMarker>::borrow(val),
24513 encoder,
24514 offset + 8,
24515 _depth,
24516 )
24517 }
24518 UsageState::Ducked(ref val) => {
24519 fidl::encoding::encode_in_envelope::<UsageStateDucked, D>(
24520 <UsageStateDucked as fidl::encoding::ValueTypeMarker>::borrow(val),
24521 encoder,
24522 offset + 8,
24523 _depth,
24524 )
24525 }
24526 UsageState::Muted(ref val) => {
24527 fidl::encoding::encode_in_envelope::<UsageStateMuted, D>(
24528 <UsageStateMuted as fidl::encoding::ValueTypeMarker>::borrow(val),
24529 encoder,
24530 offset + 8,
24531 _depth,
24532 )
24533 }
24534 UsageState::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
24535 }
24536 }
24537 }
24538
24539 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageState {
24540 #[inline(always)]
24541 fn new_empty() -> Self {
24542 Self::__SourceBreaking { unknown_ordinal: 0 }
24543 }
24544
24545 #[inline]
24546 unsafe fn decode(
24547 &mut self,
24548 decoder: &mut fidl::encoding::Decoder<'_, D>,
24549 offset: usize,
24550 mut depth: fidl::encoding::Depth,
24551 ) -> fidl::Result<()> {
24552 decoder.debug_check_bounds::<Self>(offset);
24553 #[allow(unused_variables)]
24554 let next_out_of_line = decoder.next_out_of_line();
24555 let handles_before = decoder.remaining_handles();
24556 let (ordinal, inlined, num_bytes, num_handles) =
24557 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24558
24559 let member_inline_size = match ordinal {
24560 1 => <UsageStateUnadjusted as fidl::encoding::TypeMarker>::inline_size(
24561 decoder.context,
24562 ),
24563 2 => <UsageStateDucked as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24564 3 => <UsageStateMuted as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24565 0 => return Err(fidl::Error::UnknownUnionTag),
24566 _ => num_bytes as usize,
24567 };
24568
24569 if inlined != (member_inline_size <= 4) {
24570 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24571 }
24572 let _inner_offset;
24573 if inlined {
24574 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24575 _inner_offset = offset + 8;
24576 } else {
24577 depth.increment()?;
24578 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24579 }
24580 match ordinal {
24581 1 => {
24582 #[allow(irrefutable_let_patterns)]
24583 if let UsageState::Unadjusted(_) = self {
24584 } else {
24586 *self = UsageState::Unadjusted(fidl::new_empty!(UsageStateUnadjusted, D));
24588 }
24589 #[allow(irrefutable_let_patterns)]
24590 if let UsageState::Unadjusted(ref mut val) = self {
24591 fidl::decode!(UsageStateUnadjusted, D, val, decoder, _inner_offset, depth)?;
24592 } else {
24593 unreachable!()
24594 }
24595 }
24596 2 => {
24597 #[allow(irrefutable_let_patterns)]
24598 if let UsageState::Ducked(_) = self {
24599 } else {
24601 *self = UsageState::Ducked(fidl::new_empty!(UsageStateDucked, D));
24603 }
24604 #[allow(irrefutable_let_patterns)]
24605 if let UsageState::Ducked(ref mut val) = self {
24606 fidl::decode!(UsageStateDucked, D, val, decoder, _inner_offset, depth)?;
24607 } else {
24608 unreachable!()
24609 }
24610 }
24611 3 => {
24612 #[allow(irrefutable_let_patterns)]
24613 if let UsageState::Muted(_) = self {
24614 } else {
24616 *self = UsageState::Muted(fidl::new_empty!(UsageStateMuted, D));
24618 }
24619 #[allow(irrefutable_let_patterns)]
24620 if let UsageState::Muted(ref mut val) = self {
24621 fidl::decode!(UsageStateMuted, D, val, decoder, _inner_offset, depth)?;
24622 } else {
24623 unreachable!()
24624 }
24625 }
24626 #[allow(deprecated)]
24627 ordinal => {
24628 for _ in 0..num_handles {
24629 decoder.drop_next_handle()?;
24630 }
24631 *self = UsageState::__SourceBreaking { unknown_ordinal: ordinal };
24632 }
24633 }
24634 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24635 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24636 }
24637 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24638 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24639 }
24640 Ok(())
24641 }
24642 }
24643
24644 impl fidl::encoding::ValueTypeMarker for Value {
24645 type Borrowed<'a> = &'a Self;
24646 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24647 value
24648 }
24649 }
24650
24651 unsafe impl fidl::encoding::TypeMarker for Value {
24652 type Owned = Self;
24653
24654 #[inline(always)]
24655 fn inline_align(_context: fidl::encoding::Context) -> usize {
24656 8
24657 }
24658
24659 #[inline(always)]
24660 fn inline_size(_context: fidl::encoding::Context) -> usize {
24661 16
24662 }
24663 }
24664
24665 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Value, D> for &Value {
24666 #[inline]
24667 unsafe fn encode(
24668 self,
24669 encoder: &mut fidl::encoding::Encoder<'_, D>,
24670 offset: usize,
24671 _depth: fidl::encoding::Depth,
24672 ) -> fidl::Result<()> {
24673 encoder.debug_check_bounds::<Value>(offset);
24674 encoder.write_num::<u64>(self.ordinal(), offset);
24675 match self {
24676 Value::BoolValue(ref val) => {
24677 fidl::encoding::encode_in_envelope::<bool, D>(
24678 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
24679 encoder, offset + 8, _depth
24680 )
24681 }
24682 Value::Uint64Value(ref val) => {
24683 fidl::encoding::encode_in_envelope::<u64, D>(
24684 <u64 as fidl::encoding::ValueTypeMarker>::borrow(val),
24685 encoder, offset + 8, _depth
24686 )
24687 }
24688 Value::Int64Value(ref val) => {
24689 fidl::encoding::encode_in_envelope::<i64, D>(
24690 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
24691 encoder, offset + 8, _depth
24692 )
24693 }
24694 Value::StringValue(ref val) => {
24695 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedString, D>(
24696 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(val),
24697 encoder, offset + 8, _depth
24698 )
24699 }
24700 Value::BytesValue(ref val) => {
24701 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u8>, D>(
24702 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(val),
24703 encoder, offset + 8, _depth
24704 )
24705 }
24706 }
24707 }
24708 }
24709
24710 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Value {
24711 #[inline(always)]
24712 fn new_empty() -> Self {
24713 Self::BoolValue(fidl::new_empty!(bool, D))
24714 }
24715
24716 #[inline]
24717 unsafe fn decode(
24718 &mut self,
24719 decoder: &mut fidl::encoding::Decoder<'_, D>,
24720 offset: usize,
24721 mut depth: fidl::encoding::Depth,
24722 ) -> fidl::Result<()> {
24723 decoder.debug_check_bounds::<Self>(offset);
24724 #[allow(unused_variables)]
24725 let next_out_of_line = decoder.next_out_of_line();
24726 let handles_before = decoder.remaining_handles();
24727 let (ordinal, inlined, num_bytes, num_handles) =
24728 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24729
24730 let member_inline_size = match ordinal {
24731 1 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24732 2 => <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24733 3 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24734 4 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
24735 decoder.context,
24736 ),
24737 5 => {
24738 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(
24739 decoder.context,
24740 )
24741 }
24742 _ => return Err(fidl::Error::UnknownUnionTag),
24743 };
24744
24745 if inlined != (member_inline_size <= 4) {
24746 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24747 }
24748 let _inner_offset;
24749 if inlined {
24750 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24751 _inner_offset = offset + 8;
24752 } else {
24753 depth.increment()?;
24754 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24755 }
24756 match ordinal {
24757 1 => {
24758 #[allow(irrefutable_let_patterns)]
24759 if let Value::BoolValue(_) = self {
24760 } else {
24762 *self = Value::BoolValue(fidl::new_empty!(bool, D));
24764 }
24765 #[allow(irrefutable_let_patterns)]
24766 if let Value::BoolValue(ref mut val) = self {
24767 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
24768 } else {
24769 unreachable!()
24770 }
24771 }
24772 2 => {
24773 #[allow(irrefutable_let_patterns)]
24774 if let Value::Uint64Value(_) = self {
24775 } else {
24777 *self = Value::Uint64Value(fidl::new_empty!(u64, D));
24779 }
24780 #[allow(irrefutable_let_patterns)]
24781 if let Value::Uint64Value(ref mut val) = self {
24782 fidl::decode!(u64, D, val, decoder, _inner_offset, depth)?;
24783 } else {
24784 unreachable!()
24785 }
24786 }
24787 3 => {
24788 #[allow(irrefutable_let_patterns)]
24789 if let Value::Int64Value(_) = self {
24790 } else {
24792 *self = Value::Int64Value(fidl::new_empty!(i64, D));
24794 }
24795 #[allow(irrefutable_let_patterns)]
24796 if let Value::Int64Value(ref mut val) = self {
24797 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
24798 } else {
24799 unreachable!()
24800 }
24801 }
24802 4 => {
24803 #[allow(irrefutable_let_patterns)]
24804 if let Value::StringValue(_) = self {
24805 } else {
24807 *self = Value::StringValue(fidl::new_empty!(
24809 fidl::encoding::UnboundedString,
24810 D
24811 ));
24812 }
24813 #[allow(irrefutable_let_patterns)]
24814 if let Value::StringValue(ref mut val) = self {
24815 fidl::decode!(
24816 fidl::encoding::UnboundedString,
24817 D,
24818 val,
24819 decoder,
24820 _inner_offset,
24821 depth
24822 )?;
24823 } else {
24824 unreachable!()
24825 }
24826 }
24827 5 => {
24828 #[allow(irrefutable_let_patterns)]
24829 if let Value::BytesValue(_) = self {
24830 } else {
24832 *self = Value::BytesValue(fidl::new_empty!(
24834 fidl::encoding::UnboundedVector<u8>,
24835 D
24836 ));
24837 }
24838 #[allow(irrefutable_let_patterns)]
24839 if let Value::BytesValue(ref mut val) = self {
24840 fidl::decode!(
24841 fidl::encoding::UnboundedVector<u8>,
24842 D,
24843 val,
24844 decoder,
24845 _inner_offset,
24846 depth
24847 )?;
24848 } else {
24849 unreachable!()
24850 }
24851 }
24852 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24853 }
24854 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24855 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24856 }
24857 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24858 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24859 }
24860 Ok(())
24861 }
24862 }
24863
24864 impl fidl::encoding::ValueTypeMarker for VideoCompressedFormat {
24865 type Borrowed<'a> = &'a Self;
24866 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24867 value
24868 }
24869 }
24870
24871 unsafe impl fidl::encoding::TypeMarker for VideoCompressedFormat {
24872 type Owned = Self;
24873
24874 #[inline(always)]
24875 fn inline_align(_context: fidl::encoding::Context) -> usize {
24876 8
24877 }
24878
24879 #[inline(always)]
24880 fn inline_size(_context: fidl::encoding::Context) -> usize {
24881 16
24882 }
24883 }
24884
24885 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoCompressedFormat, D>
24886 for &VideoCompressedFormat
24887 {
24888 #[inline]
24889 unsafe fn encode(
24890 self,
24891 encoder: &mut fidl::encoding::Encoder<'_, D>,
24892 offset: usize,
24893 _depth: fidl::encoding::Depth,
24894 ) -> fidl::Result<()> {
24895 encoder.debug_check_bounds::<VideoCompressedFormat>(offset);
24896 encoder.write_num::<u64>(self.ordinal(), offset);
24897 match self {
24898 VideoCompressedFormat::TempFieldTodoRemove(ref val) => {
24899 fidl::encoding::encode_in_envelope::<u32, D>(
24900 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
24901 encoder,
24902 offset + 8,
24903 _depth,
24904 )
24905 }
24906 }
24907 }
24908 }
24909
24910 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoCompressedFormat {
24911 #[inline(always)]
24912 fn new_empty() -> Self {
24913 Self::TempFieldTodoRemove(fidl::new_empty!(u32, D))
24914 }
24915
24916 #[inline]
24917 unsafe fn decode(
24918 &mut self,
24919 decoder: &mut fidl::encoding::Decoder<'_, D>,
24920 offset: usize,
24921 mut depth: fidl::encoding::Depth,
24922 ) -> fidl::Result<()> {
24923 decoder.debug_check_bounds::<Self>(offset);
24924 #[allow(unused_variables)]
24925 let next_out_of_line = decoder.next_out_of_line();
24926 let handles_before = decoder.remaining_handles();
24927 let (ordinal, inlined, num_bytes, num_handles) =
24928 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24929
24930 let member_inline_size = match ordinal {
24931 1 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24932 _ => return Err(fidl::Error::UnknownUnionTag),
24933 };
24934
24935 if inlined != (member_inline_size <= 4) {
24936 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24937 }
24938 let _inner_offset;
24939 if inlined {
24940 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24941 _inner_offset = offset + 8;
24942 } else {
24943 depth.increment()?;
24944 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24945 }
24946 match ordinal {
24947 1 => {
24948 #[allow(irrefutable_let_patterns)]
24949 if let VideoCompressedFormat::TempFieldTodoRemove(_) = self {
24950 } else {
24952 *self =
24954 VideoCompressedFormat::TempFieldTodoRemove(fidl::new_empty!(u32, D));
24955 }
24956 #[allow(irrefutable_let_patterns)]
24957 if let VideoCompressedFormat::TempFieldTodoRemove(ref mut val) = self {
24958 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
24959 } else {
24960 unreachable!()
24961 }
24962 }
24963 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24964 }
24965 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24966 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24967 }
24968 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24969 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24970 }
24971 Ok(())
24972 }
24973 }
24974
24975 impl fidl::encoding::ValueTypeMarker for VideoFormat {
24976 type Borrowed<'a> = &'a Self;
24977 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24978 value
24979 }
24980 }
24981
24982 unsafe impl fidl::encoding::TypeMarker for VideoFormat {
24983 type Owned = Self;
24984
24985 #[inline(always)]
24986 fn inline_align(_context: fidl::encoding::Context) -> usize {
24987 8
24988 }
24989
24990 #[inline(always)]
24991 fn inline_size(_context: fidl::encoding::Context) -> usize {
24992 16
24993 }
24994 }
24995
24996 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoFormat, D>
24997 for &VideoFormat
24998 {
24999 #[inline]
25000 unsafe fn encode(
25001 self,
25002 encoder: &mut fidl::encoding::Encoder<'_, D>,
25003 offset: usize,
25004 _depth: fidl::encoding::Depth,
25005 ) -> fidl::Result<()> {
25006 encoder.debug_check_bounds::<VideoFormat>(offset);
25007 encoder.write_num::<u64>(self.ordinal(), offset);
25008 match self {
25009 VideoFormat::Compressed(ref val) => {
25010 fidl::encoding::encode_in_envelope::<VideoCompressedFormat, D>(
25011 <VideoCompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
25012 encoder,
25013 offset + 8,
25014 _depth,
25015 )
25016 }
25017 VideoFormat::Uncompressed(ref val) => {
25018 fidl::encoding::encode_in_envelope::<VideoUncompressedFormat, D>(
25019 <VideoUncompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
25020 encoder,
25021 offset + 8,
25022 _depth,
25023 )
25024 }
25025 }
25026 }
25027 }
25028
25029 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoFormat {
25030 #[inline(always)]
25031 fn new_empty() -> Self {
25032 Self::Compressed(fidl::new_empty!(VideoCompressedFormat, D))
25033 }
25034
25035 #[inline]
25036 unsafe fn decode(
25037 &mut self,
25038 decoder: &mut fidl::encoding::Decoder<'_, D>,
25039 offset: usize,
25040 mut depth: fidl::encoding::Depth,
25041 ) -> fidl::Result<()> {
25042 decoder.debug_check_bounds::<Self>(offset);
25043 #[allow(unused_variables)]
25044 let next_out_of_line = decoder.next_out_of_line();
25045 let handles_before = decoder.remaining_handles();
25046 let (ordinal, inlined, num_bytes, num_handles) =
25047 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
25048
25049 let member_inline_size = match ordinal {
25050 1 => <VideoCompressedFormat as fidl::encoding::TypeMarker>::inline_size(
25051 decoder.context,
25052 ),
25053 2 => <VideoUncompressedFormat as fidl::encoding::TypeMarker>::inline_size(
25054 decoder.context,
25055 ),
25056 _ => return Err(fidl::Error::UnknownUnionTag),
25057 };
25058
25059 if inlined != (member_inline_size <= 4) {
25060 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25061 }
25062 let _inner_offset;
25063 if inlined {
25064 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
25065 _inner_offset = offset + 8;
25066 } else {
25067 depth.increment()?;
25068 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25069 }
25070 match ordinal {
25071 1 => {
25072 #[allow(irrefutable_let_patterns)]
25073 if let VideoFormat::Compressed(_) = self {
25074 } else {
25076 *self = VideoFormat::Compressed(fidl::new_empty!(VideoCompressedFormat, D));
25078 }
25079 #[allow(irrefutable_let_patterns)]
25080 if let VideoFormat::Compressed(ref mut val) = self {
25081 fidl::decode!(
25082 VideoCompressedFormat,
25083 D,
25084 val,
25085 decoder,
25086 _inner_offset,
25087 depth
25088 )?;
25089 } else {
25090 unreachable!()
25091 }
25092 }
25093 2 => {
25094 #[allow(irrefutable_let_patterns)]
25095 if let VideoFormat::Uncompressed(_) = self {
25096 } else {
25098 *self =
25100 VideoFormat::Uncompressed(fidl::new_empty!(VideoUncompressedFormat, D));
25101 }
25102 #[allow(irrefutable_let_patterns)]
25103 if let VideoFormat::Uncompressed(ref mut val) = self {
25104 fidl::decode!(
25105 VideoUncompressedFormat,
25106 D,
25107 val,
25108 decoder,
25109 _inner_offset,
25110 depth
25111 )?;
25112 } else {
25113 unreachable!()
25114 }
25115 }
25116 ordinal => panic!("unexpected ordinal {:?}", ordinal),
25117 }
25118 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
25119 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25120 }
25121 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25122 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25123 }
25124 Ok(())
25125 }
25126 }
25127}