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,
1990 pub reference_time: i64,
1991 pub subject_delta: u32,
1992 pub reference_delta: u32,
1993}
1994
1995impl fidl::Persistable for TimelineFunction {}
1996
1997#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1998pub struct UsageGainListenerOnGainMuteChangedRequest {
1999 pub muted: bool,
2000 pub gain_dbfs: f32,
2001}
2002
2003impl fidl::Persistable for UsageGainListenerOnGainMuteChangedRequest {}
2004
2005#[derive(Clone, Debug, PartialEq)]
2006pub struct UsageWatcher2OnStateChangedRequest {
2007 pub usage: Usage2,
2008 pub state: UsageState,
2009}
2010
2011impl fidl::Persistable for UsageWatcher2OnStateChangedRequest {}
2012
2013#[derive(Clone, Debug, PartialEq)]
2014pub struct UsageWatcherOnStateChangedRequest {
2015 pub usage: Usage,
2016 pub state: UsageState,
2017}
2018
2019impl fidl::Persistable for UsageWatcherOnStateChangedRequest {}
2020
2021#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2023pub struct VideoStreamType {
2024 pub pixel_format: fidl_fuchsia_images__common::PixelFormat,
2025 pub color_space: ColorSpace,
2026 pub width: u32,
2028 pub height: u32,
2029 pub coded_width: u32,
2032 pub coded_height: u32,
2033 pub pixel_aspect_ratio_width: u32,
2036 pub pixel_aspect_ratio_height: u32,
2037 pub stride: u32,
2039}
2040
2041impl fidl::Persistable for VideoStreamType {}
2042
2043#[derive(Clone, Debug, PartialEq)]
2047pub struct VideoUncompressedFormat {
2048 pub image_format: fidl_fuchsia_sysmem__common::ImageFormat2,
2049 pub fourcc: u32,
2050 pub primary_width_pixels: u32,
2051 pub primary_height_pixels: u32,
2052 pub secondary_width_pixels: u32,
2053 pub secondary_height_pixels: u32,
2054 pub planar: bool,
2055 pub swizzled: bool,
2056 pub primary_line_stride_bytes: u32,
2057 pub secondary_line_stride_bytes: u32,
2058 pub primary_start_offset: u32,
2059 pub secondary_start_offset: u32,
2060 pub tertiary_start_offset: u32,
2061 pub primary_pixel_stride: u32,
2062 pub secondary_pixel_stride: u32,
2063 pub primary_display_width_pixels: u32,
2064 pub primary_display_height_pixels: u32,
2065 pub has_pixel_aspect_ratio: bool,
2066 pub pixel_aspect_ratio_width: u32,
2067 pub pixel_aspect_ratio_height: u32,
2068}
2069
2070impl fidl::Persistable for VideoUncompressedFormat {}
2071
2072#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2073pub struct Void;
2074
2075impl fidl::Persistable for Void {}
2076
2077#[derive(Clone, Debug, Default, PartialEq)]
2081pub struct AudioCompressedFormatCvsd {
2082 #[doc(hidden)]
2083 pub __source_breaking: fidl::marker::SourceBreaking,
2084}
2085
2086impl fidl::Persistable for AudioCompressedFormatCvsd {}
2087
2088#[derive(Clone, Debug, Default, PartialEq)]
2092pub struct AudioCompressedFormatLc3 {
2093 #[doc(hidden)]
2094 pub __source_breaking: fidl::marker::SourceBreaking,
2095}
2096
2097impl fidl::Persistable for AudioCompressedFormatLc3 {}
2098
2099#[derive(Clone, Debug, Default, PartialEq)]
2102pub struct AudioConsumerStatus {
2103 pub error: Option<AudioConsumerError>,
2105 pub presentation_timeline: Option<TimelineFunction>,
2113 pub min_lead_time: Option<u64>,
2118 pub max_lead_time: Option<u64>,
2123 #[doc(hidden)]
2124 pub __source_breaking: fidl::marker::SourceBreaking,
2125}
2126
2127impl fidl::Persistable for AudioConsumerStatus {}
2128
2129#[derive(Clone, Debug, Default, PartialEq)]
2133pub struct CvsdEncoderSettings {
2134 #[doc(hidden)]
2135 pub __source_breaking: fidl::marker::SourceBreaking,
2136}
2137
2138impl fidl::Persistable for CvsdEncoderSettings {}
2139
2140#[derive(Clone, Debug, Default, PartialEq)]
2146pub struct DecryptedFormat {
2147 pub ignore_this_field: Option<bool>,
2148 #[doc(hidden)]
2149 pub __source_breaking: fidl::marker::SourceBreaking,
2150}
2151
2152impl fidl::Persistable for DecryptedFormat {}
2153
2154#[derive(Clone, Debug, Default, PartialEq)]
2161pub struct EncryptedFormat {
2162 pub init_vector: Option<Vec<u8>>,
2170 pub subsamples: Option<Vec<SubsampleEntry>>,
2176 pub pattern: Option<EncryptionPattern>,
2184 pub scheme: Option<String>,
2194 pub key_id: Option<Vec<u8>>,
2201 #[doc(hidden)]
2202 pub __source_breaking: fidl::marker::SourceBreaking,
2203}
2204
2205impl fidl::Persistable for EncryptedFormat {}
2206
2207#[derive(Clone, Debug, Default, PartialEq)]
2212pub struct FormatDetails {
2213 pub format_details_version_ordinal: Option<u64>,
2214 pub mime_type: Option<String>,
2215 pub oob_bytes: Option<Vec<u8>>,
2216 pub domain: Option<DomainFormat>,
2217 pub pass_through_parameters: Option<Vec<Parameter>>,
2218 pub encoder_settings: Option<EncoderSettings>,
2223 pub timebase: Option<u64>,
2237 pub profile: Option<CodecProfile>,
2250 #[doc(hidden)]
2251 pub __source_breaking: fidl::marker::SourceBreaking,
2252}
2253
2254impl fidl::Persistable for FormatDetails {}
2255
2256#[derive(Clone, Debug, Default, PartialEq)]
2258pub struct H264EncoderSettings {
2259 pub bit_rate: Option<u32>,
2262 pub frame_rate: Option<u32>,
2265 pub gop_size: Option<u32>,
2269 pub variable_frame_rate: Option<bool>,
2272 pub min_frame_rate: Option<u32>,
2275 pub force_key_frame: Option<bool>,
2278 pub quantization_params: Option<H264QuantizationParameters>,
2282 #[doc(hidden)]
2283 pub __source_breaking: fidl::marker::SourceBreaking,
2284}
2285
2286impl fidl::Persistable for H264EncoderSettings {}
2287
2288#[derive(Clone, Debug, Default, PartialEq)]
2297pub struct H264QuantizationParameters {
2298 pub i_base: Option<u32>,
2300 pub i_min: Option<u32>,
2302 pub i_max: Option<u32>,
2304 pub p_base: Option<u32>,
2306 pub p_min: Option<u32>,
2308 pub p_max: Option<u32>,
2310 #[doc(hidden)]
2311 pub __source_breaking: fidl::marker::SourceBreaking,
2312}
2313
2314impl fidl::Persistable for H264QuantizationParameters {}
2315
2316#[derive(Clone, Debug, Default, PartialEq)]
2318pub struct HevcEncoderSettings {
2319 pub bit_rate: Option<u32>,
2322 pub frame_rate: Option<u32>,
2324 pub gop_size: Option<u32>,
2326 #[doc(hidden)]
2327 pub __source_breaking: fidl::marker::SourceBreaking,
2328}
2329
2330impl fidl::Persistable for HevcEncoderSettings {}
2331
2332#[derive(Clone, Debug, Default, PartialEq)]
2335pub struct InputAudioCapturerConfiguration {
2336 pub usage: Option<AudioCaptureUsage>,
2337 pub usage2: Option<AudioCaptureUsage2>,
2338 #[doc(hidden)]
2339 pub __source_breaking: fidl::marker::SourceBreaking,
2340}
2341
2342impl fidl::Persistable for InputAudioCapturerConfiguration {}
2343
2344#[derive(Clone, Debug, Default, PartialEq)]
2347pub struct Lc3EncoderSettings {
2348 pub nbytes: Option<u16>,
2353 pub frame_duration: Option<Lc3FrameDuration>,
2356 #[doc(hidden)]
2357 pub __source_breaking: fidl::marker::SourceBreaking,
2358}
2359
2360impl fidl::Persistable for Lc3EncoderSettings {}
2361
2362#[derive(Clone, Debug, Default, PartialEq)]
2365pub struct LoopbackAudioCapturerConfiguration {
2366 #[doc(hidden)]
2367 pub __source_breaking: fidl::marker::SourceBreaking,
2368}
2369
2370impl fidl::Persistable for LoopbackAudioCapturerConfiguration {}
2371
2372#[derive(Clone, Debug, Default, PartialEq)]
2375pub struct MSbcEncoderSettings {
2376 #[doc(hidden)]
2377 pub __source_breaking: fidl::marker::SourceBreaking,
2378}
2379
2380impl fidl::Persistable for MSbcEncoderSettings {}
2381
2382#[derive(Clone, Debug, Default, PartialEq)]
2399pub struct Packet {
2400 pub header: Option<PacketHeader>,
2401 pub buffer_index: Option<u32>,
2415 pub stream_lifetime_ordinal: Option<u64>,
2424 pub start_offset: Option<u32>,
2443 pub valid_length_bytes: Option<u32>,
2466 pub timestamp_ish: Option<u64>,
2486 pub start_access_unit: Option<bool>,
2497 pub known_end_access_unit: Option<bool>,
2509 pub key_frame: Option<bool>,
2513 #[doc(hidden)]
2514 pub __source_breaking: fidl::marker::SourceBreaking,
2515}
2516
2517impl fidl::Persistable for Packet {}
2518
2519#[derive(Clone, Debug, Default, PartialEq)]
2527pub struct PacketHeader {
2528 pub buffer_lifetime_ordinal: Option<u64>,
2541 pub packet_index: Option<u32>,
2561 #[doc(hidden)]
2562 pub __source_breaking: fidl::marker::SourceBreaking,
2563}
2564
2565impl fidl::Persistable for PacketHeader {}
2566
2567#[derive(Clone, Debug, Default, PartialEq)]
2580pub struct StreamBufferConstraints {
2581 pub buffer_constraints_version_ordinal: Option<u64>,
2596 pub default_settings: Option<StreamBufferSettings>,
2597 pub per_packet_buffer_bytes_min: Option<u32>,
2598 pub per_packet_buffer_bytes_recommended: Option<u32>,
2599 pub per_packet_buffer_bytes_max: Option<u32>,
2600 pub packet_count_for_server_min: Option<u32>,
2601 pub packet_count_for_server_recommended: Option<u32>,
2602 pub packet_count_for_server_recommended_max: Option<u32>,
2603 pub packet_count_for_server_max: Option<u32>,
2604 pub packet_count_for_client_min: Option<u32>,
2605 pub packet_count_for_client_max: Option<u32>,
2606 pub single_buffer_mode_allowed: Option<bool>,
2607 pub is_physically_contiguous_required: Option<bool>,
2608 #[doc(hidden)]
2609 pub __source_breaking: fidl::marker::SourceBreaking,
2610}
2611
2612impl fidl::Persistable for StreamBufferConstraints {}
2613
2614#[derive(Clone, Debug, Default, PartialEq)]
2617pub struct StreamBufferSettings {
2618 pub buffer_lifetime_ordinal: Option<u64>,
2619 pub buffer_constraints_version_ordinal: Option<u64>,
2620 pub packet_count_for_server: Option<u32>,
2621 pub packet_count_for_client: Option<u32>,
2622 pub per_packet_buffer_bytes: Option<u32>,
2623 pub single_buffer_mode: Option<bool>,
2624 #[doc(hidden)]
2625 pub __source_breaking: fidl::marker::SourceBreaking,
2626}
2627
2628impl fidl::Persistable for StreamBufferSettings {}
2629
2630#[derive(Clone, Debug, Default, PartialEq)]
2633pub struct StreamOutputConstraints {
2634 pub stream_lifetime_ordinal: Option<u64>,
2648 pub buffer_constraints_action_required: Option<bool>,
2677 pub buffer_constraints: Option<StreamBufferConstraints>,
2678 #[doc(hidden)]
2679 pub __source_breaking: fidl::marker::SourceBreaking,
2680}
2681
2682impl fidl::Persistable for StreamOutputConstraints {}
2683
2684#[derive(Clone, Debug, Default, PartialEq)]
2685pub struct StreamOutputFormat {
2686 pub stream_lifetime_ordinal: Option<u64>,
2699 pub format_details: Option<FormatDetails>,
2756 #[doc(hidden)]
2757 pub __source_breaking: fidl::marker::SourceBreaking,
2758}
2759
2760impl fidl::Persistable for StreamOutputFormat {}
2761
2762#[derive(Clone, Debug, Default, PartialEq)]
2765pub struct UsageStateDucked {
2766 #[doc(hidden)]
2767 pub __source_breaking: fidl::marker::SourceBreaking,
2768}
2769
2770impl fidl::Persistable for UsageStateDucked {}
2771
2772#[derive(Clone, Debug, Default, PartialEq)]
2775pub struct UsageStateMuted {
2776 #[doc(hidden)]
2777 pub __source_breaking: fidl::marker::SourceBreaking,
2778}
2779
2780impl fidl::Persistable for UsageStateMuted {}
2781
2782#[derive(Clone, Debug, Default, PartialEq)]
2784pub struct UsageStateUnadjusted {
2785 #[doc(hidden)]
2786 pub __source_breaking: fidl::marker::SourceBreaking,
2787}
2788
2789impl fidl::Persistable for UsageStateUnadjusted {}
2790
2791#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2792pub enum AacBitRate {
2793 Constant(AacConstantBitRate),
2794 Variable(AacVariableBitRate),
2795}
2796
2797impl AacBitRate {
2798 #[inline]
2799 pub fn ordinal(&self) -> u64 {
2800 match *self {
2801 Self::Constant(_) => 1,
2802 Self::Variable(_) => 2,
2803 }
2804 }
2805}
2806
2807impl fidl::Persistable for AacBitRate {}
2808
2809#[derive(Clone, Debug)]
2810pub enum AacTransport {
2811 Raw(AacTransportRaw),
2812 Latm(AacTransportLatm),
2813 Adts(AacTransportAdts),
2814 #[doc(hidden)]
2815 __SourceBreaking {
2816 unknown_ordinal: u64,
2817 },
2818}
2819
2820#[macro_export]
2822macro_rules! AacTransportUnknown {
2823 () => {
2824 _
2825 };
2826}
2827
2828impl PartialEq for AacTransport {
2830 fn eq(&self, other: &Self) -> bool {
2831 match (self, other) {
2832 (Self::Raw(x), Self::Raw(y)) => *x == *y,
2833 (Self::Latm(x), Self::Latm(y)) => *x == *y,
2834 (Self::Adts(x), Self::Adts(y)) => *x == *y,
2835 _ => false,
2836 }
2837 }
2838}
2839
2840impl AacTransport {
2841 #[inline]
2842 pub fn ordinal(&self) -> u64 {
2843 match *self {
2844 Self::Raw(_) => 1,
2845 Self::Latm(_) => 2,
2846 Self::Adts(_) => 3,
2847 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2848 }
2849 }
2850
2851 #[inline]
2852 pub fn unknown_variant_for_testing() -> Self {
2853 Self::__SourceBreaking { unknown_ordinal: 0 }
2854 }
2855
2856 #[inline]
2857 pub fn is_unknown(&self) -> bool {
2858 match self {
2859 Self::__SourceBreaking { .. } => true,
2860 _ => false,
2861 }
2862 }
2863}
2864
2865impl fidl::Persistable for AacTransport {}
2866
2867#[derive(Clone, Debug, PartialEq)]
2869pub enum AudioCapturerConfiguration {
2870 Loopback(LoopbackAudioCapturerConfiguration),
2871 Input(InputAudioCapturerConfiguration),
2872}
2873
2874impl AudioCapturerConfiguration {
2875 #[inline]
2876 pub fn ordinal(&self) -> u64 {
2877 match *self {
2878 Self::Loopback(_) => 1,
2879 Self::Input(_) => 2,
2880 }
2881 }
2882}
2883
2884impl fidl::Persistable for AudioCapturerConfiguration {}
2885
2886#[derive(Clone, Debug)]
2887pub enum AudioCompressedFormat {
2888 Aac(AudioCompressedFormatAac),
2889 Sbc(AudioCompressedFormatSbc),
2890 Cvsd(AudioCompressedFormatCvsd),
2891 Lc3(AudioCompressedFormatLc3),
2892 #[doc(hidden)]
2893 __SourceBreaking {
2894 unknown_ordinal: u64,
2895 },
2896}
2897
2898#[macro_export]
2900macro_rules! AudioCompressedFormatUnknown {
2901 () => {
2902 _
2903 };
2904}
2905
2906impl PartialEq for AudioCompressedFormat {
2908 fn eq(&self, other: &Self) -> bool {
2909 match (self, other) {
2910 (Self::Aac(x), Self::Aac(y)) => *x == *y,
2911 (Self::Sbc(x), Self::Sbc(y)) => *x == *y,
2912 (Self::Cvsd(x), Self::Cvsd(y)) => *x == *y,
2913 (Self::Lc3(x), Self::Lc3(y)) => *x == *y,
2914 _ => false,
2915 }
2916 }
2917}
2918
2919impl AudioCompressedFormat {
2920 #[inline]
2921 pub fn ordinal(&self) -> u64 {
2922 match *self {
2923 Self::Aac(_) => 1,
2924 Self::Sbc(_) => 2,
2925 Self::Cvsd(_) => 3,
2926 Self::Lc3(_) => 4,
2927 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2928 }
2929 }
2930
2931 #[inline]
2932 pub fn unknown_variant_for_testing() -> Self {
2933 Self::__SourceBreaking { unknown_ordinal: 0 }
2934 }
2935
2936 #[inline]
2937 pub fn is_unknown(&self) -> bool {
2938 match self {
2939 Self::__SourceBreaking { .. } => true,
2940 _ => false,
2941 }
2942 }
2943}
2944
2945impl fidl::Persistable for AudioCompressedFormat {}
2946
2947#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2949pub enum AudioConsumerError {
2950 PlaceHolder(Void),
2951}
2952
2953impl AudioConsumerError {
2954 #[inline]
2955 pub fn ordinal(&self) -> u64 {
2956 match *self {
2957 Self::PlaceHolder(_) => 1,
2958 }
2959 }
2960}
2961
2962impl fidl::Persistable for AudioConsumerError {}
2963
2964#[derive(Clone, Debug, PartialEq)]
2966pub enum AudioFormat {
2967 Compressed(AudioCompressedFormat),
2968 Uncompressed(AudioUncompressedFormat),
2969}
2970
2971impl AudioFormat {
2972 #[inline]
2973 pub fn ordinal(&self) -> u64 {
2974 match *self {
2975 Self::Compressed(_) => 1,
2976 Self::Uncompressed(_) => 2,
2977 }
2978 }
2979}
2980
2981impl fidl::Persistable for AudioFormat {}
2982
2983#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2985pub enum AudioUncompressedFormat {
2986 Pcm(PcmFormat),
2987}
2988
2989impl AudioUncompressedFormat {
2990 #[inline]
2991 pub fn ordinal(&self) -> u64 {
2992 match *self {
2993 Self::Pcm(_) => 1,
2994 }
2995 }
2996}
2997
2998impl fidl::Persistable for AudioUncompressedFormat {}
2999
3000#[derive(Clone, Debug)]
3004pub enum CryptoFormat {
3005 Encrypted(EncryptedFormat),
3006 Decrypted(DecryptedFormat),
3007 #[doc(hidden)]
3008 __SourceBreaking {
3009 unknown_ordinal: u64,
3010 },
3011}
3012
3013#[macro_export]
3015macro_rules! CryptoFormatUnknown {
3016 () => {
3017 _
3018 };
3019}
3020
3021impl PartialEq for CryptoFormat {
3023 fn eq(&self, other: &Self) -> bool {
3024 match (self, other) {
3025 (Self::Encrypted(x), Self::Encrypted(y)) => *x == *y,
3026 (Self::Decrypted(x), Self::Decrypted(y)) => *x == *y,
3027 _ => false,
3028 }
3029 }
3030}
3031
3032impl CryptoFormat {
3033 #[inline]
3034 pub fn ordinal(&self) -> u64 {
3035 match *self {
3036 Self::Encrypted(_) => 1,
3037 Self::Decrypted(_) => 2,
3038 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3039 }
3040 }
3041
3042 #[inline]
3043 pub fn unknown_variant_for_testing() -> Self {
3044 Self::__SourceBreaking { unknown_ordinal: 0 }
3045 }
3046
3047 #[inline]
3048 pub fn is_unknown(&self) -> bool {
3049 match self {
3050 Self::__SourceBreaking { .. } => true,
3051 _ => false,
3052 }
3053 }
3054}
3055
3056impl fidl::Persistable for CryptoFormat {}
3057
3058#[derive(Clone, Debug, PartialEq)]
3060pub enum DomainFormat {
3061 Audio(AudioFormat),
3062 Video(VideoFormat),
3063 Crypto(CryptoFormat),
3064}
3065
3066impl DomainFormat {
3067 #[inline]
3068 pub fn ordinal(&self) -> u64 {
3069 match *self {
3070 Self::Audio(_) => 1,
3071 Self::Video(_) => 2,
3072 Self::Crypto(_) => 3,
3073 }
3074 }
3075}
3076
3077impl fidl::Persistable for DomainFormat {}
3078
3079#[derive(Clone, Debug)]
3082pub enum EncoderSettings {
3083 Sbc(SbcEncoderSettings),
3084 Aac(AacEncoderSettings),
3085 H264(H264EncoderSettings),
3086 Hevc(HevcEncoderSettings),
3087 Cvsd(CvsdEncoderSettings),
3088 Lc3(Lc3EncoderSettings),
3089 Msbc(MSbcEncoderSettings),
3090 #[doc(hidden)]
3091 __SourceBreaking {
3092 unknown_ordinal: u64,
3093 },
3094}
3095
3096#[macro_export]
3098macro_rules! EncoderSettingsUnknown {
3099 () => {
3100 _
3101 };
3102}
3103
3104impl PartialEq for EncoderSettings {
3106 fn eq(&self, other: &Self) -> bool {
3107 match (self, other) {
3108 (Self::Sbc(x), Self::Sbc(y)) => *x == *y,
3109 (Self::Aac(x), Self::Aac(y)) => *x == *y,
3110 (Self::H264(x), Self::H264(y)) => *x == *y,
3111 (Self::Hevc(x), Self::Hevc(y)) => *x == *y,
3112 (Self::Cvsd(x), Self::Cvsd(y)) => *x == *y,
3113 (Self::Lc3(x), Self::Lc3(y)) => *x == *y,
3114 (Self::Msbc(x), Self::Msbc(y)) => *x == *y,
3115 _ => false,
3116 }
3117 }
3118}
3119
3120impl EncoderSettings {
3121 #[inline]
3122 pub fn ordinal(&self) -> u64 {
3123 match *self {
3124 Self::Sbc(_) => 1,
3125 Self::Aac(_) => 2,
3126 Self::H264(_) => 3,
3127 Self::Hevc(_) => 4,
3128 Self::Cvsd(_) => 5,
3129 Self::Lc3(_) => 6,
3130 Self::Msbc(_) => 7,
3131 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3132 }
3133 }
3134
3135 #[inline]
3136 pub fn unknown_variant_for_testing() -> Self {
3137 Self::__SourceBreaking { unknown_ordinal: 0 }
3138 }
3139
3140 #[inline]
3141 pub fn is_unknown(&self) -> bool {
3142 match self {
3143 Self::__SourceBreaking { .. } => true,
3144 _ => false,
3145 }
3146 }
3147}
3148
3149impl fidl::Persistable for EncoderSettings {}
3150
3151#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3153pub enum MediumSpecificStreamType {
3154 Audio(AudioStreamType),
3155 Video(VideoStreamType),
3156 Text(TextStreamType),
3157 Subpicture(SubpictureStreamType),
3158}
3159
3160impl MediumSpecificStreamType {
3161 #[inline]
3162 pub fn ordinal(&self) -> u64 {
3163 match *self {
3164 Self::Audio(_) => 1,
3165 Self::Video(_) => 2,
3166 Self::Text(_) => 3,
3167 Self::Subpicture(_) => 4,
3168 }
3169 }
3170}
3171
3172impl fidl::Persistable for MediumSpecificStreamType {}
3173
3174#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3175pub enum Usage {
3176 RenderUsage(AudioRenderUsage),
3177 CaptureUsage(AudioCaptureUsage),
3178}
3179
3180impl Usage {
3181 #[inline]
3182 pub fn ordinal(&self) -> u64 {
3183 match *self {
3184 Self::RenderUsage(_) => 1,
3185 Self::CaptureUsage(_) => 2,
3186 }
3187 }
3188}
3189
3190impl fidl::Persistable for Usage {}
3191
3192#[derive(Clone, Debug)]
3193pub enum Usage2 {
3194 RenderUsage(AudioRenderUsage2),
3195 CaptureUsage(AudioCaptureUsage2),
3196 #[doc(hidden)]
3197 __SourceBreaking {
3198 unknown_ordinal: u64,
3199 },
3200}
3201
3202#[macro_export]
3204macro_rules! Usage2Unknown {
3205 () => {
3206 _
3207 };
3208}
3209
3210impl PartialEq for Usage2 {
3212 fn eq(&self, other: &Self) -> bool {
3213 match (self, other) {
3214 (Self::RenderUsage(x), Self::RenderUsage(y)) => *x == *y,
3215 (Self::CaptureUsage(x), Self::CaptureUsage(y)) => *x == *y,
3216 _ => false,
3217 }
3218 }
3219}
3220
3221impl Usage2 {
3222 #[inline]
3223 pub fn ordinal(&self) -> u64 {
3224 match *self {
3225 Self::RenderUsage(_) => 1,
3226 Self::CaptureUsage(_) => 2,
3227 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3228 }
3229 }
3230
3231 #[inline]
3232 pub fn unknown_variant_for_testing() -> Self {
3233 Self::__SourceBreaking { unknown_ordinal: 0 }
3234 }
3235
3236 #[inline]
3237 pub fn is_unknown(&self) -> bool {
3238 match self {
3239 Self::__SourceBreaking { .. } => true,
3240 _ => false,
3241 }
3242 }
3243}
3244
3245impl fidl::Persistable for Usage2 {}
3246
3247#[derive(Clone, Debug)]
3249pub enum UsageState {
3250 Unadjusted(UsageStateUnadjusted),
3251 Ducked(UsageStateDucked),
3252 Muted(UsageStateMuted),
3253 #[doc(hidden)]
3254 __SourceBreaking {
3255 unknown_ordinal: u64,
3256 },
3257}
3258
3259#[macro_export]
3261macro_rules! UsageStateUnknown {
3262 () => {
3263 _
3264 };
3265}
3266
3267impl PartialEq for UsageState {
3269 fn eq(&self, other: &Self) -> bool {
3270 match (self, other) {
3271 (Self::Unadjusted(x), Self::Unadjusted(y)) => *x == *y,
3272 (Self::Ducked(x), Self::Ducked(y)) => *x == *y,
3273 (Self::Muted(x), Self::Muted(y)) => *x == *y,
3274 _ => false,
3275 }
3276 }
3277}
3278
3279impl UsageState {
3280 #[inline]
3281 pub fn ordinal(&self) -> u64 {
3282 match *self {
3283 Self::Unadjusted(_) => 1,
3284 Self::Ducked(_) => 2,
3285 Self::Muted(_) => 3,
3286 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3287 }
3288 }
3289
3290 #[inline]
3291 pub fn unknown_variant_for_testing() -> Self {
3292 Self::__SourceBreaking { unknown_ordinal: 0 }
3293 }
3294
3295 #[inline]
3296 pub fn is_unknown(&self) -> bool {
3297 match self {
3298 Self::__SourceBreaking { .. } => true,
3299 _ => false,
3300 }
3301 }
3302}
3303
3304impl fidl::Persistable for UsageState {}
3305
3306#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3310pub enum Value {
3311 BoolValue(bool),
3312 Uint64Value(u64),
3313 Int64Value(i64),
3314 StringValue(String),
3315 BytesValue(Vec<u8>),
3316}
3317
3318impl Value {
3319 #[inline]
3320 pub fn ordinal(&self) -> u64 {
3321 match *self {
3322 Self::BoolValue(_) => 1,
3323 Self::Uint64Value(_) => 2,
3324 Self::Int64Value(_) => 3,
3325 Self::StringValue(_) => 4,
3326 Self::BytesValue(_) => 5,
3327 }
3328 }
3329}
3330
3331impl fidl::Persistable for Value {}
3332
3333#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3337pub enum VideoCompressedFormat {
3338 TempFieldTodoRemove(u32),
3339}
3340
3341impl VideoCompressedFormat {
3342 #[inline]
3343 pub fn ordinal(&self) -> u64 {
3344 match *self {
3345 Self::TempFieldTodoRemove(_) => 1,
3346 }
3347 }
3348}
3349
3350impl fidl::Persistable for VideoCompressedFormat {}
3351
3352#[derive(Clone, Debug, PartialEq)]
3358pub enum VideoFormat {
3359 Compressed(VideoCompressedFormat),
3360 Uncompressed(VideoUncompressedFormat),
3361}
3362
3363impl VideoFormat {
3364 #[inline]
3365 pub fn ordinal(&self) -> u64 {
3366 match *self {
3367 Self::Compressed(_) => 1,
3368 Self::Uncompressed(_) => 2,
3369 }
3370 }
3371}
3372
3373impl fidl::Persistable for VideoFormat {}
3374
3375pub mod activity_reporter_ordinals {
3376 pub const WATCH_RENDER_ACTIVITY: u64 = 0x2974e9f5880b2f1f;
3377 pub const WATCH_RENDER_ACTIVITY2: u64 = 0x484236fc11b363e6;
3378 pub const WATCH_CAPTURE_ACTIVITY: u64 = 0x70e7038e9658e128;
3379 pub const WATCH_CAPTURE_ACTIVITY2: u64 = 0x3d137e0364f9d550;
3380}
3381
3382pub mod audio_ordinals {
3383 pub const CREATE_AUDIO_RENDERER: u64 = 0x572f413566fd58f1;
3384 pub const CREATE_AUDIO_CAPTURER: u64 = 0x44660fc63a6202f;
3385}
3386
3387pub mod audio_capturer_ordinals {
3388 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3389 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3390 pub const ON_PACKET_PRODUCED: u64 = 0x6bbe69746a3c8bd9;
3391 pub const ON_END_OF_STREAM: u64 = 0x550e69b41d03e2c2;
3392 pub const RELEASE_PACKET: u64 = 0x7a7b57f0f7d9e4bb;
3393 pub const DISCARD_ALL_PACKETS: u64 = 0x27afd605e97b09d2;
3394 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x35f9d721e905b831;
3395 pub const SET_PCM_STREAM_TYPE: u64 = 0x1531ea9ea2c852cd;
3396 pub const CAPTURE_AT: u64 = 0x784e25df72cea780;
3397 pub const START_ASYNC_CAPTURE: u64 = 0x7768adbb1ccfd7a6;
3398 pub const STOP_ASYNC_CAPTURE: u64 = 0x5bfc8790a8cef8cb;
3399 pub const STOP_ASYNC_CAPTURE_NO_REPLY: u64 = 0x33223cb2962c95e3;
3400 pub const BIND_GAIN_CONTROL: u64 = 0x658a6a17ddb3a8e0;
3401 pub const GET_REFERENCE_CLOCK: u64 = 0x50d037aa5a4b4d71;
3402 pub const SET_REFERENCE_CLOCK: u64 = 0x732b2c496d521bcf;
3403 pub const SET_USAGE: u64 = 0x42a16f392bd21b25;
3404 pub const SET_USAGE2: u64 = 0x7a73e251b8d2382b;
3405 pub const GET_STREAM_TYPE: u64 = 0x5dcaaa670b433088;
3406}
3407
3408pub mod audio_consumer_ordinals {
3409 pub const CREATE_STREAM_SINK: u64 = 0x525b3b97fdf7d884;
3410 pub const ON_END_OF_STREAM: u64 = 0x53a64e6d0e8f8a20;
3411 pub const START: u64 = 0x4fdbd44b3f2a3a3c;
3412 pub const STOP: u64 = 0x3d46c3741686c40d;
3413 pub const SET_RATE: u64 = 0x45342b73968bfafe;
3414 pub const BIND_VOLUME_CONTROL: u64 = 0x6f1b01fd887f5748;
3415 pub const WATCH_STATUS: u64 = 0x35cf702c721e2cc6;
3416}
3417
3418pub mod audio_core_ordinals {
3419 pub const CREATE_AUDIO_RENDERER: u64 = 0x2ac9beba47f83435;
3420 pub const CREATE_AUDIO_CAPTURER_WITH_CONFIGURATION: u64 = 0x459de383b0d76d97;
3421 pub const CREATE_AUDIO_CAPTURER: u64 = 0x787db169df99aed0;
3422 pub const SET_RENDER_USAGE_GAIN: u64 = 0x48097f45f6e2b8e7;
3423 pub const SET_RENDER_USAGE_GAIN2: u64 = 0x779b1531dc9e64f4;
3424 pub const SET_CAPTURE_USAGE_GAIN: u64 = 0x457d29217d4ea248;
3425 pub const SET_CAPTURE_USAGE_GAIN2: u64 = 0x15065ee308f44af0;
3426 pub const BIND_USAGE_VOLUME_CONTROL: u64 = 0x7225be116aadc137;
3427 pub const BIND_USAGE_VOLUME_CONTROL2: u64 = 0x729dff93019d055;
3428 pub const GET_VOLUME_FROM_DB: u64 = 0x50e3ca45509770bf;
3429 pub const GET_VOLUME_FROM_DB2: u64 = 0x165c811091ef99da;
3430 pub const GET_DB_FROM_VOLUME: u64 = 0x3e8eec27dd5a8bda;
3431 pub const GET_DB_FROM_VOLUME2: u64 = 0x5f421a8ebf265bf3;
3432 pub const SET_INTERACTION: u64 = 0x7bfed14345ece7b7;
3433 pub const SET_INTERACTION2: u64 = 0x7226c7c6e6edc62f;
3434 pub const RESET_INTERACTIONS: u64 = 0x65bd94d9d0a28b5e;
3435 pub const LOAD_DEFAULTS: u64 = 0x54a0bebca85f6b31;
3436}
3437
3438pub mod audio_device_enumerator_ordinals {
3439 pub const GET_DEVICES: u64 = 0x4ce1aa218aeb12a6;
3440 pub const ON_DEVICE_ADDED: u64 = 0xe0fbe40057c4b44;
3441 pub const ON_DEVICE_REMOVED: u64 = 0x6f3b7574463d9ff8;
3442 pub const ON_DEVICE_GAIN_CHANGED: u64 = 0x14aefcbbb076b0e9;
3443 pub const ON_DEFAULT_DEVICE_CHANGED: u64 = 0x16357b42d4c16e11;
3444 pub const GET_DEVICE_GAIN: u64 = 0x25dd4723403c414b;
3445 pub const SET_DEVICE_GAIN: u64 = 0x5bdabc8ebe83591;
3446 pub const ADD_DEVICE_BY_CHANNEL: u64 = 0x72cdbada4d70ed67;
3447}
3448
3449pub mod audio_renderer_ordinals {
3450 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3451 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3452 pub const SEND_PACKET: u64 = 0x67cddd607442775f;
3453 pub const SEND_PACKET_NO_REPLY: u64 = 0x8d9b8b413ceba9d;
3454 pub const END_OF_STREAM: u64 = 0x6180fd6f7e793b71;
3455 pub const DISCARD_ALL_PACKETS: u64 = 0x6f4dad7af2917665;
3456 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x50d36d0d23081bc4;
3457 pub const BIND_GAIN_CONTROL: u64 = 0x293f5c7f8fba2bdc;
3458 pub const SET_PTS_UNITS: u64 = 0xf68cd108785a27c;
3459 pub const SET_PTS_CONTINUITY_THRESHOLD: u64 = 0x2849ba571d1971ba;
3460 pub const GET_REFERENCE_CLOCK: u64 = 0x2f7a7f011a172f7e;
3461 pub const SET_REFERENCE_CLOCK: u64 = 0x39acd05d832b5fed;
3462 pub const SET_USAGE: u64 = 0x3994bd23b55a733e;
3463 pub const SET_USAGE2: u64 = 0x2904035c7132b103;
3464 pub const SET_PCM_STREAM_TYPE: u64 = 0x27aa715d8901fa19;
3465 pub const ENABLE_MIN_LEAD_TIME_EVENTS: u64 = 0x62808dfad72bf890;
3466 pub const ON_MIN_LEAD_TIME_CHANGED: u64 = 0x4feff7d278978c4e;
3467 pub const GET_MIN_LEAD_TIME: u64 = 0x1cf3c3ecd8fec26b;
3468 pub const PLAY: u64 = 0x3c0162db084f74a3;
3469 pub const PLAY_NO_REPLY: u64 = 0x1b7fe832b68c22ef;
3470 pub const PAUSE: u64 = 0x41d557588d93d153;
3471 pub const PAUSE_NO_REPLY: u64 = 0x24cc45d4f3855ab;
3472}
3473
3474pub mod profile_provider_ordinals {
3475 pub const REGISTER_HANDLER_WITH_CAPACITY: u64 = 0x60459ecef7458176;
3476 pub const UNREGISTER_HANDLER: u64 = 0x724d9d5fd8ef544c;
3477 pub const REGISTER_MEMORY_RANGE: u64 = 0x2f509d3523e9562d;
3478 pub const UNREGISTER_MEMORY_RANGE: u64 = 0x2dc313d6aa81ad27;
3479}
3480
3481pub mod session_audio_consumer_factory_ordinals {
3482 pub const CREATE_AUDIO_CONSUMER: u64 = 0x6fab96f988e7d7fb;
3483}
3484
3485pub mod simple_stream_sink_ordinals {
3486 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3487 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3488 pub const SEND_PACKET: u64 = 0x67cddd607442775f;
3489 pub const SEND_PACKET_NO_REPLY: u64 = 0x8d9b8b413ceba9d;
3490 pub const END_OF_STREAM: u64 = 0x6180fd6f7e793b71;
3491 pub const DISCARD_ALL_PACKETS: u64 = 0x6f4dad7af2917665;
3492 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x50d36d0d23081bc4;
3493}
3494
3495pub mod stream_buffer_set_ordinals {
3496 pub const ADD_PAYLOAD_BUFFER: u64 = 0x3b3a37fc34fe5b56;
3497 pub const REMOVE_PAYLOAD_BUFFER: u64 = 0x5d1e4f74c3658262;
3498}
3499
3500pub mod stream_processor_ordinals {
3501 pub const ENABLE_ON_STREAM_FAILED: u64 = 0x3940929617dbf02b;
3502 pub const ON_STREAM_FAILED: u64 = 0x77ccf70bb061cf8e;
3503 pub const ON_INPUT_CONSTRAINTS: u64 = 0x211da9966a8ca0;
3504 pub const SET_INPUT_BUFFER_PARTIAL_SETTINGS: u64 = 0xb02e0663a40e4c4;
3505 pub const ON_OUTPUT_CONSTRAINTS: u64 = 0x40d8234504c170f3;
3506 pub const ON_OUTPUT_FORMAT: u64 = 0x131b77ae120360bc;
3507 pub const SET_OUTPUT_BUFFER_PARTIAL_SETTINGS: u64 = 0x118bb8c819a7bbbb;
3508 pub const COMPLETE_OUTPUT_BUFFER_PARTIAL_SETTINGS: u64 = 0x50529e5c680ae3ab;
3509 pub const FLUSH_END_OF_STREAM_AND_CLOSE_STREAM: u64 = 0x2b62c3e26d0667e6;
3510 pub const CLOSE_CURRENT_STREAM: u64 = 0x1d8a67522170ca07;
3511 pub const SYNC: u64 = 0x4b3e44300b0ec6aa;
3512 pub const ON_OUTPUT_PACKET: u64 = 0x5c2029be1090ce93;
3513 pub const RECYCLE_OUTPUT_PACKET: u64 = 0x32763632b94e0bd5;
3514 pub const ON_OUTPUT_END_OF_STREAM: u64 = 0x3bb65d237cfa50e6;
3515 pub const QUEUE_INPUT_FORMAT_DETAILS: u64 = 0x170dc0979d52231;
3516 pub const QUEUE_INPUT_PACKET: u64 = 0x47173d2652d9df3b;
3517 pub const ON_FREE_INPUT_PACKET: u64 = 0xeef799b28708bbd;
3518 pub const QUEUE_INPUT_END_OF_STREAM: u64 = 0x2051b6ad00f20b37;
3519}
3520
3521pub mod stream_sink_ordinals {
3522 pub const SEND_PACKET: u64 = 0x67cddd607442775f;
3523 pub const SEND_PACKET_NO_REPLY: u64 = 0x8d9b8b413ceba9d;
3524 pub const END_OF_STREAM: u64 = 0x6180fd6f7e793b71;
3525 pub const DISCARD_ALL_PACKETS: u64 = 0x6f4dad7af2917665;
3526 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x50d36d0d23081bc4;
3527}
3528
3529pub mod stream_source_ordinals {
3530 pub const ON_PACKET_PRODUCED: u64 = 0x6bbe69746a3c8bd9;
3531 pub const ON_END_OF_STREAM: u64 = 0x550e69b41d03e2c2;
3532 pub const RELEASE_PACKET: u64 = 0x7a7b57f0f7d9e4bb;
3533 pub const DISCARD_ALL_PACKETS: u64 = 0x27afd605e97b09d2;
3534 pub const DISCARD_ALL_PACKETS_NO_REPLY: u64 = 0x35f9d721e905b831;
3535}
3536
3537pub mod usage2_audio_consumer_factory_ordinals {
3538 pub const CREATE_AUDIO_CONSUMER: u64 = 0x767722302a171873;
3539}
3540
3541pub mod usage_audio_consumer_factory_ordinals {
3542 pub const CREATE_AUDIO_CONSUMER: u64 = 0x4d975ca9b8f625a3;
3543}
3544
3545pub mod usage_gain_listener_ordinals {
3546 pub const ON_GAIN_MUTE_CHANGED: u64 = 0x681570258eac3a8d;
3547}
3548
3549pub mod usage_gain_reporter_ordinals {
3550 pub const REGISTER_LISTENER: u64 = 0x767107c168c226af;
3551 pub const REGISTER_LISTENER2: u64 = 0x760a8e1c5873629c;
3552}
3553
3554pub mod usage_reporter_ordinals {
3555 pub const WATCH: u64 = 0x769e6fb17075c959;
3556 pub const WATCH2: u64 = 0x4a43c4c82f5d8ce8;
3557}
3558
3559pub mod usage_watcher_ordinals {
3560 pub const ON_STATE_CHANGED: u64 = 0x5b955c5768ec75c5;
3561}
3562
3563pub mod usage_watcher2_ordinals {
3564 pub const ON_STATE_CHANGED: u64 = 0xca31a8b13c324d4;
3565}
3566
3567mod internal {
3568 use super::*;
3569 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStartFlags {
3570 type Owned = Self;
3571
3572 #[inline(always)]
3573 fn inline_align(_context: fidl::encoding::Context) -> usize {
3574 4
3575 }
3576
3577 #[inline(always)]
3578 fn inline_size(_context: fidl::encoding::Context) -> usize {
3579 4
3580 }
3581 }
3582
3583 impl fidl::encoding::ValueTypeMarker for AudioConsumerStartFlags {
3584 type Borrowed<'a> = Self;
3585 #[inline(always)]
3586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3587 *value
3588 }
3589 }
3590
3591 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3592 for AudioConsumerStartFlags
3593 {
3594 #[inline]
3595 unsafe fn encode(
3596 self,
3597 encoder: &mut fidl::encoding::Encoder<'_, D>,
3598 offset: usize,
3599 _depth: fidl::encoding::Depth,
3600 ) -> fidl::Result<()> {
3601 encoder.debug_check_bounds::<Self>(offset);
3602 if self.bits() & Self::all().bits() != self.bits() {
3603 return Err(fidl::Error::InvalidBitsValue);
3604 }
3605 encoder.write_num(self.bits(), offset);
3606 Ok(())
3607 }
3608 }
3609
3610 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3611 for AudioConsumerStartFlags
3612 {
3613 #[inline(always)]
3614 fn new_empty() -> Self {
3615 Self::empty()
3616 }
3617
3618 #[inline]
3619 unsafe fn decode(
3620 &mut self,
3621 decoder: &mut fidl::encoding::Decoder<'_, D>,
3622 offset: usize,
3623 _depth: fidl::encoding::Depth,
3624 ) -> fidl::Result<()> {
3625 decoder.debug_check_bounds::<Self>(offset);
3626 let prim = decoder.read_num::<u32>(offset);
3627 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3628 Ok(())
3629 }
3630 }
3631 unsafe impl fidl::encoding::TypeMarker for AudioGainInfoFlags {
3632 type Owned = Self;
3633
3634 #[inline(always)]
3635 fn inline_align(_context: fidl::encoding::Context) -> usize {
3636 4
3637 }
3638
3639 #[inline(always)]
3640 fn inline_size(_context: fidl::encoding::Context) -> usize {
3641 4
3642 }
3643 }
3644
3645 impl fidl::encoding::ValueTypeMarker for AudioGainInfoFlags {
3646 type Borrowed<'a> = Self;
3647 #[inline(always)]
3648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3649 *value
3650 }
3651 }
3652
3653 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3654 for AudioGainInfoFlags
3655 {
3656 #[inline]
3657 unsafe fn encode(
3658 self,
3659 encoder: &mut fidl::encoding::Encoder<'_, D>,
3660 offset: usize,
3661 _depth: fidl::encoding::Depth,
3662 ) -> fidl::Result<()> {
3663 encoder.debug_check_bounds::<Self>(offset);
3664 if self.bits() & Self::all().bits() != self.bits() {
3665 return Err(fidl::Error::InvalidBitsValue);
3666 }
3667 encoder.write_num(self.bits(), offset);
3668 Ok(())
3669 }
3670 }
3671
3672 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainInfoFlags {
3673 #[inline(always)]
3674 fn new_empty() -> Self {
3675 Self::empty()
3676 }
3677
3678 #[inline]
3679 unsafe fn decode(
3680 &mut self,
3681 decoder: &mut fidl::encoding::Decoder<'_, D>,
3682 offset: usize,
3683 _depth: fidl::encoding::Depth,
3684 ) -> fidl::Result<()> {
3685 decoder.debug_check_bounds::<Self>(offset);
3686 let prim = decoder.read_num::<u32>(offset);
3687 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3688 Ok(())
3689 }
3690 }
3691 unsafe impl fidl::encoding::TypeMarker for AudioGainValidFlags {
3692 type Owned = Self;
3693
3694 #[inline(always)]
3695 fn inline_align(_context: fidl::encoding::Context) -> usize {
3696 4
3697 }
3698
3699 #[inline(always)]
3700 fn inline_size(_context: fidl::encoding::Context) -> usize {
3701 4
3702 }
3703 }
3704
3705 impl fidl::encoding::ValueTypeMarker for AudioGainValidFlags {
3706 type Borrowed<'a> = Self;
3707 #[inline(always)]
3708 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3709 *value
3710 }
3711 }
3712
3713 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3714 for AudioGainValidFlags
3715 {
3716 #[inline]
3717 unsafe fn encode(
3718 self,
3719 encoder: &mut fidl::encoding::Encoder<'_, D>,
3720 offset: usize,
3721 _depth: fidl::encoding::Depth,
3722 ) -> fidl::Result<()> {
3723 encoder.debug_check_bounds::<Self>(offset);
3724 if self.bits() & Self::all().bits() != self.bits() {
3725 return Err(fidl::Error::InvalidBitsValue);
3726 }
3727 encoder.write_num(self.bits(), offset);
3728 Ok(())
3729 }
3730 }
3731
3732 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainValidFlags {
3733 #[inline(always)]
3734 fn new_empty() -> Self {
3735 Self::empty()
3736 }
3737
3738 #[inline]
3739 unsafe fn decode(
3740 &mut self,
3741 decoder: &mut fidl::encoding::Decoder<'_, D>,
3742 offset: usize,
3743 _depth: fidl::encoding::Depth,
3744 ) -> fidl::Result<()> {
3745 decoder.debug_check_bounds::<Self>(offset);
3746 let prim = decoder.read_num::<u32>(offset);
3747 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3748 Ok(())
3749 }
3750 }
3751 unsafe impl fidl::encoding::TypeMarker for AacAudioObjectType {
3752 type Owned = Self;
3753
3754 #[inline(always)]
3755 fn inline_align(_context: fidl::encoding::Context) -> usize {
3756 std::mem::align_of::<u32>()
3757 }
3758
3759 #[inline(always)]
3760 fn inline_size(_context: fidl::encoding::Context) -> usize {
3761 std::mem::size_of::<u32>()
3762 }
3763
3764 #[inline(always)]
3765 fn encode_is_copy() -> bool {
3766 true
3767 }
3768
3769 #[inline(always)]
3770 fn decode_is_copy() -> bool {
3771 false
3772 }
3773 }
3774
3775 impl fidl::encoding::ValueTypeMarker for AacAudioObjectType {
3776 type Borrowed<'a> = Self;
3777 #[inline(always)]
3778 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3779 *value
3780 }
3781 }
3782
3783 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3784 for AacAudioObjectType
3785 {
3786 #[inline]
3787 unsafe fn encode(
3788 self,
3789 encoder: &mut fidl::encoding::Encoder<'_, D>,
3790 offset: usize,
3791 _depth: fidl::encoding::Depth,
3792 ) -> fidl::Result<()> {
3793 encoder.debug_check_bounds::<Self>(offset);
3794 encoder.write_num(self.into_primitive(), offset);
3795 Ok(())
3796 }
3797 }
3798
3799 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacAudioObjectType {
3800 #[inline(always)]
3801 fn new_empty() -> Self {
3802 Self::Mpeg2AacLc
3803 }
3804
3805 #[inline]
3806 unsafe fn decode(
3807 &mut self,
3808 decoder: &mut fidl::encoding::Decoder<'_, D>,
3809 offset: usize,
3810 _depth: fidl::encoding::Depth,
3811 ) -> fidl::Result<()> {
3812 decoder.debug_check_bounds::<Self>(offset);
3813 let prim = decoder.read_num::<u32>(offset);
3814
3815 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3816 Ok(())
3817 }
3818 }
3819 unsafe impl fidl::encoding::TypeMarker for AacChannelMode {
3820 type Owned = Self;
3821
3822 #[inline(always)]
3823 fn inline_align(_context: fidl::encoding::Context) -> usize {
3824 std::mem::align_of::<u32>()
3825 }
3826
3827 #[inline(always)]
3828 fn inline_size(_context: fidl::encoding::Context) -> usize {
3829 std::mem::size_of::<u32>()
3830 }
3831
3832 #[inline(always)]
3833 fn encode_is_copy() -> bool {
3834 true
3835 }
3836
3837 #[inline(always)]
3838 fn decode_is_copy() -> bool {
3839 false
3840 }
3841 }
3842
3843 impl fidl::encoding::ValueTypeMarker for AacChannelMode {
3844 type Borrowed<'a> = Self;
3845 #[inline(always)]
3846 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3847 *value
3848 }
3849 }
3850
3851 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AacChannelMode {
3852 #[inline]
3853 unsafe fn encode(
3854 self,
3855 encoder: &mut fidl::encoding::Encoder<'_, D>,
3856 offset: usize,
3857 _depth: fidl::encoding::Depth,
3858 ) -> fidl::Result<()> {
3859 encoder.debug_check_bounds::<Self>(offset);
3860 encoder.write_num(self.into_primitive(), offset);
3861 Ok(())
3862 }
3863 }
3864
3865 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacChannelMode {
3866 #[inline(always)]
3867 fn new_empty() -> Self {
3868 Self::Mono
3869 }
3870
3871 #[inline]
3872 unsafe fn decode(
3873 &mut self,
3874 decoder: &mut fidl::encoding::Decoder<'_, D>,
3875 offset: usize,
3876 _depth: fidl::encoding::Depth,
3877 ) -> fidl::Result<()> {
3878 decoder.debug_check_bounds::<Self>(offset);
3879 let prim = decoder.read_num::<u32>(offset);
3880
3881 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3882 Ok(())
3883 }
3884 }
3885 unsafe impl fidl::encoding::TypeMarker for AacVariableBitRate {
3886 type Owned = Self;
3887
3888 #[inline(always)]
3889 fn inline_align(_context: fidl::encoding::Context) -> usize {
3890 std::mem::align_of::<u32>()
3891 }
3892
3893 #[inline(always)]
3894 fn inline_size(_context: fidl::encoding::Context) -> usize {
3895 std::mem::size_of::<u32>()
3896 }
3897
3898 #[inline(always)]
3899 fn encode_is_copy() -> bool {
3900 true
3901 }
3902
3903 #[inline(always)]
3904 fn decode_is_copy() -> bool {
3905 false
3906 }
3907 }
3908
3909 impl fidl::encoding::ValueTypeMarker for AacVariableBitRate {
3910 type Borrowed<'a> = Self;
3911 #[inline(always)]
3912 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3913 *value
3914 }
3915 }
3916
3917 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3918 for AacVariableBitRate
3919 {
3920 #[inline]
3921 unsafe fn encode(
3922 self,
3923 encoder: &mut fidl::encoding::Encoder<'_, D>,
3924 offset: usize,
3925 _depth: fidl::encoding::Depth,
3926 ) -> fidl::Result<()> {
3927 encoder.debug_check_bounds::<Self>(offset);
3928 encoder.write_num(self.into_primitive(), offset);
3929 Ok(())
3930 }
3931 }
3932
3933 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacVariableBitRate {
3934 #[inline(always)]
3935 fn new_empty() -> Self {
3936 Self::V1
3937 }
3938
3939 #[inline]
3940 unsafe fn decode(
3941 &mut self,
3942 decoder: &mut fidl::encoding::Decoder<'_, D>,
3943 offset: usize,
3944 _depth: fidl::encoding::Depth,
3945 ) -> fidl::Result<()> {
3946 decoder.debug_check_bounds::<Self>(offset);
3947 let prim = decoder.read_num::<u32>(offset);
3948
3949 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3950 Ok(())
3951 }
3952 }
3953 unsafe impl fidl::encoding::TypeMarker for AudioBitrateMode {
3954 type Owned = Self;
3955
3956 #[inline(always)]
3957 fn inline_align(_context: fidl::encoding::Context) -> usize {
3958 std::mem::align_of::<u32>()
3959 }
3960
3961 #[inline(always)]
3962 fn inline_size(_context: fidl::encoding::Context) -> usize {
3963 std::mem::size_of::<u32>()
3964 }
3965
3966 #[inline(always)]
3967 fn encode_is_copy() -> bool {
3968 true
3969 }
3970
3971 #[inline(always)]
3972 fn decode_is_copy() -> bool {
3973 false
3974 }
3975 }
3976
3977 impl fidl::encoding::ValueTypeMarker for AudioBitrateMode {
3978 type Borrowed<'a> = Self;
3979 #[inline(always)]
3980 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3981 *value
3982 }
3983 }
3984
3985 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3986 for AudioBitrateMode
3987 {
3988 #[inline]
3989 unsafe fn encode(
3990 self,
3991 encoder: &mut fidl::encoding::Encoder<'_, D>,
3992 offset: usize,
3993 _depth: fidl::encoding::Depth,
3994 ) -> fidl::Result<()> {
3995 encoder.debug_check_bounds::<Self>(offset);
3996 encoder.write_num(self.into_primitive(), offset);
3997 Ok(())
3998 }
3999 }
4000
4001 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioBitrateMode {
4002 #[inline(always)]
4003 fn new_empty() -> Self {
4004 Self::Unspecified
4005 }
4006
4007 #[inline]
4008 unsafe fn decode(
4009 &mut self,
4010 decoder: &mut fidl::encoding::Decoder<'_, D>,
4011 offset: usize,
4012 _depth: fidl::encoding::Depth,
4013 ) -> fidl::Result<()> {
4014 decoder.debug_check_bounds::<Self>(offset);
4015 let prim = decoder.read_num::<u32>(offset);
4016
4017 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4018 Ok(())
4019 }
4020 }
4021 unsafe impl fidl::encoding::TypeMarker for AudioCaptureUsage {
4022 type Owned = Self;
4023
4024 #[inline(always)]
4025 fn inline_align(_context: fidl::encoding::Context) -> usize {
4026 std::mem::align_of::<u32>()
4027 }
4028
4029 #[inline(always)]
4030 fn inline_size(_context: fidl::encoding::Context) -> usize {
4031 std::mem::size_of::<u32>()
4032 }
4033
4034 #[inline(always)]
4035 fn encode_is_copy() -> bool {
4036 true
4037 }
4038
4039 #[inline(always)]
4040 fn decode_is_copy() -> bool {
4041 false
4042 }
4043 }
4044
4045 impl fidl::encoding::ValueTypeMarker for AudioCaptureUsage {
4046 type Borrowed<'a> = Self;
4047 #[inline(always)]
4048 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4049 *value
4050 }
4051 }
4052
4053 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4054 for AudioCaptureUsage
4055 {
4056 #[inline]
4057 unsafe fn encode(
4058 self,
4059 encoder: &mut fidl::encoding::Encoder<'_, D>,
4060 offset: usize,
4061 _depth: fidl::encoding::Depth,
4062 ) -> fidl::Result<()> {
4063 encoder.debug_check_bounds::<Self>(offset);
4064 encoder.write_num(self.into_primitive(), offset);
4065 Ok(())
4066 }
4067 }
4068
4069 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCaptureUsage {
4070 #[inline(always)]
4071 fn new_empty() -> Self {
4072 Self::Background
4073 }
4074
4075 #[inline]
4076 unsafe fn decode(
4077 &mut self,
4078 decoder: &mut fidl::encoding::Decoder<'_, D>,
4079 offset: usize,
4080 _depth: fidl::encoding::Depth,
4081 ) -> fidl::Result<()> {
4082 decoder.debug_check_bounds::<Self>(offset);
4083 let prim = decoder.read_num::<u32>(offset);
4084
4085 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4086 Ok(())
4087 }
4088 }
4089 unsafe impl fidl::encoding::TypeMarker for AudioCaptureUsage2 {
4090 type Owned = Self;
4091
4092 #[inline(always)]
4093 fn inline_align(_context: fidl::encoding::Context) -> usize {
4094 std::mem::align_of::<u32>()
4095 }
4096
4097 #[inline(always)]
4098 fn inline_size(_context: fidl::encoding::Context) -> usize {
4099 std::mem::size_of::<u32>()
4100 }
4101
4102 #[inline(always)]
4103 fn encode_is_copy() -> bool {
4104 false
4105 }
4106
4107 #[inline(always)]
4108 fn decode_is_copy() -> bool {
4109 false
4110 }
4111 }
4112
4113 impl fidl::encoding::ValueTypeMarker for AudioCaptureUsage2 {
4114 type Borrowed<'a> = Self;
4115 #[inline(always)]
4116 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4117 *value
4118 }
4119 }
4120
4121 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4122 for AudioCaptureUsage2
4123 {
4124 #[inline]
4125 unsafe fn encode(
4126 self,
4127 encoder: &mut fidl::encoding::Encoder<'_, D>,
4128 offset: usize,
4129 _depth: fidl::encoding::Depth,
4130 ) -> fidl::Result<()> {
4131 encoder.debug_check_bounds::<Self>(offset);
4132 encoder.write_num(self.into_primitive(), offset);
4133 Ok(())
4134 }
4135 }
4136
4137 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCaptureUsage2 {
4138 #[inline(always)]
4139 fn new_empty() -> Self {
4140 Self::unknown()
4141 }
4142
4143 #[inline]
4144 unsafe fn decode(
4145 &mut self,
4146 decoder: &mut fidl::encoding::Decoder<'_, D>,
4147 offset: usize,
4148 _depth: fidl::encoding::Depth,
4149 ) -> fidl::Result<()> {
4150 decoder.debug_check_bounds::<Self>(offset);
4151 let prim = decoder.read_num::<u32>(offset);
4152
4153 *self = Self::from_primitive_allow_unknown(prim);
4154 Ok(())
4155 }
4156 }
4157 unsafe impl fidl::encoding::TypeMarker for AudioChannelId {
4158 type Owned = Self;
4159
4160 #[inline(always)]
4161 fn inline_align(_context: fidl::encoding::Context) -> usize {
4162 std::mem::align_of::<u32>()
4163 }
4164
4165 #[inline(always)]
4166 fn inline_size(_context: fidl::encoding::Context) -> usize {
4167 std::mem::size_of::<u32>()
4168 }
4169
4170 #[inline(always)]
4171 fn encode_is_copy() -> bool {
4172 true
4173 }
4174
4175 #[inline(always)]
4176 fn decode_is_copy() -> bool {
4177 false
4178 }
4179 }
4180
4181 impl fidl::encoding::ValueTypeMarker for AudioChannelId {
4182 type Borrowed<'a> = Self;
4183 #[inline(always)]
4184 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4185 *value
4186 }
4187 }
4188
4189 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AudioChannelId {
4190 #[inline]
4191 unsafe fn encode(
4192 self,
4193 encoder: &mut fidl::encoding::Encoder<'_, D>,
4194 offset: usize,
4195 _depth: fidl::encoding::Depth,
4196 ) -> fidl::Result<()> {
4197 encoder.debug_check_bounds::<Self>(offset);
4198 encoder.write_num(self.into_primitive(), offset);
4199 Ok(())
4200 }
4201 }
4202
4203 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioChannelId {
4204 #[inline(always)]
4205 fn new_empty() -> Self {
4206 Self::Skip
4207 }
4208
4209 #[inline]
4210 unsafe fn decode(
4211 &mut self,
4212 decoder: &mut fidl::encoding::Decoder<'_, D>,
4213 offset: usize,
4214 _depth: fidl::encoding::Depth,
4215 ) -> fidl::Result<()> {
4216 decoder.debug_check_bounds::<Self>(offset);
4217 let prim = decoder.read_num::<u32>(offset);
4218
4219 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4220 Ok(())
4221 }
4222 }
4223 unsafe impl fidl::encoding::TypeMarker for AudioOutputRoutingPolicy {
4224 type Owned = Self;
4225
4226 #[inline(always)]
4227 fn inline_align(_context: fidl::encoding::Context) -> usize {
4228 std::mem::align_of::<u32>()
4229 }
4230
4231 #[inline(always)]
4232 fn inline_size(_context: fidl::encoding::Context) -> usize {
4233 std::mem::size_of::<u32>()
4234 }
4235
4236 #[inline(always)]
4237 fn encode_is_copy() -> bool {
4238 true
4239 }
4240
4241 #[inline(always)]
4242 fn decode_is_copy() -> bool {
4243 false
4244 }
4245 }
4246
4247 impl fidl::encoding::ValueTypeMarker for AudioOutputRoutingPolicy {
4248 type Borrowed<'a> = Self;
4249 #[inline(always)]
4250 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4251 *value
4252 }
4253 }
4254
4255 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4256 for AudioOutputRoutingPolicy
4257 {
4258 #[inline]
4259 unsafe fn encode(
4260 self,
4261 encoder: &mut fidl::encoding::Encoder<'_, D>,
4262 offset: usize,
4263 _depth: fidl::encoding::Depth,
4264 ) -> fidl::Result<()> {
4265 encoder.debug_check_bounds::<Self>(offset);
4266 encoder.write_num(self.into_primitive(), offset);
4267 Ok(())
4268 }
4269 }
4270
4271 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4272 for AudioOutputRoutingPolicy
4273 {
4274 #[inline(always)]
4275 fn new_empty() -> Self {
4276 Self::AllPluggedOutputs
4277 }
4278
4279 #[inline]
4280 unsafe fn decode(
4281 &mut self,
4282 decoder: &mut fidl::encoding::Decoder<'_, D>,
4283 offset: usize,
4284 _depth: fidl::encoding::Depth,
4285 ) -> fidl::Result<()> {
4286 decoder.debug_check_bounds::<Self>(offset);
4287 let prim = decoder.read_num::<u32>(offset);
4288
4289 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4290 Ok(())
4291 }
4292 }
4293 unsafe impl fidl::encoding::TypeMarker for AudioPcmMode {
4294 type Owned = Self;
4295
4296 #[inline(always)]
4297 fn inline_align(_context: fidl::encoding::Context) -> usize {
4298 std::mem::align_of::<u32>()
4299 }
4300
4301 #[inline(always)]
4302 fn inline_size(_context: fidl::encoding::Context) -> usize {
4303 std::mem::size_of::<u32>()
4304 }
4305
4306 #[inline(always)]
4307 fn encode_is_copy() -> bool {
4308 true
4309 }
4310
4311 #[inline(always)]
4312 fn decode_is_copy() -> bool {
4313 false
4314 }
4315 }
4316
4317 impl fidl::encoding::ValueTypeMarker for AudioPcmMode {
4318 type Borrowed<'a> = Self;
4319 #[inline(always)]
4320 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4321 *value
4322 }
4323 }
4324
4325 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AudioPcmMode {
4326 #[inline]
4327 unsafe fn encode(
4328 self,
4329 encoder: &mut fidl::encoding::Encoder<'_, D>,
4330 offset: usize,
4331 _depth: fidl::encoding::Depth,
4332 ) -> fidl::Result<()> {
4333 encoder.debug_check_bounds::<Self>(offset);
4334 encoder.write_num(self.into_primitive(), offset);
4335 Ok(())
4336 }
4337 }
4338
4339 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioPcmMode {
4340 #[inline(always)]
4341 fn new_empty() -> Self {
4342 Self::Linear
4343 }
4344
4345 #[inline]
4346 unsafe fn decode(
4347 &mut self,
4348 decoder: &mut fidl::encoding::Decoder<'_, D>,
4349 offset: usize,
4350 _depth: fidl::encoding::Depth,
4351 ) -> fidl::Result<()> {
4352 decoder.debug_check_bounds::<Self>(offset);
4353 let prim = decoder.read_num::<u32>(offset);
4354
4355 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4356 Ok(())
4357 }
4358 }
4359 unsafe impl fidl::encoding::TypeMarker for AudioRenderUsage {
4360 type Owned = Self;
4361
4362 #[inline(always)]
4363 fn inline_align(_context: fidl::encoding::Context) -> usize {
4364 std::mem::align_of::<u32>()
4365 }
4366
4367 #[inline(always)]
4368 fn inline_size(_context: fidl::encoding::Context) -> usize {
4369 std::mem::size_of::<u32>()
4370 }
4371
4372 #[inline(always)]
4373 fn encode_is_copy() -> bool {
4374 true
4375 }
4376
4377 #[inline(always)]
4378 fn decode_is_copy() -> bool {
4379 false
4380 }
4381 }
4382
4383 impl fidl::encoding::ValueTypeMarker for AudioRenderUsage {
4384 type Borrowed<'a> = Self;
4385 #[inline(always)]
4386 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4387 *value
4388 }
4389 }
4390
4391 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4392 for AudioRenderUsage
4393 {
4394 #[inline]
4395 unsafe fn encode(
4396 self,
4397 encoder: &mut fidl::encoding::Encoder<'_, D>,
4398 offset: usize,
4399 _depth: fidl::encoding::Depth,
4400 ) -> fidl::Result<()> {
4401 encoder.debug_check_bounds::<Self>(offset);
4402 encoder.write_num(self.into_primitive(), offset);
4403 Ok(())
4404 }
4405 }
4406
4407 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioRenderUsage {
4408 #[inline(always)]
4409 fn new_empty() -> Self {
4410 Self::Background
4411 }
4412
4413 #[inline]
4414 unsafe fn decode(
4415 &mut self,
4416 decoder: &mut fidl::encoding::Decoder<'_, D>,
4417 offset: usize,
4418 _depth: fidl::encoding::Depth,
4419 ) -> fidl::Result<()> {
4420 decoder.debug_check_bounds::<Self>(offset);
4421 let prim = decoder.read_num::<u32>(offset);
4422
4423 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4424 Ok(())
4425 }
4426 }
4427 unsafe impl fidl::encoding::TypeMarker for AudioRenderUsage2 {
4428 type Owned = Self;
4429
4430 #[inline(always)]
4431 fn inline_align(_context: fidl::encoding::Context) -> usize {
4432 std::mem::align_of::<u32>()
4433 }
4434
4435 #[inline(always)]
4436 fn inline_size(_context: fidl::encoding::Context) -> usize {
4437 std::mem::size_of::<u32>()
4438 }
4439
4440 #[inline(always)]
4441 fn encode_is_copy() -> bool {
4442 false
4443 }
4444
4445 #[inline(always)]
4446 fn decode_is_copy() -> bool {
4447 false
4448 }
4449 }
4450
4451 impl fidl::encoding::ValueTypeMarker for AudioRenderUsage2 {
4452 type Borrowed<'a> = Self;
4453 #[inline(always)]
4454 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4455 *value
4456 }
4457 }
4458
4459 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4460 for AudioRenderUsage2
4461 {
4462 #[inline]
4463 unsafe fn encode(
4464 self,
4465 encoder: &mut fidl::encoding::Encoder<'_, D>,
4466 offset: usize,
4467 _depth: fidl::encoding::Depth,
4468 ) -> fidl::Result<()> {
4469 encoder.debug_check_bounds::<Self>(offset);
4470 encoder.write_num(self.into_primitive(), offset);
4471 Ok(())
4472 }
4473 }
4474
4475 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioRenderUsage2 {
4476 #[inline(always)]
4477 fn new_empty() -> Self {
4478 Self::unknown()
4479 }
4480
4481 #[inline]
4482 unsafe fn decode(
4483 &mut self,
4484 decoder: &mut fidl::encoding::Decoder<'_, D>,
4485 offset: usize,
4486 _depth: fidl::encoding::Depth,
4487 ) -> fidl::Result<()> {
4488 decoder.debug_check_bounds::<Self>(offset);
4489 let prim = decoder.read_num::<u32>(offset);
4490
4491 *self = Self::from_primitive_allow_unknown(prim);
4492 Ok(())
4493 }
4494 }
4495 unsafe impl fidl::encoding::TypeMarker for AudioSampleFormat {
4496 type Owned = Self;
4497
4498 #[inline(always)]
4499 fn inline_align(_context: fidl::encoding::Context) -> usize {
4500 std::mem::align_of::<u32>()
4501 }
4502
4503 #[inline(always)]
4504 fn inline_size(_context: fidl::encoding::Context) -> usize {
4505 std::mem::size_of::<u32>()
4506 }
4507
4508 #[inline(always)]
4509 fn encode_is_copy() -> bool {
4510 true
4511 }
4512
4513 #[inline(always)]
4514 fn decode_is_copy() -> bool {
4515 false
4516 }
4517 }
4518
4519 impl fidl::encoding::ValueTypeMarker for AudioSampleFormat {
4520 type Borrowed<'a> = Self;
4521 #[inline(always)]
4522 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4523 *value
4524 }
4525 }
4526
4527 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4528 for AudioSampleFormat
4529 {
4530 #[inline]
4531 unsafe fn encode(
4532 self,
4533 encoder: &mut fidl::encoding::Encoder<'_, D>,
4534 offset: usize,
4535 _depth: fidl::encoding::Depth,
4536 ) -> fidl::Result<()> {
4537 encoder.debug_check_bounds::<Self>(offset);
4538 encoder.write_num(self.into_primitive(), offset);
4539 Ok(())
4540 }
4541 }
4542
4543 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioSampleFormat {
4544 #[inline(always)]
4545 fn new_empty() -> Self {
4546 Self::Unsigned8
4547 }
4548
4549 #[inline]
4550 unsafe fn decode(
4551 &mut self,
4552 decoder: &mut fidl::encoding::Decoder<'_, D>,
4553 offset: usize,
4554 _depth: fidl::encoding::Depth,
4555 ) -> fidl::Result<()> {
4556 decoder.debug_check_bounds::<Self>(offset);
4557 let prim = decoder.read_num::<u32>(offset);
4558
4559 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4560 Ok(())
4561 }
4562 }
4563 unsafe impl fidl::encoding::TypeMarker for Behavior {
4564 type Owned = Self;
4565
4566 #[inline(always)]
4567 fn inline_align(_context: fidl::encoding::Context) -> usize {
4568 std::mem::align_of::<u32>()
4569 }
4570
4571 #[inline(always)]
4572 fn inline_size(_context: fidl::encoding::Context) -> usize {
4573 std::mem::size_of::<u32>()
4574 }
4575
4576 #[inline(always)]
4577 fn encode_is_copy() -> bool {
4578 false
4579 }
4580
4581 #[inline(always)]
4582 fn decode_is_copy() -> bool {
4583 false
4584 }
4585 }
4586
4587 impl fidl::encoding::ValueTypeMarker for Behavior {
4588 type Borrowed<'a> = Self;
4589 #[inline(always)]
4590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4591 *value
4592 }
4593 }
4594
4595 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Behavior {
4596 #[inline]
4597 unsafe fn encode(
4598 self,
4599 encoder: &mut fidl::encoding::Encoder<'_, D>,
4600 offset: usize,
4601 _depth: fidl::encoding::Depth,
4602 ) -> fidl::Result<()> {
4603 encoder.debug_check_bounds::<Self>(offset);
4604 encoder.write_num(self.into_primitive(), offset);
4605 Ok(())
4606 }
4607 }
4608
4609 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Behavior {
4610 #[inline(always)]
4611 fn new_empty() -> Self {
4612 Self::unknown()
4613 }
4614
4615 #[inline]
4616 unsafe fn decode(
4617 &mut self,
4618 decoder: &mut fidl::encoding::Decoder<'_, D>,
4619 offset: usize,
4620 _depth: fidl::encoding::Depth,
4621 ) -> fidl::Result<()> {
4622 decoder.debug_check_bounds::<Self>(offset);
4623 let prim = decoder.read_num::<u32>(offset);
4624
4625 *self = Self::from_primitive_allow_unknown(prim);
4626 Ok(())
4627 }
4628 }
4629 unsafe impl fidl::encoding::TypeMarker for CodecProfile {
4630 type Owned = Self;
4631
4632 #[inline(always)]
4633 fn inline_align(_context: fidl::encoding::Context) -> usize {
4634 std::mem::align_of::<u32>()
4635 }
4636
4637 #[inline(always)]
4638 fn inline_size(_context: fidl::encoding::Context) -> usize {
4639 std::mem::size_of::<u32>()
4640 }
4641
4642 #[inline(always)]
4643 fn encode_is_copy() -> bool {
4644 false
4645 }
4646
4647 #[inline(always)]
4648 fn decode_is_copy() -> bool {
4649 false
4650 }
4651 }
4652
4653 impl fidl::encoding::ValueTypeMarker for CodecProfile {
4654 type Borrowed<'a> = Self;
4655 #[inline(always)]
4656 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4657 *value
4658 }
4659 }
4660
4661 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CodecProfile {
4662 #[inline]
4663 unsafe fn encode(
4664 self,
4665 encoder: &mut fidl::encoding::Encoder<'_, D>,
4666 offset: usize,
4667 _depth: fidl::encoding::Depth,
4668 ) -> fidl::Result<()> {
4669 encoder.debug_check_bounds::<Self>(offset);
4670 encoder.write_num(self.into_primitive(), offset);
4671 Ok(())
4672 }
4673 }
4674
4675 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecProfile {
4676 #[inline(always)]
4677 fn new_empty() -> Self {
4678 Self::unknown()
4679 }
4680
4681 #[inline]
4682 unsafe fn decode(
4683 &mut self,
4684 decoder: &mut fidl::encoding::Decoder<'_, D>,
4685 offset: usize,
4686 _depth: fidl::encoding::Depth,
4687 ) -> fidl::Result<()> {
4688 decoder.debug_check_bounds::<Self>(offset);
4689 let prim = decoder.read_num::<u32>(offset);
4690
4691 *self = Self::from_primitive_allow_unknown(prim);
4692 Ok(())
4693 }
4694 }
4695 unsafe impl fidl::encoding::TypeMarker for ColorSpace {
4696 type Owned = Self;
4697
4698 #[inline(always)]
4699 fn inline_align(_context: fidl::encoding::Context) -> usize {
4700 std::mem::align_of::<u32>()
4701 }
4702
4703 #[inline(always)]
4704 fn inline_size(_context: fidl::encoding::Context) -> usize {
4705 std::mem::size_of::<u32>()
4706 }
4707
4708 #[inline(always)]
4709 fn encode_is_copy() -> bool {
4710 true
4711 }
4712
4713 #[inline(always)]
4714 fn decode_is_copy() -> bool {
4715 false
4716 }
4717 }
4718
4719 impl fidl::encoding::ValueTypeMarker for ColorSpace {
4720 type Borrowed<'a> = Self;
4721 #[inline(always)]
4722 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4723 *value
4724 }
4725 }
4726
4727 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ColorSpace {
4728 #[inline]
4729 unsafe fn encode(
4730 self,
4731 encoder: &mut fidl::encoding::Encoder<'_, D>,
4732 offset: usize,
4733 _depth: fidl::encoding::Depth,
4734 ) -> fidl::Result<()> {
4735 encoder.debug_check_bounds::<Self>(offset);
4736 encoder.write_num(self.into_primitive(), offset);
4737 Ok(())
4738 }
4739 }
4740
4741 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ColorSpace {
4742 #[inline(always)]
4743 fn new_empty() -> Self {
4744 Self::Unknown
4745 }
4746
4747 #[inline]
4748 unsafe fn decode(
4749 &mut self,
4750 decoder: &mut fidl::encoding::Decoder<'_, D>,
4751 offset: usize,
4752 _depth: fidl::encoding::Depth,
4753 ) -> fidl::Result<()> {
4754 decoder.debug_check_bounds::<Self>(offset);
4755 let prim = decoder.read_num::<u32>(offset);
4756
4757 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4758 Ok(())
4759 }
4760 }
4761 unsafe impl fidl::encoding::TypeMarker for Lc3FrameDuration {
4762 type Owned = Self;
4763
4764 #[inline(always)]
4765 fn inline_align(_context: fidl::encoding::Context) -> usize {
4766 std::mem::align_of::<u32>()
4767 }
4768
4769 #[inline(always)]
4770 fn inline_size(_context: fidl::encoding::Context) -> usize {
4771 std::mem::size_of::<u32>()
4772 }
4773
4774 #[inline(always)]
4775 fn encode_is_copy() -> bool {
4776 false
4777 }
4778
4779 #[inline(always)]
4780 fn decode_is_copy() -> bool {
4781 false
4782 }
4783 }
4784
4785 impl fidl::encoding::ValueTypeMarker for Lc3FrameDuration {
4786 type Borrowed<'a> = Self;
4787 #[inline(always)]
4788 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4789 *value
4790 }
4791 }
4792
4793 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4794 for Lc3FrameDuration
4795 {
4796 #[inline]
4797 unsafe fn encode(
4798 self,
4799 encoder: &mut fidl::encoding::Encoder<'_, D>,
4800 offset: usize,
4801 _depth: fidl::encoding::Depth,
4802 ) -> fidl::Result<()> {
4803 encoder.debug_check_bounds::<Self>(offset);
4804 encoder.write_num(self.into_primitive(), offset);
4805 Ok(())
4806 }
4807 }
4808
4809 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Lc3FrameDuration {
4810 #[inline(always)]
4811 fn new_empty() -> Self {
4812 Self::unknown()
4813 }
4814
4815 #[inline]
4816 unsafe fn decode(
4817 &mut self,
4818 decoder: &mut fidl::encoding::Decoder<'_, D>,
4819 offset: usize,
4820 _depth: fidl::encoding::Depth,
4821 ) -> fidl::Result<()> {
4822 decoder.debug_check_bounds::<Self>(offset);
4823 let prim = decoder.read_num::<u32>(offset);
4824
4825 *self = Self::from_primitive_allow_unknown(prim);
4826 Ok(())
4827 }
4828 }
4829 unsafe impl fidl::encoding::TypeMarker for SbcAllocation {
4830 type Owned = Self;
4831
4832 #[inline(always)]
4833 fn inline_align(_context: fidl::encoding::Context) -> usize {
4834 std::mem::align_of::<u32>()
4835 }
4836
4837 #[inline(always)]
4838 fn inline_size(_context: fidl::encoding::Context) -> usize {
4839 std::mem::size_of::<u32>()
4840 }
4841
4842 #[inline(always)]
4843 fn encode_is_copy() -> bool {
4844 true
4845 }
4846
4847 #[inline(always)]
4848 fn decode_is_copy() -> bool {
4849 false
4850 }
4851 }
4852
4853 impl fidl::encoding::ValueTypeMarker for SbcAllocation {
4854 type Borrowed<'a> = Self;
4855 #[inline(always)]
4856 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4857 *value
4858 }
4859 }
4860
4861 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcAllocation {
4862 #[inline]
4863 unsafe fn encode(
4864 self,
4865 encoder: &mut fidl::encoding::Encoder<'_, D>,
4866 offset: usize,
4867 _depth: fidl::encoding::Depth,
4868 ) -> fidl::Result<()> {
4869 encoder.debug_check_bounds::<Self>(offset);
4870 encoder.write_num(self.into_primitive(), offset);
4871 Ok(())
4872 }
4873 }
4874
4875 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcAllocation {
4876 #[inline(always)]
4877 fn new_empty() -> Self {
4878 Self::AllocLoudness
4879 }
4880
4881 #[inline]
4882 unsafe fn decode(
4883 &mut self,
4884 decoder: &mut fidl::encoding::Decoder<'_, D>,
4885 offset: usize,
4886 _depth: fidl::encoding::Depth,
4887 ) -> fidl::Result<()> {
4888 decoder.debug_check_bounds::<Self>(offset);
4889 let prim = decoder.read_num::<u32>(offset);
4890
4891 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4892 Ok(())
4893 }
4894 }
4895 unsafe impl fidl::encoding::TypeMarker for SbcBlockCount {
4896 type Owned = Self;
4897
4898 #[inline(always)]
4899 fn inline_align(_context: fidl::encoding::Context) -> usize {
4900 std::mem::align_of::<u32>()
4901 }
4902
4903 #[inline(always)]
4904 fn inline_size(_context: fidl::encoding::Context) -> usize {
4905 std::mem::size_of::<u32>()
4906 }
4907
4908 #[inline(always)]
4909 fn encode_is_copy() -> bool {
4910 true
4911 }
4912
4913 #[inline(always)]
4914 fn decode_is_copy() -> bool {
4915 false
4916 }
4917 }
4918
4919 impl fidl::encoding::ValueTypeMarker for SbcBlockCount {
4920 type Borrowed<'a> = Self;
4921 #[inline(always)]
4922 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4923 *value
4924 }
4925 }
4926
4927 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcBlockCount {
4928 #[inline]
4929 unsafe fn encode(
4930 self,
4931 encoder: &mut fidl::encoding::Encoder<'_, D>,
4932 offset: usize,
4933 _depth: fidl::encoding::Depth,
4934 ) -> fidl::Result<()> {
4935 encoder.debug_check_bounds::<Self>(offset);
4936 encoder.write_num(self.into_primitive(), offset);
4937 Ok(())
4938 }
4939 }
4940
4941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcBlockCount {
4942 #[inline(always)]
4943 fn new_empty() -> Self {
4944 Self::BlockCount4
4945 }
4946
4947 #[inline]
4948 unsafe fn decode(
4949 &mut self,
4950 decoder: &mut fidl::encoding::Decoder<'_, D>,
4951 offset: usize,
4952 _depth: fidl::encoding::Depth,
4953 ) -> fidl::Result<()> {
4954 decoder.debug_check_bounds::<Self>(offset);
4955 let prim = decoder.read_num::<u32>(offset);
4956
4957 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4958 Ok(())
4959 }
4960 }
4961 unsafe impl fidl::encoding::TypeMarker for SbcChannelMode {
4962 type Owned = Self;
4963
4964 #[inline(always)]
4965 fn inline_align(_context: fidl::encoding::Context) -> usize {
4966 std::mem::align_of::<u32>()
4967 }
4968
4969 #[inline(always)]
4970 fn inline_size(_context: fidl::encoding::Context) -> usize {
4971 std::mem::size_of::<u32>()
4972 }
4973
4974 #[inline(always)]
4975 fn encode_is_copy() -> bool {
4976 true
4977 }
4978
4979 #[inline(always)]
4980 fn decode_is_copy() -> bool {
4981 false
4982 }
4983 }
4984
4985 impl fidl::encoding::ValueTypeMarker for SbcChannelMode {
4986 type Borrowed<'a> = Self;
4987 #[inline(always)]
4988 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4989 *value
4990 }
4991 }
4992
4993 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcChannelMode {
4994 #[inline]
4995 unsafe fn encode(
4996 self,
4997 encoder: &mut fidl::encoding::Encoder<'_, D>,
4998 offset: usize,
4999 _depth: fidl::encoding::Depth,
5000 ) -> fidl::Result<()> {
5001 encoder.debug_check_bounds::<Self>(offset);
5002 encoder.write_num(self.into_primitive(), offset);
5003 Ok(())
5004 }
5005 }
5006
5007 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcChannelMode {
5008 #[inline(always)]
5009 fn new_empty() -> Self {
5010 Self::Mono
5011 }
5012
5013 #[inline]
5014 unsafe fn decode(
5015 &mut self,
5016 decoder: &mut fidl::encoding::Decoder<'_, D>,
5017 offset: usize,
5018 _depth: fidl::encoding::Depth,
5019 ) -> fidl::Result<()> {
5020 decoder.debug_check_bounds::<Self>(offset);
5021 let prim = decoder.read_num::<u32>(offset);
5022
5023 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5024 Ok(())
5025 }
5026 }
5027 unsafe impl fidl::encoding::TypeMarker for SbcSubBands {
5028 type Owned = Self;
5029
5030 #[inline(always)]
5031 fn inline_align(_context: fidl::encoding::Context) -> usize {
5032 std::mem::align_of::<u32>()
5033 }
5034
5035 #[inline(always)]
5036 fn inline_size(_context: fidl::encoding::Context) -> usize {
5037 std::mem::size_of::<u32>()
5038 }
5039
5040 #[inline(always)]
5041 fn encode_is_copy() -> bool {
5042 true
5043 }
5044
5045 #[inline(always)]
5046 fn decode_is_copy() -> bool {
5047 false
5048 }
5049 }
5050
5051 impl fidl::encoding::ValueTypeMarker for SbcSubBands {
5052 type Borrowed<'a> = Self;
5053 #[inline(always)]
5054 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5055 *value
5056 }
5057 }
5058
5059 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcSubBands {
5060 #[inline]
5061 unsafe fn encode(
5062 self,
5063 encoder: &mut fidl::encoding::Encoder<'_, D>,
5064 offset: usize,
5065 _depth: fidl::encoding::Depth,
5066 ) -> fidl::Result<()> {
5067 encoder.debug_check_bounds::<Self>(offset);
5068 encoder.write_num(self.into_primitive(), offset);
5069 Ok(())
5070 }
5071 }
5072
5073 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcSubBands {
5074 #[inline(always)]
5075 fn new_empty() -> Self {
5076 Self::SubBands4
5077 }
5078
5079 #[inline]
5080 unsafe fn decode(
5081 &mut self,
5082 decoder: &mut fidl::encoding::Decoder<'_, D>,
5083 offset: usize,
5084 _depth: fidl::encoding::Depth,
5085 ) -> fidl::Result<()> {
5086 decoder.debug_check_bounds::<Self>(offset);
5087 let prim = decoder.read_num::<u32>(offset);
5088
5089 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5090 Ok(())
5091 }
5092 }
5093 unsafe impl fidl::encoding::TypeMarker for StreamError {
5094 type Owned = Self;
5095
5096 #[inline(always)]
5097 fn inline_align(_context: fidl::encoding::Context) -> usize {
5098 std::mem::align_of::<u32>()
5099 }
5100
5101 #[inline(always)]
5102 fn inline_size(_context: fidl::encoding::Context) -> usize {
5103 std::mem::size_of::<u32>()
5104 }
5105
5106 #[inline(always)]
5107 fn encode_is_copy() -> bool {
5108 true
5109 }
5110
5111 #[inline(always)]
5112 fn decode_is_copy() -> bool {
5113 false
5114 }
5115 }
5116
5117 impl fidl::encoding::ValueTypeMarker for StreamError {
5118 type Borrowed<'a> = Self;
5119 #[inline(always)]
5120 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5121 *value
5122 }
5123 }
5124
5125 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamError {
5126 #[inline]
5127 unsafe fn encode(
5128 self,
5129 encoder: &mut fidl::encoding::Encoder<'_, D>,
5130 offset: usize,
5131 _depth: fidl::encoding::Depth,
5132 ) -> fidl::Result<()> {
5133 encoder.debug_check_bounds::<Self>(offset);
5134 encoder.write_num(self.into_primitive(), offset);
5135 Ok(())
5136 }
5137 }
5138
5139 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamError {
5140 #[inline(always)]
5141 fn new_empty() -> Self {
5142 Self::Unknown
5143 }
5144
5145 #[inline]
5146 unsafe fn decode(
5147 &mut self,
5148 decoder: &mut fidl::encoding::Decoder<'_, D>,
5149 offset: usize,
5150 _depth: fidl::encoding::Depth,
5151 ) -> fidl::Result<()> {
5152 decoder.debug_check_bounds::<Self>(offset);
5153 let prim = decoder.read_num::<u32>(offset);
5154
5155 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5156 Ok(())
5157 }
5158 }
5159 unsafe impl fidl::encoding::TypeMarker for VideoColorSpace {
5160 type Owned = Self;
5161
5162 #[inline(always)]
5163 fn inline_align(_context: fidl::encoding::Context) -> usize {
5164 std::mem::align_of::<u32>()
5165 }
5166
5167 #[inline(always)]
5168 fn inline_size(_context: fidl::encoding::Context) -> usize {
5169 std::mem::size_of::<u32>()
5170 }
5171
5172 #[inline(always)]
5173 fn encode_is_copy() -> bool {
5174 true
5175 }
5176
5177 #[inline(always)]
5178 fn decode_is_copy() -> bool {
5179 false
5180 }
5181 }
5182
5183 impl fidl::encoding::ValueTypeMarker for VideoColorSpace {
5184 type Borrowed<'a> = Self;
5185 #[inline(always)]
5186 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5187 *value
5188 }
5189 }
5190
5191 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
5192 for VideoColorSpace
5193 {
5194 #[inline]
5195 unsafe fn encode(
5196 self,
5197 encoder: &mut fidl::encoding::Encoder<'_, D>,
5198 offset: usize,
5199 _depth: fidl::encoding::Depth,
5200 ) -> fidl::Result<()> {
5201 encoder.debug_check_bounds::<Self>(offset);
5202 encoder.write_num(self.into_primitive(), offset);
5203 Ok(())
5204 }
5205 }
5206
5207 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoColorSpace {
5208 #[inline(always)]
5209 fn new_empty() -> Self {
5210 Self::Invalid
5211 }
5212
5213 #[inline]
5214 unsafe fn decode(
5215 &mut self,
5216 decoder: &mut fidl::encoding::Decoder<'_, D>,
5217 offset: usize,
5218 _depth: fidl::encoding::Depth,
5219 ) -> fidl::Result<()> {
5220 decoder.debug_check_bounds::<Self>(offset);
5221 let prim = decoder.read_num::<u32>(offset);
5222
5223 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5224 Ok(())
5225 }
5226 }
5227
5228 impl fidl::encoding::ValueTypeMarker for AacConstantBitRate {
5229 type Borrowed<'a> = &'a Self;
5230 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5231 value
5232 }
5233 }
5234
5235 unsafe impl fidl::encoding::TypeMarker for AacConstantBitRate {
5236 type Owned = Self;
5237
5238 #[inline(always)]
5239 fn inline_align(_context: fidl::encoding::Context) -> usize {
5240 4
5241 }
5242
5243 #[inline(always)]
5244 fn inline_size(_context: fidl::encoding::Context) -> usize {
5245 4
5246 }
5247 #[inline(always)]
5248 fn encode_is_copy() -> bool {
5249 true
5250 }
5251
5252 #[inline(always)]
5253 fn decode_is_copy() -> bool {
5254 true
5255 }
5256 }
5257
5258 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacConstantBitRate, D>
5259 for &AacConstantBitRate
5260 {
5261 #[inline]
5262 unsafe fn encode(
5263 self,
5264 encoder: &mut fidl::encoding::Encoder<'_, D>,
5265 offset: usize,
5266 _depth: fidl::encoding::Depth,
5267 ) -> fidl::Result<()> {
5268 encoder.debug_check_bounds::<AacConstantBitRate>(offset);
5269 unsafe {
5270 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5272 (buf_ptr as *mut AacConstantBitRate)
5273 .write_unaligned((self as *const AacConstantBitRate).read());
5274 }
5277 Ok(())
5278 }
5279 }
5280 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
5281 fidl::encoding::Encode<AacConstantBitRate, D> for (T0,)
5282 {
5283 #[inline]
5284 unsafe fn encode(
5285 self,
5286 encoder: &mut fidl::encoding::Encoder<'_, D>,
5287 offset: usize,
5288 depth: fidl::encoding::Depth,
5289 ) -> fidl::Result<()> {
5290 encoder.debug_check_bounds::<AacConstantBitRate>(offset);
5291 self.0.encode(encoder, offset + 0, depth)?;
5295 Ok(())
5296 }
5297 }
5298
5299 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacConstantBitRate {
5300 #[inline(always)]
5301 fn new_empty() -> Self {
5302 Self { bit_rate: fidl::new_empty!(u32, D) }
5303 }
5304
5305 #[inline]
5306 unsafe fn decode(
5307 &mut self,
5308 decoder: &mut fidl::encoding::Decoder<'_, D>,
5309 offset: usize,
5310 _depth: fidl::encoding::Depth,
5311 ) -> fidl::Result<()> {
5312 decoder.debug_check_bounds::<Self>(offset);
5313 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5314 unsafe {
5317 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
5318 }
5319 Ok(())
5320 }
5321 }
5322
5323 impl fidl::encoding::ValueTypeMarker for AacEncoderSettings {
5324 type Borrowed<'a> = &'a Self;
5325 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5326 value
5327 }
5328 }
5329
5330 unsafe impl fidl::encoding::TypeMarker for AacEncoderSettings {
5331 type Owned = Self;
5332
5333 #[inline(always)]
5334 fn inline_align(_context: fidl::encoding::Context) -> usize {
5335 8
5336 }
5337
5338 #[inline(always)]
5339 fn inline_size(_context: fidl::encoding::Context) -> usize {
5340 48
5341 }
5342 }
5343
5344 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacEncoderSettings, D>
5345 for &AacEncoderSettings
5346 {
5347 #[inline]
5348 unsafe fn encode(
5349 self,
5350 encoder: &mut fidl::encoding::Encoder<'_, D>,
5351 offset: usize,
5352 _depth: fidl::encoding::Depth,
5353 ) -> fidl::Result<()> {
5354 encoder.debug_check_bounds::<AacEncoderSettings>(offset);
5355 fidl::encoding::Encode::<AacEncoderSettings, D>::encode(
5357 (
5358 <AacTransport as fidl::encoding::ValueTypeMarker>::borrow(&self.transport),
5359 <AacChannelMode as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_mode),
5360 <AacBitRate as fidl::encoding::ValueTypeMarker>::borrow(&self.bit_rate),
5361 <AacAudioObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.aot),
5362 ),
5363 encoder,
5364 offset,
5365 _depth,
5366 )
5367 }
5368 }
5369 unsafe impl<
5370 D: fidl::encoding::ResourceDialect,
5371 T0: fidl::encoding::Encode<AacTransport, D>,
5372 T1: fidl::encoding::Encode<AacChannelMode, D>,
5373 T2: fidl::encoding::Encode<AacBitRate, D>,
5374 T3: fidl::encoding::Encode<AacAudioObjectType, D>,
5375 > fidl::encoding::Encode<AacEncoderSettings, D> for (T0, T1, T2, T3)
5376 {
5377 #[inline]
5378 unsafe fn encode(
5379 self,
5380 encoder: &mut fidl::encoding::Encoder<'_, D>,
5381 offset: usize,
5382 depth: fidl::encoding::Depth,
5383 ) -> fidl::Result<()> {
5384 encoder.debug_check_bounds::<AacEncoderSettings>(offset);
5385 unsafe {
5388 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
5389 (ptr as *mut u64).write_unaligned(0);
5390 }
5391 unsafe {
5392 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
5393 (ptr as *mut u64).write_unaligned(0);
5394 }
5395 self.0.encode(encoder, offset + 0, depth)?;
5397 self.1.encode(encoder, offset + 16, depth)?;
5398 self.2.encode(encoder, offset + 24, depth)?;
5399 self.3.encode(encoder, offset + 40, depth)?;
5400 Ok(())
5401 }
5402 }
5403
5404 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacEncoderSettings {
5405 #[inline(always)]
5406 fn new_empty() -> Self {
5407 Self {
5408 transport: fidl::new_empty!(AacTransport, D),
5409 channel_mode: fidl::new_empty!(AacChannelMode, D),
5410 bit_rate: fidl::new_empty!(AacBitRate, D),
5411 aot: fidl::new_empty!(AacAudioObjectType, D),
5412 }
5413 }
5414
5415 #[inline]
5416 unsafe fn decode(
5417 &mut self,
5418 decoder: &mut fidl::encoding::Decoder<'_, D>,
5419 offset: usize,
5420 _depth: fidl::encoding::Depth,
5421 ) -> fidl::Result<()> {
5422 decoder.debug_check_bounds::<Self>(offset);
5423 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
5425 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5426 let mask = 0xffffffff00000000u64;
5427 let maskedval = padval & mask;
5428 if maskedval != 0 {
5429 return Err(fidl::Error::NonZeroPadding {
5430 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
5431 });
5432 }
5433 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
5434 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5435 let mask = 0xffffffff00000000u64;
5436 let maskedval = padval & mask;
5437 if maskedval != 0 {
5438 return Err(fidl::Error::NonZeroPadding {
5439 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
5440 });
5441 }
5442 fidl::decode!(AacTransport, D, &mut self.transport, decoder, offset + 0, _depth)?;
5443 fidl::decode!(AacChannelMode, D, &mut self.channel_mode, decoder, offset + 16, _depth)?;
5444 fidl::decode!(AacBitRate, D, &mut self.bit_rate, decoder, offset + 24, _depth)?;
5445 fidl::decode!(AacAudioObjectType, D, &mut self.aot, decoder, offset + 40, _depth)?;
5446 Ok(())
5447 }
5448 }
5449
5450 impl fidl::encoding::ValueTypeMarker for AacTransportAdts {
5451 type Borrowed<'a> = &'a Self;
5452 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5453 value
5454 }
5455 }
5456
5457 unsafe impl fidl::encoding::TypeMarker for AacTransportAdts {
5458 type Owned = Self;
5459
5460 #[inline(always)]
5461 fn inline_align(_context: fidl::encoding::Context) -> usize {
5462 1
5463 }
5464
5465 #[inline(always)]
5466 fn inline_size(_context: fidl::encoding::Context) -> usize {
5467 1
5468 }
5469 }
5470
5471 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportAdts, D>
5472 for &AacTransportAdts
5473 {
5474 #[inline]
5475 unsafe fn encode(
5476 self,
5477 encoder: &mut fidl::encoding::Encoder<'_, D>,
5478 offset: usize,
5479 _depth: fidl::encoding::Depth,
5480 ) -> fidl::Result<()> {
5481 encoder.debug_check_bounds::<AacTransportAdts>(offset);
5482 encoder.write_num(0u8, offset);
5483 Ok(())
5484 }
5485 }
5486
5487 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportAdts {
5488 #[inline(always)]
5489 fn new_empty() -> Self {
5490 Self
5491 }
5492
5493 #[inline]
5494 unsafe fn decode(
5495 &mut self,
5496 decoder: &mut fidl::encoding::Decoder<'_, D>,
5497 offset: usize,
5498 _depth: fidl::encoding::Depth,
5499 ) -> fidl::Result<()> {
5500 decoder.debug_check_bounds::<Self>(offset);
5501 match decoder.read_num::<u8>(offset) {
5502 0 => Ok(()),
5503 _ => Err(fidl::Error::Invalid),
5504 }
5505 }
5506 }
5507
5508 impl fidl::encoding::ValueTypeMarker for AacTransportLatm {
5509 type Borrowed<'a> = &'a Self;
5510 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5511 value
5512 }
5513 }
5514
5515 unsafe impl fidl::encoding::TypeMarker for AacTransportLatm {
5516 type Owned = Self;
5517
5518 #[inline(always)]
5519 fn inline_align(_context: fidl::encoding::Context) -> usize {
5520 1
5521 }
5522
5523 #[inline(always)]
5524 fn inline_size(_context: fidl::encoding::Context) -> usize {
5525 1
5526 }
5527 }
5528
5529 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportLatm, D>
5530 for &AacTransportLatm
5531 {
5532 #[inline]
5533 unsafe fn encode(
5534 self,
5535 encoder: &mut fidl::encoding::Encoder<'_, D>,
5536 offset: usize,
5537 _depth: fidl::encoding::Depth,
5538 ) -> fidl::Result<()> {
5539 encoder.debug_check_bounds::<AacTransportLatm>(offset);
5540 fidl::encoding::Encode::<AacTransportLatm, D>::encode(
5542 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.mux_config_present),),
5543 encoder,
5544 offset,
5545 _depth,
5546 )
5547 }
5548 }
5549 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
5550 fidl::encoding::Encode<AacTransportLatm, D> for (T0,)
5551 {
5552 #[inline]
5553 unsafe fn encode(
5554 self,
5555 encoder: &mut fidl::encoding::Encoder<'_, D>,
5556 offset: usize,
5557 depth: fidl::encoding::Depth,
5558 ) -> fidl::Result<()> {
5559 encoder.debug_check_bounds::<AacTransportLatm>(offset);
5560 self.0.encode(encoder, offset + 0, depth)?;
5564 Ok(())
5565 }
5566 }
5567
5568 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportLatm {
5569 #[inline(always)]
5570 fn new_empty() -> Self {
5571 Self { mux_config_present: fidl::new_empty!(bool, D) }
5572 }
5573
5574 #[inline]
5575 unsafe fn decode(
5576 &mut self,
5577 decoder: &mut fidl::encoding::Decoder<'_, D>,
5578 offset: usize,
5579 _depth: fidl::encoding::Depth,
5580 ) -> fidl::Result<()> {
5581 decoder.debug_check_bounds::<Self>(offset);
5582 fidl::decode!(bool, D, &mut self.mux_config_present, decoder, offset + 0, _depth)?;
5584 Ok(())
5585 }
5586 }
5587
5588 impl fidl::encoding::ValueTypeMarker for AacTransportRaw {
5589 type Borrowed<'a> = &'a Self;
5590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5591 value
5592 }
5593 }
5594
5595 unsafe impl fidl::encoding::TypeMarker for AacTransportRaw {
5596 type Owned = Self;
5597
5598 #[inline(always)]
5599 fn inline_align(_context: fidl::encoding::Context) -> usize {
5600 1
5601 }
5602
5603 #[inline(always)]
5604 fn inline_size(_context: fidl::encoding::Context) -> usize {
5605 1
5606 }
5607 }
5608
5609 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportRaw, D>
5610 for &AacTransportRaw
5611 {
5612 #[inline]
5613 unsafe fn encode(
5614 self,
5615 encoder: &mut fidl::encoding::Encoder<'_, D>,
5616 offset: usize,
5617 _depth: fidl::encoding::Depth,
5618 ) -> fidl::Result<()> {
5619 encoder.debug_check_bounds::<AacTransportRaw>(offset);
5620 encoder.write_num(0u8, offset);
5621 Ok(())
5622 }
5623 }
5624
5625 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportRaw {
5626 #[inline(always)]
5627 fn new_empty() -> Self {
5628 Self
5629 }
5630
5631 #[inline]
5632 unsafe fn decode(
5633 &mut self,
5634 decoder: &mut fidl::encoding::Decoder<'_, D>,
5635 offset: usize,
5636 _depth: fidl::encoding::Depth,
5637 ) -> fidl::Result<()> {
5638 decoder.debug_check_bounds::<Self>(offset);
5639 match decoder.read_num::<u8>(offset) {
5640 0 => Ok(()),
5641 _ => Err(fidl::Error::Invalid),
5642 }
5643 }
5644 }
5645
5646 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchCaptureActivityResponse {
5647 type Borrowed<'a> = &'a Self;
5648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5649 value
5650 }
5651 }
5652
5653 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchCaptureActivityResponse {
5654 type Owned = Self;
5655
5656 #[inline(always)]
5657 fn inline_align(_context: fidl::encoding::Context) -> usize {
5658 8
5659 }
5660
5661 #[inline(always)]
5662 fn inline_size(_context: fidl::encoding::Context) -> usize {
5663 16
5664 }
5665 }
5666
5667 unsafe impl<D: fidl::encoding::ResourceDialect>
5668 fidl::encoding::Encode<ActivityReporterWatchCaptureActivityResponse, D>
5669 for &ActivityReporterWatchCaptureActivityResponse
5670 {
5671 #[inline]
5672 unsafe fn encode(
5673 self,
5674 encoder: &mut fidl::encoding::Encoder<'_, D>,
5675 offset: usize,
5676 _depth: fidl::encoding::Depth,
5677 ) -> fidl::Result<()> {
5678 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivityResponse>(offset);
5679 fidl::encoding::Encode::<ActivityReporterWatchCaptureActivityResponse, D>::encode(
5681 (
5682 <fidl::encoding::Vector<AudioCaptureUsage, 4> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5683 ),
5684 encoder, offset, _depth
5685 )
5686 }
5687 }
5688 unsafe impl<
5689 D: fidl::encoding::ResourceDialect,
5690 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioCaptureUsage, 4>, D>,
5691 > fidl::encoding::Encode<ActivityReporterWatchCaptureActivityResponse, D> for (T0,)
5692 {
5693 #[inline]
5694 unsafe fn encode(
5695 self,
5696 encoder: &mut fidl::encoding::Encoder<'_, D>,
5697 offset: usize,
5698 depth: fidl::encoding::Depth,
5699 ) -> fidl::Result<()> {
5700 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivityResponse>(offset);
5701 self.0.encode(encoder, offset + 0, depth)?;
5705 Ok(())
5706 }
5707 }
5708
5709 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5710 for ActivityReporterWatchCaptureActivityResponse
5711 {
5712 #[inline(always)]
5713 fn new_empty() -> Self {
5714 Self {
5715 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioCaptureUsage, 4>, D),
5716 }
5717 }
5718
5719 #[inline]
5720 unsafe fn decode(
5721 &mut self,
5722 decoder: &mut fidl::encoding::Decoder<'_, D>,
5723 offset: usize,
5724 _depth: fidl::encoding::Depth,
5725 ) -> fidl::Result<()> {
5726 decoder.debug_check_bounds::<Self>(offset);
5727 fidl::decode!(fidl::encoding::Vector<AudioCaptureUsage, 4>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5729 Ok(())
5730 }
5731 }
5732
5733 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchRenderActivityResponse {
5734 type Borrowed<'a> = &'a Self;
5735 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5736 value
5737 }
5738 }
5739
5740 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchRenderActivityResponse {
5741 type Owned = Self;
5742
5743 #[inline(always)]
5744 fn inline_align(_context: fidl::encoding::Context) -> usize {
5745 8
5746 }
5747
5748 #[inline(always)]
5749 fn inline_size(_context: fidl::encoding::Context) -> usize {
5750 16
5751 }
5752 }
5753
5754 unsafe impl<D: fidl::encoding::ResourceDialect>
5755 fidl::encoding::Encode<ActivityReporterWatchRenderActivityResponse, D>
5756 for &ActivityReporterWatchRenderActivityResponse
5757 {
5758 #[inline]
5759 unsafe fn encode(
5760 self,
5761 encoder: &mut fidl::encoding::Encoder<'_, D>,
5762 offset: usize,
5763 _depth: fidl::encoding::Depth,
5764 ) -> fidl::Result<()> {
5765 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivityResponse>(offset);
5766 fidl::encoding::Encode::<ActivityReporterWatchRenderActivityResponse, D>::encode(
5768 (
5769 <fidl::encoding::Vector<AudioRenderUsage, 5> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5770 ),
5771 encoder, offset, _depth
5772 )
5773 }
5774 }
5775 unsafe impl<
5776 D: fidl::encoding::ResourceDialect,
5777 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioRenderUsage, 5>, D>,
5778 > fidl::encoding::Encode<ActivityReporterWatchRenderActivityResponse, D> for (T0,)
5779 {
5780 #[inline]
5781 unsafe fn encode(
5782 self,
5783 encoder: &mut fidl::encoding::Encoder<'_, D>,
5784 offset: usize,
5785 depth: fidl::encoding::Depth,
5786 ) -> fidl::Result<()> {
5787 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivityResponse>(offset);
5788 self.0.encode(encoder, offset + 0, depth)?;
5792 Ok(())
5793 }
5794 }
5795
5796 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5797 for ActivityReporterWatchRenderActivityResponse
5798 {
5799 #[inline(always)]
5800 fn new_empty() -> Self {
5801 Self { active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioRenderUsage, 5>, D) }
5802 }
5803
5804 #[inline]
5805 unsafe fn decode(
5806 &mut self,
5807 decoder: &mut fidl::encoding::Decoder<'_, D>,
5808 offset: usize,
5809 _depth: fidl::encoding::Depth,
5810 ) -> fidl::Result<()> {
5811 decoder.debug_check_bounds::<Self>(offset);
5812 fidl::decode!(fidl::encoding::Vector<AudioRenderUsage, 5>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5814 Ok(())
5815 }
5816 }
5817
5818 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchCaptureActivity2Response {
5819 type Borrowed<'a> = &'a Self;
5820 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5821 value
5822 }
5823 }
5824
5825 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchCaptureActivity2Response {
5826 type Owned = Self;
5827
5828 #[inline(always)]
5829 fn inline_align(_context: fidl::encoding::Context) -> usize {
5830 8
5831 }
5832
5833 #[inline(always)]
5834 fn inline_size(_context: fidl::encoding::Context) -> usize {
5835 16
5836 }
5837 }
5838
5839 unsafe impl<D: fidl::encoding::ResourceDialect>
5840 fidl::encoding::Encode<ActivityReporterWatchCaptureActivity2Response, D>
5841 for &ActivityReporterWatchCaptureActivity2Response
5842 {
5843 #[inline]
5844 unsafe fn encode(
5845 self,
5846 encoder: &mut fidl::encoding::Encoder<'_, D>,
5847 offset: usize,
5848 _depth: fidl::encoding::Depth,
5849 ) -> fidl::Result<()> {
5850 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivity2Response>(offset);
5851 fidl::encoding::Encode::<ActivityReporterWatchCaptureActivity2Response, D>::encode(
5853 (
5854 <fidl::encoding::Vector<AudioCaptureUsage2, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5855 ),
5856 encoder, offset, _depth
5857 )
5858 }
5859 }
5860 unsafe impl<
5861 D: fidl::encoding::ResourceDialect,
5862 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioCaptureUsage2, 8>, D>,
5863 > fidl::encoding::Encode<ActivityReporterWatchCaptureActivity2Response, D> for (T0,)
5864 {
5865 #[inline]
5866 unsafe fn encode(
5867 self,
5868 encoder: &mut fidl::encoding::Encoder<'_, D>,
5869 offset: usize,
5870 depth: fidl::encoding::Depth,
5871 ) -> fidl::Result<()> {
5872 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivity2Response>(offset);
5873 self.0.encode(encoder, offset + 0, depth)?;
5877 Ok(())
5878 }
5879 }
5880
5881 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5882 for ActivityReporterWatchCaptureActivity2Response
5883 {
5884 #[inline(always)]
5885 fn new_empty() -> Self {
5886 Self {
5887 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioCaptureUsage2, 8>, D),
5888 }
5889 }
5890
5891 #[inline]
5892 unsafe fn decode(
5893 &mut self,
5894 decoder: &mut fidl::encoding::Decoder<'_, D>,
5895 offset: usize,
5896 _depth: fidl::encoding::Depth,
5897 ) -> fidl::Result<()> {
5898 decoder.debug_check_bounds::<Self>(offset);
5899 fidl::decode!(fidl::encoding::Vector<AudioCaptureUsage2, 8>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5901 Ok(())
5902 }
5903 }
5904
5905 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchRenderActivity2Response {
5906 type Borrowed<'a> = &'a Self;
5907 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5908 value
5909 }
5910 }
5911
5912 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchRenderActivity2Response {
5913 type Owned = Self;
5914
5915 #[inline(always)]
5916 fn inline_align(_context: fidl::encoding::Context) -> usize {
5917 8
5918 }
5919
5920 #[inline(always)]
5921 fn inline_size(_context: fidl::encoding::Context) -> usize {
5922 16
5923 }
5924 }
5925
5926 unsafe impl<D: fidl::encoding::ResourceDialect>
5927 fidl::encoding::Encode<ActivityReporterWatchRenderActivity2Response, D>
5928 for &ActivityReporterWatchRenderActivity2Response
5929 {
5930 #[inline]
5931 unsafe fn encode(
5932 self,
5933 encoder: &mut fidl::encoding::Encoder<'_, D>,
5934 offset: usize,
5935 _depth: fidl::encoding::Depth,
5936 ) -> fidl::Result<()> {
5937 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivity2Response>(offset);
5938 fidl::encoding::Encode::<ActivityReporterWatchRenderActivity2Response, D>::encode(
5940 (
5941 <fidl::encoding::Vector<AudioRenderUsage2, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5942 ),
5943 encoder, offset, _depth
5944 )
5945 }
5946 }
5947 unsafe impl<
5948 D: fidl::encoding::ResourceDialect,
5949 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioRenderUsage2, 8>, D>,
5950 > fidl::encoding::Encode<ActivityReporterWatchRenderActivity2Response, D> for (T0,)
5951 {
5952 #[inline]
5953 unsafe fn encode(
5954 self,
5955 encoder: &mut fidl::encoding::Encoder<'_, D>,
5956 offset: usize,
5957 depth: fidl::encoding::Depth,
5958 ) -> fidl::Result<()> {
5959 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivity2Response>(offset);
5960 self.0.encode(encoder, offset + 0, depth)?;
5964 Ok(())
5965 }
5966 }
5967
5968 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5969 for ActivityReporterWatchRenderActivity2Response
5970 {
5971 #[inline(always)]
5972 fn new_empty() -> Self {
5973 Self {
5974 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioRenderUsage2, 8>, D),
5975 }
5976 }
5977
5978 #[inline]
5979 unsafe fn decode(
5980 &mut self,
5981 decoder: &mut fidl::encoding::Decoder<'_, D>,
5982 offset: usize,
5983 _depth: fidl::encoding::Depth,
5984 ) -> fidl::Result<()> {
5985 decoder.debug_check_bounds::<Self>(offset);
5986 fidl::decode!(fidl::encoding::Vector<AudioRenderUsage2, 8>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5988 Ok(())
5989 }
5990 }
5991
5992 impl fidl::encoding::ValueTypeMarker for AudioCapturerCaptureAtRequest {
5993 type Borrowed<'a> = &'a Self;
5994 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5995 value
5996 }
5997 }
5998
5999 unsafe impl fidl::encoding::TypeMarker for AudioCapturerCaptureAtRequest {
6000 type Owned = Self;
6001
6002 #[inline(always)]
6003 fn inline_align(_context: fidl::encoding::Context) -> usize {
6004 4
6005 }
6006
6007 #[inline(always)]
6008 fn inline_size(_context: fidl::encoding::Context) -> usize {
6009 12
6010 }
6011 #[inline(always)]
6012 fn encode_is_copy() -> bool {
6013 true
6014 }
6015
6016 #[inline(always)]
6017 fn decode_is_copy() -> bool {
6018 true
6019 }
6020 }
6021
6022 unsafe impl<D: fidl::encoding::ResourceDialect>
6023 fidl::encoding::Encode<AudioCapturerCaptureAtRequest, D>
6024 for &AudioCapturerCaptureAtRequest
6025 {
6026 #[inline]
6027 unsafe fn encode(
6028 self,
6029 encoder: &mut fidl::encoding::Encoder<'_, D>,
6030 offset: usize,
6031 _depth: fidl::encoding::Depth,
6032 ) -> fidl::Result<()> {
6033 encoder.debug_check_bounds::<AudioCapturerCaptureAtRequest>(offset);
6034 unsafe {
6035 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6037 (buf_ptr as *mut AudioCapturerCaptureAtRequest)
6038 .write_unaligned((self as *const AudioCapturerCaptureAtRequest).read());
6039 }
6042 Ok(())
6043 }
6044 }
6045 unsafe impl<
6046 D: fidl::encoding::ResourceDialect,
6047 T0: fidl::encoding::Encode<u32, D>,
6048 T1: fidl::encoding::Encode<u32, D>,
6049 T2: fidl::encoding::Encode<u32, D>,
6050 > fidl::encoding::Encode<AudioCapturerCaptureAtRequest, D> for (T0, T1, T2)
6051 {
6052 #[inline]
6053 unsafe fn encode(
6054 self,
6055 encoder: &mut fidl::encoding::Encoder<'_, D>,
6056 offset: usize,
6057 depth: fidl::encoding::Depth,
6058 ) -> fidl::Result<()> {
6059 encoder.debug_check_bounds::<AudioCapturerCaptureAtRequest>(offset);
6060 self.0.encode(encoder, offset + 0, depth)?;
6064 self.1.encode(encoder, offset + 4, depth)?;
6065 self.2.encode(encoder, offset + 8, depth)?;
6066 Ok(())
6067 }
6068 }
6069
6070 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6071 for AudioCapturerCaptureAtRequest
6072 {
6073 #[inline(always)]
6074 fn new_empty() -> Self {
6075 Self {
6076 payload_buffer_id: fidl::new_empty!(u32, D),
6077 payload_offset: fidl::new_empty!(u32, D),
6078 frames: fidl::new_empty!(u32, D),
6079 }
6080 }
6081
6082 #[inline]
6083 unsafe fn decode(
6084 &mut self,
6085 decoder: &mut fidl::encoding::Decoder<'_, D>,
6086 offset: usize,
6087 _depth: fidl::encoding::Depth,
6088 ) -> fidl::Result<()> {
6089 decoder.debug_check_bounds::<Self>(offset);
6090 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6091 unsafe {
6094 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
6095 }
6096 Ok(())
6097 }
6098 }
6099
6100 impl fidl::encoding::ValueTypeMarker for AudioCapturerCaptureAtResponse {
6101 type Borrowed<'a> = &'a Self;
6102 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6103 value
6104 }
6105 }
6106
6107 unsafe impl fidl::encoding::TypeMarker for AudioCapturerCaptureAtResponse {
6108 type Owned = Self;
6109
6110 #[inline(always)]
6111 fn inline_align(_context: fidl::encoding::Context) -> usize {
6112 8
6113 }
6114
6115 #[inline(always)]
6116 fn inline_size(_context: fidl::encoding::Context) -> usize {
6117 56
6118 }
6119 }
6120
6121 unsafe impl<D: fidl::encoding::ResourceDialect>
6122 fidl::encoding::Encode<AudioCapturerCaptureAtResponse, D>
6123 for &AudioCapturerCaptureAtResponse
6124 {
6125 #[inline]
6126 unsafe fn encode(
6127 self,
6128 encoder: &mut fidl::encoding::Encoder<'_, D>,
6129 offset: usize,
6130 _depth: fidl::encoding::Depth,
6131 ) -> fidl::Result<()> {
6132 encoder.debug_check_bounds::<AudioCapturerCaptureAtResponse>(offset);
6133 unsafe {
6134 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6136 (buf_ptr as *mut AudioCapturerCaptureAtResponse)
6137 .write_unaligned((self as *const AudioCapturerCaptureAtResponse).read());
6138 let padding_ptr = buf_ptr.offset(8) as *mut u64;
6141 let padding_mask = 0xffffffff00000000u64;
6142 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
6143 let padding_ptr = buf_ptr.offset(32) as *mut u64;
6144 let padding_mask = 0xffffffff00000000u64;
6145 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
6146 }
6147 Ok(())
6148 }
6149 }
6150 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
6151 fidl::encoding::Encode<AudioCapturerCaptureAtResponse, D> for (T0,)
6152 {
6153 #[inline]
6154 unsafe fn encode(
6155 self,
6156 encoder: &mut fidl::encoding::Encoder<'_, D>,
6157 offset: usize,
6158 depth: fidl::encoding::Depth,
6159 ) -> fidl::Result<()> {
6160 encoder.debug_check_bounds::<AudioCapturerCaptureAtResponse>(offset);
6161 self.0.encode(encoder, offset + 0, depth)?;
6165 Ok(())
6166 }
6167 }
6168
6169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6170 for AudioCapturerCaptureAtResponse
6171 {
6172 #[inline(always)]
6173 fn new_empty() -> Self {
6174 Self { captured_packet: fidl::new_empty!(StreamPacket, D) }
6175 }
6176
6177 #[inline]
6178 unsafe fn decode(
6179 &mut self,
6180 decoder: &mut fidl::encoding::Decoder<'_, D>,
6181 offset: usize,
6182 _depth: fidl::encoding::Depth,
6183 ) -> fidl::Result<()> {
6184 decoder.debug_check_bounds::<Self>(offset);
6185 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6186 let ptr = unsafe { buf_ptr.offset(8) };
6188 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6189 let mask = 0xffffffff00000000u64;
6190 let maskedval = padval & mask;
6191 if maskedval != 0 {
6192 return Err(fidl::Error::NonZeroPadding {
6193 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
6194 });
6195 }
6196 let ptr = unsafe { buf_ptr.offset(32) };
6197 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6198 let mask = 0xffffffff00000000u64;
6199 let maskedval = padval & mask;
6200 if maskedval != 0 {
6201 return Err(fidl::Error::NonZeroPadding {
6202 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
6203 });
6204 }
6205 unsafe {
6207 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
6208 }
6209 Ok(())
6210 }
6211 }
6212
6213 impl fidl::encoding::ValueTypeMarker for AudioCapturerGetStreamTypeResponse {
6214 type Borrowed<'a> = &'a Self;
6215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6216 value
6217 }
6218 }
6219
6220 unsafe impl fidl::encoding::TypeMarker for AudioCapturerGetStreamTypeResponse {
6221 type Owned = Self;
6222
6223 #[inline(always)]
6224 fn inline_align(_context: fidl::encoding::Context) -> usize {
6225 8
6226 }
6227
6228 #[inline(always)]
6229 fn inline_size(_context: fidl::encoding::Context) -> usize {
6230 48
6231 }
6232 }
6233
6234 unsafe impl<D: fidl::encoding::ResourceDialect>
6235 fidl::encoding::Encode<AudioCapturerGetStreamTypeResponse, D>
6236 for &AudioCapturerGetStreamTypeResponse
6237 {
6238 #[inline]
6239 unsafe fn encode(
6240 self,
6241 encoder: &mut fidl::encoding::Encoder<'_, D>,
6242 offset: usize,
6243 _depth: fidl::encoding::Depth,
6244 ) -> fidl::Result<()> {
6245 encoder.debug_check_bounds::<AudioCapturerGetStreamTypeResponse>(offset);
6246 fidl::encoding::Encode::<AudioCapturerGetStreamTypeResponse, D>::encode(
6248 (<StreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),),
6249 encoder,
6250 offset,
6251 _depth,
6252 )
6253 }
6254 }
6255 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamType, D>>
6256 fidl::encoding::Encode<AudioCapturerGetStreamTypeResponse, D> for (T0,)
6257 {
6258 #[inline]
6259 unsafe fn encode(
6260 self,
6261 encoder: &mut fidl::encoding::Encoder<'_, D>,
6262 offset: usize,
6263 depth: fidl::encoding::Depth,
6264 ) -> fidl::Result<()> {
6265 encoder.debug_check_bounds::<AudioCapturerGetStreamTypeResponse>(offset);
6266 self.0.encode(encoder, offset + 0, depth)?;
6270 Ok(())
6271 }
6272 }
6273
6274 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6275 for AudioCapturerGetStreamTypeResponse
6276 {
6277 #[inline(always)]
6278 fn new_empty() -> Self {
6279 Self { stream_type: fidl::new_empty!(StreamType, D) }
6280 }
6281
6282 #[inline]
6283 unsafe fn decode(
6284 &mut self,
6285 decoder: &mut fidl::encoding::Decoder<'_, D>,
6286 offset: usize,
6287 _depth: fidl::encoding::Depth,
6288 ) -> fidl::Result<()> {
6289 decoder.debug_check_bounds::<Self>(offset);
6290 fidl::decode!(StreamType, D, &mut self.stream_type, decoder, offset + 0, _depth)?;
6292 Ok(())
6293 }
6294 }
6295
6296 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetPcmStreamTypeRequest {
6297 type Borrowed<'a> = &'a Self;
6298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6299 value
6300 }
6301 }
6302
6303 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetPcmStreamTypeRequest {
6304 type Owned = Self;
6305
6306 #[inline(always)]
6307 fn inline_align(_context: fidl::encoding::Context) -> usize {
6308 4
6309 }
6310
6311 #[inline(always)]
6312 fn inline_size(_context: fidl::encoding::Context) -> usize {
6313 12
6314 }
6315 }
6316
6317 unsafe impl<D: fidl::encoding::ResourceDialect>
6318 fidl::encoding::Encode<AudioCapturerSetPcmStreamTypeRequest, D>
6319 for &AudioCapturerSetPcmStreamTypeRequest
6320 {
6321 #[inline]
6322 unsafe fn encode(
6323 self,
6324 encoder: &mut fidl::encoding::Encoder<'_, D>,
6325 offset: usize,
6326 _depth: fidl::encoding::Depth,
6327 ) -> fidl::Result<()> {
6328 encoder.debug_check_bounds::<AudioCapturerSetPcmStreamTypeRequest>(offset);
6329 fidl::encoding::Encode::<AudioCapturerSetPcmStreamTypeRequest, D>::encode(
6331 (<AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),),
6332 encoder,
6333 offset,
6334 _depth,
6335 )
6336 }
6337 }
6338 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioStreamType, D>>
6339 fidl::encoding::Encode<AudioCapturerSetPcmStreamTypeRequest, D> for (T0,)
6340 {
6341 #[inline]
6342 unsafe fn encode(
6343 self,
6344 encoder: &mut fidl::encoding::Encoder<'_, D>,
6345 offset: usize,
6346 depth: fidl::encoding::Depth,
6347 ) -> fidl::Result<()> {
6348 encoder.debug_check_bounds::<AudioCapturerSetPcmStreamTypeRequest>(offset);
6349 self.0.encode(encoder, offset + 0, depth)?;
6353 Ok(())
6354 }
6355 }
6356
6357 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6358 for AudioCapturerSetPcmStreamTypeRequest
6359 {
6360 #[inline(always)]
6361 fn new_empty() -> Self {
6362 Self { stream_type: fidl::new_empty!(AudioStreamType, D) }
6363 }
6364
6365 #[inline]
6366 unsafe fn decode(
6367 &mut self,
6368 decoder: &mut fidl::encoding::Decoder<'_, D>,
6369 offset: usize,
6370 _depth: fidl::encoding::Depth,
6371 ) -> fidl::Result<()> {
6372 decoder.debug_check_bounds::<Self>(offset);
6373 fidl::decode!(AudioStreamType, D, &mut self.stream_type, decoder, offset + 0, _depth)?;
6375 Ok(())
6376 }
6377 }
6378
6379 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetUsage2Request {
6380 type Borrowed<'a> = &'a Self;
6381 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6382 value
6383 }
6384 }
6385
6386 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetUsage2Request {
6387 type Owned = Self;
6388
6389 #[inline(always)]
6390 fn inline_align(_context: fidl::encoding::Context) -> usize {
6391 4
6392 }
6393
6394 #[inline(always)]
6395 fn inline_size(_context: fidl::encoding::Context) -> usize {
6396 4
6397 }
6398 }
6399
6400 unsafe impl<D: fidl::encoding::ResourceDialect>
6401 fidl::encoding::Encode<AudioCapturerSetUsage2Request, D>
6402 for &AudioCapturerSetUsage2Request
6403 {
6404 #[inline]
6405 unsafe fn encode(
6406 self,
6407 encoder: &mut fidl::encoding::Encoder<'_, D>,
6408 offset: usize,
6409 _depth: fidl::encoding::Depth,
6410 ) -> fidl::Result<()> {
6411 encoder.debug_check_bounds::<AudioCapturerSetUsage2Request>(offset);
6412 fidl::encoding::Encode::<AudioCapturerSetUsage2Request, D>::encode(
6414 (<AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
6415 encoder,
6416 offset,
6417 _depth,
6418 )
6419 }
6420 }
6421 unsafe impl<
6422 D: fidl::encoding::ResourceDialect,
6423 T0: fidl::encoding::Encode<AudioCaptureUsage2, D>,
6424 > fidl::encoding::Encode<AudioCapturerSetUsage2Request, D> for (T0,)
6425 {
6426 #[inline]
6427 unsafe fn encode(
6428 self,
6429 encoder: &mut fidl::encoding::Encoder<'_, D>,
6430 offset: usize,
6431 depth: fidl::encoding::Depth,
6432 ) -> fidl::Result<()> {
6433 encoder.debug_check_bounds::<AudioCapturerSetUsage2Request>(offset);
6434 self.0.encode(encoder, offset + 0, depth)?;
6438 Ok(())
6439 }
6440 }
6441
6442 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6443 for AudioCapturerSetUsage2Request
6444 {
6445 #[inline(always)]
6446 fn new_empty() -> Self {
6447 Self { usage: fidl::new_empty!(AudioCaptureUsage2, D) }
6448 }
6449
6450 #[inline]
6451 unsafe fn decode(
6452 &mut self,
6453 decoder: &mut fidl::encoding::Decoder<'_, D>,
6454 offset: usize,
6455 _depth: fidl::encoding::Depth,
6456 ) -> fidl::Result<()> {
6457 decoder.debug_check_bounds::<Self>(offset);
6458 fidl::decode!(AudioCaptureUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
6460 Ok(())
6461 }
6462 }
6463
6464 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetUsageRequest {
6465 type Borrowed<'a> = &'a Self;
6466 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6467 value
6468 }
6469 }
6470
6471 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetUsageRequest {
6472 type Owned = Self;
6473
6474 #[inline(always)]
6475 fn inline_align(_context: fidl::encoding::Context) -> usize {
6476 4
6477 }
6478
6479 #[inline(always)]
6480 fn inline_size(_context: fidl::encoding::Context) -> usize {
6481 4
6482 }
6483 }
6484
6485 unsafe impl<D: fidl::encoding::ResourceDialect>
6486 fidl::encoding::Encode<AudioCapturerSetUsageRequest, D> for &AudioCapturerSetUsageRequest
6487 {
6488 #[inline]
6489 unsafe fn encode(
6490 self,
6491 encoder: &mut fidl::encoding::Encoder<'_, D>,
6492 offset: usize,
6493 _depth: fidl::encoding::Depth,
6494 ) -> fidl::Result<()> {
6495 encoder.debug_check_bounds::<AudioCapturerSetUsageRequest>(offset);
6496 fidl::encoding::Encode::<AudioCapturerSetUsageRequest, D>::encode(
6498 (<AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
6499 encoder,
6500 offset,
6501 _depth,
6502 )
6503 }
6504 }
6505 unsafe impl<
6506 D: fidl::encoding::ResourceDialect,
6507 T0: fidl::encoding::Encode<AudioCaptureUsage, D>,
6508 > fidl::encoding::Encode<AudioCapturerSetUsageRequest, D> for (T0,)
6509 {
6510 #[inline]
6511 unsafe fn encode(
6512 self,
6513 encoder: &mut fidl::encoding::Encoder<'_, D>,
6514 offset: usize,
6515 depth: fidl::encoding::Depth,
6516 ) -> fidl::Result<()> {
6517 encoder.debug_check_bounds::<AudioCapturerSetUsageRequest>(offset);
6518 self.0.encode(encoder, offset + 0, depth)?;
6522 Ok(())
6523 }
6524 }
6525
6526 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6527 for AudioCapturerSetUsageRequest
6528 {
6529 #[inline(always)]
6530 fn new_empty() -> Self {
6531 Self { usage: fidl::new_empty!(AudioCaptureUsage, D) }
6532 }
6533
6534 #[inline]
6535 unsafe fn decode(
6536 &mut self,
6537 decoder: &mut fidl::encoding::Decoder<'_, D>,
6538 offset: usize,
6539 _depth: fidl::encoding::Depth,
6540 ) -> fidl::Result<()> {
6541 decoder.debug_check_bounds::<Self>(offset);
6542 fidl::decode!(AudioCaptureUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
6544 Ok(())
6545 }
6546 }
6547
6548 impl fidl::encoding::ValueTypeMarker for AudioCapturerStartAsyncCaptureRequest {
6549 type Borrowed<'a> = &'a Self;
6550 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6551 value
6552 }
6553 }
6554
6555 unsafe impl fidl::encoding::TypeMarker for AudioCapturerStartAsyncCaptureRequest {
6556 type Owned = Self;
6557
6558 #[inline(always)]
6559 fn inline_align(_context: fidl::encoding::Context) -> usize {
6560 4
6561 }
6562
6563 #[inline(always)]
6564 fn inline_size(_context: fidl::encoding::Context) -> usize {
6565 4
6566 }
6567 #[inline(always)]
6568 fn encode_is_copy() -> bool {
6569 true
6570 }
6571
6572 #[inline(always)]
6573 fn decode_is_copy() -> bool {
6574 true
6575 }
6576 }
6577
6578 unsafe impl<D: fidl::encoding::ResourceDialect>
6579 fidl::encoding::Encode<AudioCapturerStartAsyncCaptureRequest, D>
6580 for &AudioCapturerStartAsyncCaptureRequest
6581 {
6582 #[inline]
6583 unsafe fn encode(
6584 self,
6585 encoder: &mut fidl::encoding::Encoder<'_, D>,
6586 offset: usize,
6587 _depth: fidl::encoding::Depth,
6588 ) -> fidl::Result<()> {
6589 encoder.debug_check_bounds::<AudioCapturerStartAsyncCaptureRequest>(offset);
6590 unsafe {
6591 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6593 (buf_ptr as *mut AudioCapturerStartAsyncCaptureRequest)
6594 .write_unaligned((self as *const AudioCapturerStartAsyncCaptureRequest).read());
6595 }
6598 Ok(())
6599 }
6600 }
6601 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
6602 fidl::encoding::Encode<AudioCapturerStartAsyncCaptureRequest, D> for (T0,)
6603 {
6604 #[inline]
6605 unsafe fn encode(
6606 self,
6607 encoder: &mut fidl::encoding::Encoder<'_, D>,
6608 offset: usize,
6609 depth: fidl::encoding::Depth,
6610 ) -> fidl::Result<()> {
6611 encoder.debug_check_bounds::<AudioCapturerStartAsyncCaptureRequest>(offset);
6612 self.0.encode(encoder, offset + 0, depth)?;
6616 Ok(())
6617 }
6618 }
6619
6620 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6621 for AudioCapturerStartAsyncCaptureRequest
6622 {
6623 #[inline(always)]
6624 fn new_empty() -> Self {
6625 Self { frames_per_packet: fidl::new_empty!(u32, D) }
6626 }
6627
6628 #[inline]
6629 unsafe fn decode(
6630 &mut self,
6631 decoder: &mut fidl::encoding::Decoder<'_, D>,
6632 offset: usize,
6633 _depth: fidl::encoding::Depth,
6634 ) -> fidl::Result<()> {
6635 decoder.debug_check_bounds::<Self>(offset);
6636 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6637 unsafe {
6640 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
6641 }
6642 Ok(())
6643 }
6644 }
6645
6646 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatAac {
6647 type Borrowed<'a> = &'a Self;
6648 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6649 value
6650 }
6651 }
6652
6653 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatAac {
6654 type Owned = Self;
6655
6656 #[inline(always)]
6657 fn inline_align(_context: fidl::encoding::Context) -> usize {
6658 1
6659 }
6660
6661 #[inline(always)]
6662 fn inline_size(_context: fidl::encoding::Context) -> usize {
6663 1
6664 }
6665 }
6666
6667 unsafe impl<D: fidl::encoding::ResourceDialect>
6668 fidl::encoding::Encode<AudioCompressedFormatAac, D> for &AudioCompressedFormatAac
6669 {
6670 #[inline]
6671 unsafe fn encode(
6672 self,
6673 encoder: &mut fidl::encoding::Encoder<'_, D>,
6674 offset: usize,
6675 _depth: fidl::encoding::Depth,
6676 ) -> fidl::Result<()> {
6677 encoder.debug_check_bounds::<AudioCompressedFormatAac>(offset);
6678 encoder.write_num(0u8, offset);
6679 Ok(())
6680 }
6681 }
6682
6683 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6684 for AudioCompressedFormatAac
6685 {
6686 #[inline(always)]
6687 fn new_empty() -> Self {
6688 Self
6689 }
6690
6691 #[inline]
6692 unsafe fn decode(
6693 &mut self,
6694 decoder: &mut fidl::encoding::Decoder<'_, D>,
6695 offset: usize,
6696 _depth: fidl::encoding::Depth,
6697 ) -> fidl::Result<()> {
6698 decoder.debug_check_bounds::<Self>(offset);
6699 match decoder.read_num::<u8>(offset) {
6700 0 => Ok(()),
6701 _ => Err(fidl::Error::Invalid),
6702 }
6703 }
6704 }
6705
6706 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatSbc {
6707 type Borrowed<'a> = &'a Self;
6708 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6709 value
6710 }
6711 }
6712
6713 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatSbc {
6714 type Owned = Self;
6715
6716 #[inline(always)]
6717 fn inline_align(_context: fidl::encoding::Context) -> usize {
6718 1
6719 }
6720
6721 #[inline(always)]
6722 fn inline_size(_context: fidl::encoding::Context) -> usize {
6723 1
6724 }
6725 }
6726
6727 unsafe impl<D: fidl::encoding::ResourceDialect>
6728 fidl::encoding::Encode<AudioCompressedFormatSbc, D> for &AudioCompressedFormatSbc
6729 {
6730 #[inline]
6731 unsafe fn encode(
6732 self,
6733 encoder: &mut fidl::encoding::Encoder<'_, D>,
6734 offset: usize,
6735 _depth: fidl::encoding::Depth,
6736 ) -> fidl::Result<()> {
6737 encoder.debug_check_bounds::<AudioCompressedFormatSbc>(offset);
6738 encoder.write_num(0u8, offset);
6739 Ok(())
6740 }
6741 }
6742
6743 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6744 for AudioCompressedFormatSbc
6745 {
6746 #[inline(always)]
6747 fn new_empty() -> Self {
6748 Self
6749 }
6750
6751 #[inline]
6752 unsafe fn decode(
6753 &mut self,
6754 decoder: &mut fidl::encoding::Decoder<'_, D>,
6755 offset: usize,
6756 _depth: fidl::encoding::Depth,
6757 ) -> fidl::Result<()> {
6758 decoder.debug_check_bounds::<Self>(offset);
6759 match decoder.read_num::<u8>(offset) {
6760 0 => Ok(()),
6761 _ => Err(fidl::Error::Invalid),
6762 }
6763 }
6764 }
6765
6766 impl fidl::encoding::ValueTypeMarker for AudioConsumerSetRateRequest {
6767 type Borrowed<'a> = &'a Self;
6768 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6769 value
6770 }
6771 }
6772
6773 unsafe impl fidl::encoding::TypeMarker for AudioConsumerSetRateRequest {
6774 type Owned = Self;
6775
6776 #[inline(always)]
6777 fn inline_align(_context: fidl::encoding::Context) -> usize {
6778 4
6779 }
6780
6781 #[inline(always)]
6782 fn inline_size(_context: fidl::encoding::Context) -> usize {
6783 4
6784 }
6785 }
6786
6787 unsafe impl<D: fidl::encoding::ResourceDialect>
6788 fidl::encoding::Encode<AudioConsumerSetRateRequest, D> for &AudioConsumerSetRateRequest
6789 {
6790 #[inline]
6791 unsafe fn encode(
6792 self,
6793 encoder: &mut fidl::encoding::Encoder<'_, D>,
6794 offset: usize,
6795 _depth: fidl::encoding::Depth,
6796 ) -> fidl::Result<()> {
6797 encoder.debug_check_bounds::<AudioConsumerSetRateRequest>(offset);
6798 fidl::encoding::Encode::<AudioConsumerSetRateRequest, D>::encode(
6800 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.rate),),
6801 encoder,
6802 offset,
6803 _depth,
6804 )
6805 }
6806 }
6807 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
6808 fidl::encoding::Encode<AudioConsumerSetRateRequest, D> for (T0,)
6809 {
6810 #[inline]
6811 unsafe fn encode(
6812 self,
6813 encoder: &mut fidl::encoding::Encoder<'_, D>,
6814 offset: usize,
6815 depth: fidl::encoding::Depth,
6816 ) -> fidl::Result<()> {
6817 encoder.debug_check_bounds::<AudioConsumerSetRateRequest>(offset);
6818 self.0.encode(encoder, offset + 0, depth)?;
6822 Ok(())
6823 }
6824 }
6825
6826 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6827 for AudioConsumerSetRateRequest
6828 {
6829 #[inline(always)]
6830 fn new_empty() -> Self {
6831 Self { rate: fidl::new_empty!(f32, D) }
6832 }
6833
6834 #[inline]
6835 unsafe fn decode(
6836 &mut self,
6837 decoder: &mut fidl::encoding::Decoder<'_, D>,
6838 offset: usize,
6839 _depth: fidl::encoding::Depth,
6840 ) -> fidl::Result<()> {
6841 decoder.debug_check_bounds::<Self>(offset);
6842 fidl::decode!(f32, D, &mut self.rate, decoder, offset + 0, _depth)?;
6844 Ok(())
6845 }
6846 }
6847
6848 impl fidl::encoding::ValueTypeMarker for AudioConsumerStartRequest {
6849 type Borrowed<'a> = &'a Self;
6850 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6851 value
6852 }
6853 }
6854
6855 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStartRequest {
6856 type Owned = Self;
6857
6858 #[inline(always)]
6859 fn inline_align(_context: fidl::encoding::Context) -> usize {
6860 8
6861 }
6862
6863 #[inline(always)]
6864 fn inline_size(_context: fidl::encoding::Context) -> usize {
6865 24
6866 }
6867 }
6868
6869 unsafe impl<D: fidl::encoding::ResourceDialect>
6870 fidl::encoding::Encode<AudioConsumerStartRequest, D> for &AudioConsumerStartRequest
6871 {
6872 #[inline]
6873 unsafe fn encode(
6874 self,
6875 encoder: &mut fidl::encoding::Encoder<'_, D>,
6876 offset: usize,
6877 _depth: fidl::encoding::Depth,
6878 ) -> fidl::Result<()> {
6879 encoder.debug_check_bounds::<AudioConsumerStartRequest>(offset);
6880 fidl::encoding::Encode::<AudioConsumerStartRequest, D>::encode(
6882 (
6883 <AudioConsumerStartFlags as fidl::encoding::ValueTypeMarker>::borrow(
6884 &self.flags,
6885 ),
6886 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.reference_time),
6887 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.media_time),
6888 ),
6889 encoder,
6890 offset,
6891 _depth,
6892 )
6893 }
6894 }
6895 unsafe impl<
6896 D: fidl::encoding::ResourceDialect,
6897 T0: fidl::encoding::Encode<AudioConsumerStartFlags, D>,
6898 T1: fidl::encoding::Encode<i64, D>,
6899 T2: fidl::encoding::Encode<i64, D>,
6900 > fidl::encoding::Encode<AudioConsumerStartRequest, D> for (T0, T1, T2)
6901 {
6902 #[inline]
6903 unsafe fn encode(
6904 self,
6905 encoder: &mut fidl::encoding::Encoder<'_, D>,
6906 offset: usize,
6907 depth: fidl::encoding::Depth,
6908 ) -> fidl::Result<()> {
6909 encoder.debug_check_bounds::<AudioConsumerStartRequest>(offset);
6910 unsafe {
6913 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
6914 (ptr as *mut u64).write_unaligned(0);
6915 }
6916 self.0.encode(encoder, offset + 0, depth)?;
6918 self.1.encode(encoder, offset + 8, depth)?;
6919 self.2.encode(encoder, offset + 16, depth)?;
6920 Ok(())
6921 }
6922 }
6923
6924 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6925 for AudioConsumerStartRequest
6926 {
6927 #[inline(always)]
6928 fn new_empty() -> Self {
6929 Self {
6930 flags: fidl::new_empty!(AudioConsumerStartFlags, D),
6931 reference_time: fidl::new_empty!(i64, D),
6932 media_time: fidl::new_empty!(i64, D),
6933 }
6934 }
6935
6936 #[inline]
6937 unsafe fn decode(
6938 &mut self,
6939 decoder: &mut fidl::encoding::Decoder<'_, D>,
6940 offset: usize,
6941 _depth: fidl::encoding::Depth,
6942 ) -> fidl::Result<()> {
6943 decoder.debug_check_bounds::<Self>(offset);
6944 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
6946 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6947 let mask = 0xffffffff00000000u64;
6948 let maskedval = padval & mask;
6949 if maskedval != 0 {
6950 return Err(fidl::Error::NonZeroPadding {
6951 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
6952 });
6953 }
6954 fidl::decode!(
6955 AudioConsumerStartFlags,
6956 D,
6957 &mut self.flags,
6958 decoder,
6959 offset + 0,
6960 _depth
6961 )?;
6962 fidl::decode!(i64, D, &mut self.reference_time, decoder, offset + 8, _depth)?;
6963 fidl::decode!(i64, D, &mut self.media_time, decoder, offset + 16, _depth)?;
6964 Ok(())
6965 }
6966 }
6967
6968 impl fidl::encoding::ValueTypeMarker for AudioConsumerWatchStatusResponse {
6969 type Borrowed<'a> = &'a Self;
6970 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6971 value
6972 }
6973 }
6974
6975 unsafe impl fidl::encoding::TypeMarker for AudioConsumerWatchStatusResponse {
6976 type Owned = Self;
6977
6978 #[inline(always)]
6979 fn inline_align(_context: fidl::encoding::Context) -> usize {
6980 8
6981 }
6982
6983 #[inline(always)]
6984 fn inline_size(_context: fidl::encoding::Context) -> usize {
6985 16
6986 }
6987 }
6988
6989 unsafe impl<D: fidl::encoding::ResourceDialect>
6990 fidl::encoding::Encode<AudioConsumerWatchStatusResponse, D>
6991 for &AudioConsumerWatchStatusResponse
6992 {
6993 #[inline]
6994 unsafe fn encode(
6995 self,
6996 encoder: &mut fidl::encoding::Encoder<'_, D>,
6997 offset: usize,
6998 _depth: fidl::encoding::Depth,
6999 ) -> fidl::Result<()> {
7000 encoder.debug_check_bounds::<AudioConsumerWatchStatusResponse>(offset);
7001 fidl::encoding::Encode::<AudioConsumerWatchStatusResponse, D>::encode(
7003 (<AudioConsumerStatus as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
7004 encoder,
7005 offset,
7006 _depth,
7007 )
7008 }
7009 }
7010 unsafe impl<
7011 D: fidl::encoding::ResourceDialect,
7012 T0: fidl::encoding::Encode<AudioConsumerStatus, D>,
7013 > fidl::encoding::Encode<AudioConsumerWatchStatusResponse, D> for (T0,)
7014 {
7015 #[inline]
7016 unsafe fn encode(
7017 self,
7018 encoder: &mut fidl::encoding::Encoder<'_, D>,
7019 offset: usize,
7020 depth: fidl::encoding::Depth,
7021 ) -> fidl::Result<()> {
7022 encoder.debug_check_bounds::<AudioConsumerWatchStatusResponse>(offset);
7023 self.0.encode(encoder, offset + 0, depth)?;
7027 Ok(())
7028 }
7029 }
7030
7031 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7032 for AudioConsumerWatchStatusResponse
7033 {
7034 #[inline(always)]
7035 fn new_empty() -> Self {
7036 Self { status: fidl::new_empty!(AudioConsumerStatus, D) }
7037 }
7038
7039 #[inline]
7040 unsafe fn decode(
7041 &mut self,
7042 decoder: &mut fidl::encoding::Decoder<'_, D>,
7043 offset: usize,
7044 _depth: fidl::encoding::Depth,
7045 ) -> fidl::Result<()> {
7046 decoder.debug_check_bounds::<Self>(offset);
7047 fidl::decode!(AudioConsumerStatus, D, &mut self.status, decoder, offset + 0, _depth)?;
7049 Ok(())
7050 }
7051 }
7052
7053 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolume2Request {
7054 type Borrowed<'a> = &'a Self;
7055 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7056 value
7057 }
7058 }
7059
7060 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolume2Request {
7061 type Owned = Self;
7062
7063 #[inline(always)]
7064 fn inline_align(_context: fidl::encoding::Context) -> usize {
7065 8
7066 }
7067
7068 #[inline(always)]
7069 fn inline_size(_context: fidl::encoding::Context) -> usize {
7070 24
7071 }
7072 }
7073
7074 unsafe impl<D: fidl::encoding::ResourceDialect>
7075 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Request, D>
7076 for &AudioCoreGetDbFromVolume2Request
7077 {
7078 #[inline]
7079 unsafe fn encode(
7080 self,
7081 encoder: &mut fidl::encoding::Encoder<'_, D>,
7082 offset: usize,
7083 _depth: fidl::encoding::Depth,
7084 ) -> fidl::Result<()> {
7085 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Request>(offset);
7086 fidl::encoding::Encode::<AudioCoreGetDbFromVolume2Request, D>::encode(
7088 (
7089 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7090 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),
7091 ),
7092 encoder,
7093 offset,
7094 _depth,
7095 )
7096 }
7097 }
7098 unsafe impl<
7099 D: fidl::encoding::ResourceDialect,
7100 T0: fidl::encoding::Encode<Usage2, D>,
7101 T1: fidl::encoding::Encode<f32, D>,
7102 > fidl::encoding::Encode<AudioCoreGetDbFromVolume2Request, D> for (T0, T1)
7103 {
7104 #[inline]
7105 unsafe fn encode(
7106 self,
7107 encoder: &mut fidl::encoding::Encoder<'_, D>,
7108 offset: usize,
7109 depth: fidl::encoding::Depth,
7110 ) -> fidl::Result<()> {
7111 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Request>(offset);
7112 unsafe {
7115 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7116 (ptr as *mut u64).write_unaligned(0);
7117 }
7118 self.0.encode(encoder, offset + 0, depth)?;
7120 self.1.encode(encoder, offset + 16, depth)?;
7121 Ok(())
7122 }
7123 }
7124
7125 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7126 for AudioCoreGetDbFromVolume2Request
7127 {
7128 #[inline(always)]
7129 fn new_empty() -> Self {
7130 Self { usage: fidl::new_empty!(Usage2, D), volume: fidl::new_empty!(f32, D) }
7131 }
7132
7133 #[inline]
7134 unsafe fn decode(
7135 &mut self,
7136 decoder: &mut fidl::encoding::Decoder<'_, D>,
7137 offset: usize,
7138 _depth: fidl::encoding::Depth,
7139 ) -> fidl::Result<()> {
7140 decoder.debug_check_bounds::<Self>(offset);
7141 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7143 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7144 let mask = 0xffffffff00000000u64;
7145 let maskedval = padval & mask;
7146 if maskedval != 0 {
7147 return Err(fidl::Error::NonZeroPadding {
7148 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7149 });
7150 }
7151 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7152 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 16, _depth)?;
7153 Ok(())
7154 }
7155 }
7156
7157 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolumeRequest {
7158 type Borrowed<'a> = &'a Self;
7159 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7160 value
7161 }
7162 }
7163
7164 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolumeRequest {
7165 type Owned = Self;
7166
7167 #[inline(always)]
7168 fn inline_align(_context: fidl::encoding::Context) -> usize {
7169 8
7170 }
7171
7172 #[inline(always)]
7173 fn inline_size(_context: fidl::encoding::Context) -> usize {
7174 24
7175 }
7176 }
7177
7178 unsafe impl<D: fidl::encoding::ResourceDialect>
7179 fidl::encoding::Encode<AudioCoreGetDbFromVolumeRequest, D>
7180 for &AudioCoreGetDbFromVolumeRequest
7181 {
7182 #[inline]
7183 unsafe fn encode(
7184 self,
7185 encoder: &mut fidl::encoding::Encoder<'_, D>,
7186 offset: usize,
7187 _depth: fidl::encoding::Depth,
7188 ) -> fidl::Result<()> {
7189 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeRequest>(offset);
7190 fidl::encoding::Encode::<AudioCoreGetDbFromVolumeRequest, D>::encode(
7192 (
7193 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7194 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),
7195 ),
7196 encoder,
7197 offset,
7198 _depth,
7199 )
7200 }
7201 }
7202 unsafe impl<
7203 D: fidl::encoding::ResourceDialect,
7204 T0: fidl::encoding::Encode<Usage, D>,
7205 T1: fidl::encoding::Encode<f32, D>,
7206 > fidl::encoding::Encode<AudioCoreGetDbFromVolumeRequest, D> for (T0, T1)
7207 {
7208 #[inline]
7209 unsafe fn encode(
7210 self,
7211 encoder: &mut fidl::encoding::Encoder<'_, D>,
7212 offset: usize,
7213 depth: fidl::encoding::Depth,
7214 ) -> fidl::Result<()> {
7215 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeRequest>(offset);
7216 unsafe {
7219 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7220 (ptr as *mut u64).write_unaligned(0);
7221 }
7222 self.0.encode(encoder, offset + 0, depth)?;
7224 self.1.encode(encoder, offset + 16, depth)?;
7225 Ok(())
7226 }
7227 }
7228
7229 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7230 for AudioCoreGetDbFromVolumeRequest
7231 {
7232 #[inline(always)]
7233 fn new_empty() -> Self {
7234 Self { usage: fidl::new_empty!(Usage, D), volume: fidl::new_empty!(f32, D) }
7235 }
7236
7237 #[inline]
7238 unsafe fn decode(
7239 &mut self,
7240 decoder: &mut fidl::encoding::Decoder<'_, D>,
7241 offset: usize,
7242 _depth: fidl::encoding::Depth,
7243 ) -> fidl::Result<()> {
7244 decoder.debug_check_bounds::<Self>(offset);
7245 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7247 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7248 let mask = 0xffffffff00000000u64;
7249 let maskedval = padval & mask;
7250 if maskedval != 0 {
7251 return Err(fidl::Error::NonZeroPadding {
7252 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7253 });
7254 }
7255 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7256 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 16, _depth)?;
7257 Ok(())
7258 }
7259 }
7260
7261 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolumeResponse {
7262 type Borrowed<'a> = &'a Self;
7263 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7264 value
7265 }
7266 }
7267
7268 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolumeResponse {
7269 type Owned = Self;
7270
7271 #[inline(always)]
7272 fn inline_align(_context: fidl::encoding::Context) -> usize {
7273 4
7274 }
7275
7276 #[inline(always)]
7277 fn inline_size(_context: fidl::encoding::Context) -> usize {
7278 4
7279 }
7280 }
7281
7282 unsafe impl<D: fidl::encoding::ResourceDialect>
7283 fidl::encoding::Encode<AudioCoreGetDbFromVolumeResponse, D>
7284 for &AudioCoreGetDbFromVolumeResponse
7285 {
7286 #[inline]
7287 unsafe fn encode(
7288 self,
7289 encoder: &mut fidl::encoding::Encoder<'_, D>,
7290 offset: usize,
7291 _depth: fidl::encoding::Depth,
7292 ) -> fidl::Result<()> {
7293 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeResponse>(offset);
7294 fidl::encoding::Encode::<AudioCoreGetDbFromVolumeResponse, D>::encode(
7296 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),),
7297 encoder,
7298 offset,
7299 _depth,
7300 )
7301 }
7302 }
7303 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
7304 fidl::encoding::Encode<AudioCoreGetDbFromVolumeResponse, D> for (T0,)
7305 {
7306 #[inline]
7307 unsafe fn encode(
7308 self,
7309 encoder: &mut fidl::encoding::Encoder<'_, D>,
7310 offset: usize,
7311 depth: fidl::encoding::Depth,
7312 ) -> fidl::Result<()> {
7313 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeResponse>(offset);
7314 self.0.encode(encoder, offset + 0, depth)?;
7318 Ok(())
7319 }
7320 }
7321
7322 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7323 for AudioCoreGetDbFromVolumeResponse
7324 {
7325 #[inline(always)]
7326 fn new_empty() -> Self {
7327 Self { gain_db: fidl::new_empty!(f32, D) }
7328 }
7329
7330 #[inline]
7331 unsafe fn decode(
7332 &mut self,
7333 decoder: &mut fidl::encoding::Decoder<'_, D>,
7334 offset: usize,
7335 _depth: fidl::encoding::Depth,
7336 ) -> fidl::Result<()> {
7337 decoder.debug_check_bounds::<Self>(offset);
7338 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
7340 Ok(())
7341 }
7342 }
7343
7344 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDb2Request {
7345 type Borrowed<'a> = &'a Self;
7346 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7347 value
7348 }
7349 }
7350
7351 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDb2Request {
7352 type Owned = Self;
7353
7354 #[inline(always)]
7355 fn inline_align(_context: fidl::encoding::Context) -> usize {
7356 8
7357 }
7358
7359 #[inline(always)]
7360 fn inline_size(_context: fidl::encoding::Context) -> usize {
7361 24
7362 }
7363 }
7364
7365 unsafe impl<D: fidl::encoding::ResourceDialect>
7366 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Request, D>
7367 for &AudioCoreGetVolumeFromDb2Request
7368 {
7369 #[inline]
7370 unsafe fn encode(
7371 self,
7372 encoder: &mut fidl::encoding::Encoder<'_, D>,
7373 offset: usize,
7374 _depth: fidl::encoding::Depth,
7375 ) -> fidl::Result<()> {
7376 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Request>(offset);
7377 fidl::encoding::Encode::<AudioCoreGetVolumeFromDb2Request, D>::encode(
7379 (
7380 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7381 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7382 ),
7383 encoder,
7384 offset,
7385 _depth,
7386 )
7387 }
7388 }
7389 unsafe impl<
7390 D: fidl::encoding::ResourceDialect,
7391 T0: fidl::encoding::Encode<Usage2, D>,
7392 T1: fidl::encoding::Encode<f32, D>,
7393 > fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Request, D> for (T0, T1)
7394 {
7395 #[inline]
7396 unsafe fn encode(
7397 self,
7398 encoder: &mut fidl::encoding::Encoder<'_, D>,
7399 offset: usize,
7400 depth: fidl::encoding::Depth,
7401 ) -> fidl::Result<()> {
7402 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Request>(offset);
7403 unsafe {
7406 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7407 (ptr as *mut u64).write_unaligned(0);
7408 }
7409 self.0.encode(encoder, offset + 0, depth)?;
7411 self.1.encode(encoder, offset + 16, depth)?;
7412 Ok(())
7413 }
7414 }
7415
7416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7417 for AudioCoreGetVolumeFromDb2Request
7418 {
7419 #[inline(always)]
7420 fn new_empty() -> Self {
7421 Self { usage: fidl::new_empty!(Usage2, D), gain_db: fidl::new_empty!(f32, D) }
7422 }
7423
7424 #[inline]
7425 unsafe fn decode(
7426 &mut self,
7427 decoder: &mut fidl::encoding::Decoder<'_, D>,
7428 offset: usize,
7429 _depth: fidl::encoding::Depth,
7430 ) -> fidl::Result<()> {
7431 decoder.debug_check_bounds::<Self>(offset);
7432 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7434 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7435 let mask = 0xffffffff00000000u64;
7436 let maskedval = padval & mask;
7437 if maskedval != 0 {
7438 return Err(fidl::Error::NonZeroPadding {
7439 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7440 });
7441 }
7442 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7443 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 16, _depth)?;
7444 Ok(())
7445 }
7446 }
7447
7448 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDbRequest {
7449 type Borrowed<'a> = &'a Self;
7450 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7451 value
7452 }
7453 }
7454
7455 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDbRequest {
7456 type Owned = Self;
7457
7458 #[inline(always)]
7459 fn inline_align(_context: fidl::encoding::Context) -> usize {
7460 8
7461 }
7462
7463 #[inline(always)]
7464 fn inline_size(_context: fidl::encoding::Context) -> usize {
7465 24
7466 }
7467 }
7468
7469 unsafe impl<D: fidl::encoding::ResourceDialect>
7470 fidl::encoding::Encode<AudioCoreGetVolumeFromDbRequest, D>
7471 for &AudioCoreGetVolumeFromDbRequest
7472 {
7473 #[inline]
7474 unsafe fn encode(
7475 self,
7476 encoder: &mut fidl::encoding::Encoder<'_, D>,
7477 offset: usize,
7478 _depth: fidl::encoding::Depth,
7479 ) -> fidl::Result<()> {
7480 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbRequest>(offset);
7481 fidl::encoding::Encode::<AudioCoreGetVolumeFromDbRequest, D>::encode(
7483 (
7484 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7485 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7486 ),
7487 encoder,
7488 offset,
7489 _depth,
7490 )
7491 }
7492 }
7493 unsafe impl<
7494 D: fidl::encoding::ResourceDialect,
7495 T0: fidl::encoding::Encode<Usage, D>,
7496 T1: fidl::encoding::Encode<f32, D>,
7497 > fidl::encoding::Encode<AudioCoreGetVolumeFromDbRequest, D> for (T0, T1)
7498 {
7499 #[inline]
7500 unsafe fn encode(
7501 self,
7502 encoder: &mut fidl::encoding::Encoder<'_, D>,
7503 offset: usize,
7504 depth: fidl::encoding::Depth,
7505 ) -> fidl::Result<()> {
7506 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbRequest>(offset);
7507 unsafe {
7510 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7511 (ptr as *mut u64).write_unaligned(0);
7512 }
7513 self.0.encode(encoder, offset + 0, depth)?;
7515 self.1.encode(encoder, offset + 16, depth)?;
7516 Ok(())
7517 }
7518 }
7519
7520 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7521 for AudioCoreGetVolumeFromDbRequest
7522 {
7523 #[inline(always)]
7524 fn new_empty() -> Self {
7525 Self { usage: fidl::new_empty!(Usage, D), gain_db: fidl::new_empty!(f32, D) }
7526 }
7527
7528 #[inline]
7529 unsafe fn decode(
7530 &mut self,
7531 decoder: &mut fidl::encoding::Decoder<'_, D>,
7532 offset: usize,
7533 _depth: fidl::encoding::Depth,
7534 ) -> fidl::Result<()> {
7535 decoder.debug_check_bounds::<Self>(offset);
7536 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7538 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7539 let mask = 0xffffffff00000000u64;
7540 let maskedval = padval & mask;
7541 if maskedval != 0 {
7542 return Err(fidl::Error::NonZeroPadding {
7543 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7544 });
7545 }
7546 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7547 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 16, _depth)?;
7548 Ok(())
7549 }
7550 }
7551
7552 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDbResponse {
7553 type Borrowed<'a> = &'a Self;
7554 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7555 value
7556 }
7557 }
7558
7559 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDbResponse {
7560 type Owned = Self;
7561
7562 #[inline(always)]
7563 fn inline_align(_context: fidl::encoding::Context) -> usize {
7564 4
7565 }
7566
7567 #[inline(always)]
7568 fn inline_size(_context: fidl::encoding::Context) -> usize {
7569 4
7570 }
7571 }
7572
7573 unsafe impl<D: fidl::encoding::ResourceDialect>
7574 fidl::encoding::Encode<AudioCoreGetVolumeFromDbResponse, D>
7575 for &AudioCoreGetVolumeFromDbResponse
7576 {
7577 #[inline]
7578 unsafe fn encode(
7579 self,
7580 encoder: &mut fidl::encoding::Encoder<'_, D>,
7581 offset: usize,
7582 _depth: fidl::encoding::Depth,
7583 ) -> fidl::Result<()> {
7584 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbResponse>(offset);
7585 fidl::encoding::Encode::<AudioCoreGetVolumeFromDbResponse, D>::encode(
7587 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),),
7588 encoder,
7589 offset,
7590 _depth,
7591 )
7592 }
7593 }
7594 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
7595 fidl::encoding::Encode<AudioCoreGetVolumeFromDbResponse, D> for (T0,)
7596 {
7597 #[inline]
7598 unsafe fn encode(
7599 self,
7600 encoder: &mut fidl::encoding::Encoder<'_, D>,
7601 offset: usize,
7602 depth: fidl::encoding::Depth,
7603 ) -> fidl::Result<()> {
7604 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbResponse>(offset);
7605 self.0.encode(encoder, offset + 0, depth)?;
7609 Ok(())
7610 }
7611 }
7612
7613 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7614 for AudioCoreGetVolumeFromDbResponse
7615 {
7616 #[inline(always)]
7617 fn new_empty() -> Self {
7618 Self { volume: fidl::new_empty!(f32, D) }
7619 }
7620
7621 #[inline]
7622 unsafe fn decode(
7623 &mut self,
7624 decoder: &mut fidl::encoding::Decoder<'_, D>,
7625 offset: usize,
7626 _depth: fidl::encoding::Depth,
7627 ) -> fidl::Result<()> {
7628 decoder.debug_check_bounds::<Self>(offset);
7629 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 0, _depth)?;
7631 Ok(())
7632 }
7633 }
7634
7635 impl fidl::encoding::ValueTypeMarker for AudioCoreSetCaptureUsageGain2Request {
7636 type Borrowed<'a> = &'a Self;
7637 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7638 value
7639 }
7640 }
7641
7642 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetCaptureUsageGain2Request {
7643 type Owned = Self;
7644
7645 #[inline(always)]
7646 fn inline_align(_context: fidl::encoding::Context) -> usize {
7647 4
7648 }
7649
7650 #[inline(always)]
7651 fn inline_size(_context: fidl::encoding::Context) -> usize {
7652 8
7653 }
7654 }
7655
7656 unsafe impl<D: fidl::encoding::ResourceDialect>
7657 fidl::encoding::Encode<AudioCoreSetCaptureUsageGain2Request, D>
7658 for &AudioCoreSetCaptureUsageGain2Request
7659 {
7660 #[inline]
7661 unsafe fn encode(
7662 self,
7663 encoder: &mut fidl::encoding::Encoder<'_, D>,
7664 offset: usize,
7665 _depth: fidl::encoding::Depth,
7666 ) -> fidl::Result<()> {
7667 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGain2Request>(offset);
7668 fidl::encoding::Encode::<AudioCoreSetCaptureUsageGain2Request, D>::encode(
7670 (
7671 <AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7672 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7673 ),
7674 encoder,
7675 offset,
7676 _depth,
7677 )
7678 }
7679 }
7680 unsafe impl<
7681 D: fidl::encoding::ResourceDialect,
7682 T0: fidl::encoding::Encode<AudioCaptureUsage2, D>,
7683 T1: fidl::encoding::Encode<f32, D>,
7684 > fidl::encoding::Encode<AudioCoreSetCaptureUsageGain2Request, D> for (T0, T1)
7685 {
7686 #[inline]
7687 unsafe fn encode(
7688 self,
7689 encoder: &mut fidl::encoding::Encoder<'_, D>,
7690 offset: usize,
7691 depth: fidl::encoding::Depth,
7692 ) -> fidl::Result<()> {
7693 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGain2Request>(offset);
7694 self.0.encode(encoder, offset + 0, depth)?;
7698 self.1.encode(encoder, offset + 4, depth)?;
7699 Ok(())
7700 }
7701 }
7702
7703 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7704 for AudioCoreSetCaptureUsageGain2Request
7705 {
7706 #[inline(always)]
7707 fn new_empty() -> Self {
7708 Self {
7709 usage: fidl::new_empty!(AudioCaptureUsage2, D),
7710 gain_db: fidl::new_empty!(f32, D),
7711 }
7712 }
7713
7714 #[inline]
7715 unsafe fn decode(
7716 &mut self,
7717 decoder: &mut fidl::encoding::Decoder<'_, D>,
7718 offset: usize,
7719 _depth: fidl::encoding::Depth,
7720 ) -> fidl::Result<()> {
7721 decoder.debug_check_bounds::<Self>(offset);
7722 fidl::decode!(AudioCaptureUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7724 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
7725 Ok(())
7726 }
7727 }
7728
7729 impl fidl::encoding::ValueTypeMarker for AudioCoreSetCaptureUsageGainRequest {
7730 type Borrowed<'a> = &'a Self;
7731 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7732 value
7733 }
7734 }
7735
7736 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetCaptureUsageGainRequest {
7737 type Owned = Self;
7738
7739 #[inline(always)]
7740 fn inline_align(_context: fidl::encoding::Context) -> usize {
7741 4
7742 }
7743
7744 #[inline(always)]
7745 fn inline_size(_context: fidl::encoding::Context) -> usize {
7746 8
7747 }
7748 }
7749
7750 unsafe impl<D: fidl::encoding::ResourceDialect>
7751 fidl::encoding::Encode<AudioCoreSetCaptureUsageGainRequest, D>
7752 for &AudioCoreSetCaptureUsageGainRequest
7753 {
7754 #[inline]
7755 unsafe fn encode(
7756 self,
7757 encoder: &mut fidl::encoding::Encoder<'_, D>,
7758 offset: usize,
7759 _depth: fidl::encoding::Depth,
7760 ) -> fidl::Result<()> {
7761 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGainRequest>(offset);
7762 fidl::encoding::Encode::<AudioCoreSetCaptureUsageGainRequest, D>::encode(
7764 (
7765 <AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7766 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7767 ),
7768 encoder,
7769 offset,
7770 _depth,
7771 )
7772 }
7773 }
7774 unsafe impl<
7775 D: fidl::encoding::ResourceDialect,
7776 T0: fidl::encoding::Encode<AudioCaptureUsage, D>,
7777 T1: fidl::encoding::Encode<f32, D>,
7778 > fidl::encoding::Encode<AudioCoreSetCaptureUsageGainRequest, D> for (T0, T1)
7779 {
7780 #[inline]
7781 unsafe fn encode(
7782 self,
7783 encoder: &mut fidl::encoding::Encoder<'_, D>,
7784 offset: usize,
7785 depth: fidl::encoding::Depth,
7786 ) -> fidl::Result<()> {
7787 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGainRequest>(offset);
7788 self.0.encode(encoder, offset + 0, depth)?;
7792 self.1.encode(encoder, offset + 4, depth)?;
7793 Ok(())
7794 }
7795 }
7796
7797 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7798 for AudioCoreSetCaptureUsageGainRequest
7799 {
7800 #[inline(always)]
7801 fn new_empty() -> Self {
7802 Self {
7803 usage: fidl::new_empty!(AudioCaptureUsage, D),
7804 gain_db: fidl::new_empty!(f32, D),
7805 }
7806 }
7807
7808 #[inline]
7809 unsafe fn decode(
7810 &mut self,
7811 decoder: &mut fidl::encoding::Decoder<'_, D>,
7812 offset: usize,
7813 _depth: fidl::encoding::Depth,
7814 ) -> fidl::Result<()> {
7815 decoder.debug_check_bounds::<Self>(offset);
7816 fidl::decode!(AudioCaptureUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7818 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
7819 Ok(())
7820 }
7821 }
7822
7823 impl fidl::encoding::ValueTypeMarker for AudioCoreSetInteraction2Request {
7824 type Borrowed<'a> = &'a Self;
7825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7826 value
7827 }
7828 }
7829
7830 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetInteraction2Request {
7831 type Owned = Self;
7832
7833 #[inline(always)]
7834 fn inline_align(_context: fidl::encoding::Context) -> usize {
7835 8
7836 }
7837
7838 #[inline(always)]
7839 fn inline_size(_context: fidl::encoding::Context) -> usize {
7840 40
7841 }
7842 }
7843
7844 unsafe impl<D: fidl::encoding::ResourceDialect>
7845 fidl::encoding::Encode<AudioCoreSetInteraction2Request, D>
7846 for &AudioCoreSetInteraction2Request
7847 {
7848 #[inline]
7849 unsafe fn encode(
7850 self,
7851 encoder: &mut fidl::encoding::Encoder<'_, D>,
7852 offset: usize,
7853 _depth: fidl::encoding::Depth,
7854 ) -> fidl::Result<()> {
7855 encoder.debug_check_bounds::<AudioCoreSetInteraction2Request>(offset);
7856 fidl::encoding::Encode::<AudioCoreSetInteraction2Request, D>::encode(
7858 (
7859 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.active),
7860 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.affected),
7861 <Behavior as fidl::encoding::ValueTypeMarker>::borrow(&self.behavior),
7862 ),
7863 encoder,
7864 offset,
7865 _depth,
7866 )
7867 }
7868 }
7869 unsafe impl<
7870 D: fidl::encoding::ResourceDialect,
7871 T0: fidl::encoding::Encode<Usage2, D>,
7872 T1: fidl::encoding::Encode<Usage2, D>,
7873 T2: fidl::encoding::Encode<Behavior, D>,
7874 > fidl::encoding::Encode<AudioCoreSetInteraction2Request, D> for (T0, T1, T2)
7875 {
7876 #[inline]
7877 unsafe fn encode(
7878 self,
7879 encoder: &mut fidl::encoding::Encoder<'_, D>,
7880 offset: usize,
7881 depth: fidl::encoding::Depth,
7882 ) -> fidl::Result<()> {
7883 encoder.debug_check_bounds::<AudioCoreSetInteraction2Request>(offset);
7884 unsafe {
7887 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
7888 (ptr as *mut u64).write_unaligned(0);
7889 }
7890 self.0.encode(encoder, offset + 0, depth)?;
7892 self.1.encode(encoder, offset + 16, depth)?;
7893 self.2.encode(encoder, offset + 32, depth)?;
7894 Ok(())
7895 }
7896 }
7897
7898 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7899 for AudioCoreSetInteraction2Request
7900 {
7901 #[inline(always)]
7902 fn new_empty() -> Self {
7903 Self {
7904 active: fidl::new_empty!(Usage2, D),
7905 affected: fidl::new_empty!(Usage2, D),
7906 behavior: fidl::new_empty!(Behavior, D),
7907 }
7908 }
7909
7910 #[inline]
7911 unsafe fn decode(
7912 &mut self,
7913 decoder: &mut fidl::encoding::Decoder<'_, D>,
7914 offset: usize,
7915 _depth: fidl::encoding::Depth,
7916 ) -> fidl::Result<()> {
7917 decoder.debug_check_bounds::<Self>(offset);
7918 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
7920 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7921 let mask = 0xffffffff00000000u64;
7922 let maskedval = padval & mask;
7923 if maskedval != 0 {
7924 return Err(fidl::Error::NonZeroPadding {
7925 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
7926 });
7927 }
7928 fidl::decode!(Usage2, D, &mut self.active, decoder, offset + 0, _depth)?;
7929 fidl::decode!(Usage2, D, &mut self.affected, decoder, offset + 16, _depth)?;
7930 fidl::decode!(Behavior, D, &mut self.behavior, decoder, offset + 32, _depth)?;
7931 Ok(())
7932 }
7933 }
7934
7935 impl fidl::encoding::ValueTypeMarker for AudioCoreSetInteractionRequest {
7936 type Borrowed<'a> = &'a Self;
7937 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7938 value
7939 }
7940 }
7941
7942 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetInteractionRequest {
7943 type Owned = Self;
7944
7945 #[inline(always)]
7946 fn inline_align(_context: fidl::encoding::Context) -> usize {
7947 8
7948 }
7949
7950 #[inline(always)]
7951 fn inline_size(_context: fidl::encoding::Context) -> usize {
7952 40
7953 }
7954 }
7955
7956 unsafe impl<D: fidl::encoding::ResourceDialect>
7957 fidl::encoding::Encode<AudioCoreSetInteractionRequest, D>
7958 for &AudioCoreSetInteractionRequest
7959 {
7960 #[inline]
7961 unsafe fn encode(
7962 self,
7963 encoder: &mut fidl::encoding::Encoder<'_, D>,
7964 offset: usize,
7965 _depth: fidl::encoding::Depth,
7966 ) -> fidl::Result<()> {
7967 encoder.debug_check_bounds::<AudioCoreSetInteractionRequest>(offset);
7968 fidl::encoding::Encode::<AudioCoreSetInteractionRequest, D>::encode(
7970 (
7971 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.active),
7972 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.affected),
7973 <Behavior as fidl::encoding::ValueTypeMarker>::borrow(&self.behavior),
7974 ),
7975 encoder,
7976 offset,
7977 _depth,
7978 )
7979 }
7980 }
7981 unsafe impl<
7982 D: fidl::encoding::ResourceDialect,
7983 T0: fidl::encoding::Encode<Usage, D>,
7984 T1: fidl::encoding::Encode<Usage, D>,
7985 T2: fidl::encoding::Encode<Behavior, D>,
7986 > fidl::encoding::Encode<AudioCoreSetInteractionRequest, D> for (T0, T1, T2)
7987 {
7988 #[inline]
7989 unsafe fn encode(
7990 self,
7991 encoder: &mut fidl::encoding::Encoder<'_, D>,
7992 offset: usize,
7993 depth: fidl::encoding::Depth,
7994 ) -> fidl::Result<()> {
7995 encoder.debug_check_bounds::<AudioCoreSetInteractionRequest>(offset);
7996 unsafe {
7999 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
8000 (ptr as *mut u64).write_unaligned(0);
8001 }
8002 self.0.encode(encoder, offset + 0, depth)?;
8004 self.1.encode(encoder, offset + 16, depth)?;
8005 self.2.encode(encoder, offset + 32, depth)?;
8006 Ok(())
8007 }
8008 }
8009
8010 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8011 for AudioCoreSetInteractionRequest
8012 {
8013 #[inline(always)]
8014 fn new_empty() -> Self {
8015 Self {
8016 active: fidl::new_empty!(Usage, D),
8017 affected: fidl::new_empty!(Usage, D),
8018 behavior: fidl::new_empty!(Behavior, D),
8019 }
8020 }
8021
8022 #[inline]
8023 unsafe fn decode(
8024 &mut self,
8025 decoder: &mut fidl::encoding::Decoder<'_, D>,
8026 offset: usize,
8027 _depth: fidl::encoding::Depth,
8028 ) -> fidl::Result<()> {
8029 decoder.debug_check_bounds::<Self>(offset);
8030 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
8032 let padval = unsafe { (ptr as *const u64).read_unaligned() };
8033 let mask = 0xffffffff00000000u64;
8034 let maskedval = padval & mask;
8035 if maskedval != 0 {
8036 return Err(fidl::Error::NonZeroPadding {
8037 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
8038 });
8039 }
8040 fidl::decode!(Usage, D, &mut self.active, decoder, offset + 0, _depth)?;
8041 fidl::decode!(Usage, D, &mut self.affected, decoder, offset + 16, _depth)?;
8042 fidl::decode!(Behavior, D, &mut self.behavior, decoder, offset + 32, _depth)?;
8043 Ok(())
8044 }
8045 }
8046
8047 impl fidl::encoding::ValueTypeMarker for AudioCoreSetRenderUsageGain2Request {
8048 type Borrowed<'a> = &'a Self;
8049 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8050 value
8051 }
8052 }
8053
8054 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetRenderUsageGain2Request {
8055 type Owned = Self;
8056
8057 #[inline(always)]
8058 fn inline_align(_context: fidl::encoding::Context) -> usize {
8059 4
8060 }
8061
8062 #[inline(always)]
8063 fn inline_size(_context: fidl::encoding::Context) -> usize {
8064 8
8065 }
8066 }
8067
8068 unsafe impl<D: fidl::encoding::ResourceDialect>
8069 fidl::encoding::Encode<AudioCoreSetRenderUsageGain2Request, D>
8070 for &AudioCoreSetRenderUsageGain2Request
8071 {
8072 #[inline]
8073 unsafe fn encode(
8074 self,
8075 encoder: &mut fidl::encoding::Encoder<'_, D>,
8076 offset: usize,
8077 _depth: fidl::encoding::Depth,
8078 ) -> fidl::Result<()> {
8079 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGain2Request>(offset);
8080 fidl::encoding::Encode::<AudioCoreSetRenderUsageGain2Request, D>::encode(
8082 (
8083 <AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
8084 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
8085 ),
8086 encoder,
8087 offset,
8088 _depth,
8089 )
8090 }
8091 }
8092 unsafe impl<
8093 D: fidl::encoding::ResourceDialect,
8094 T0: fidl::encoding::Encode<AudioRenderUsage2, D>,
8095 T1: fidl::encoding::Encode<f32, D>,
8096 > fidl::encoding::Encode<AudioCoreSetRenderUsageGain2Request, D> for (T0, T1)
8097 {
8098 #[inline]
8099 unsafe fn encode(
8100 self,
8101 encoder: &mut fidl::encoding::Encoder<'_, D>,
8102 offset: usize,
8103 depth: fidl::encoding::Depth,
8104 ) -> fidl::Result<()> {
8105 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGain2Request>(offset);
8106 self.0.encode(encoder, offset + 0, depth)?;
8110 self.1.encode(encoder, offset + 4, depth)?;
8111 Ok(())
8112 }
8113 }
8114
8115 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8116 for AudioCoreSetRenderUsageGain2Request
8117 {
8118 #[inline(always)]
8119 fn new_empty() -> Self {
8120 Self {
8121 usage: fidl::new_empty!(AudioRenderUsage2, D),
8122 gain_db: fidl::new_empty!(f32, D),
8123 }
8124 }
8125
8126 #[inline]
8127 unsafe fn decode(
8128 &mut self,
8129 decoder: &mut fidl::encoding::Decoder<'_, D>,
8130 offset: usize,
8131 _depth: fidl::encoding::Depth,
8132 ) -> fidl::Result<()> {
8133 decoder.debug_check_bounds::<Self>(offset);
8134 fidl::decode!(AudioRenderUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
8136 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
8137 Ok(())
8138 }
8139 }
8140
8141 impl fidl::encoding::ValueTypeMarker for AudioCoreSetRenderUsageGainRequest {
8142 type Borrowed<'a> = &'a Self;
8143 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8144 value
8145 }
8146 }
8147
8148 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetRenderUsageGainRequest {
8149 type Owned = Self;
8150
8151 #[inline(always)]
8152 fn inline_align(_context: fidl::encoding::Context) -> usize {
8153 4
8154 }
8155
8156 #[inline(always)]
8157 fn inline_size(_context: fidl::encoding::Context) -> usize {
8158 8
8159 }
8160 }
8161
8162 unsafe impl<D: fidl::encoding::ResourceDialect>
8163 fidl::encoding::Encode<AudioCoreSetRenderUsageGainRequest, D>
8164 for &AudioCoreSetRenderUsageGainRequest
8165 {
8166 #[inline]
8167 unsafe fn encode(
8168 self,
8169 encoder: &mut fidl::encoding::Encoder<'_, D>,
8170 offset: usize,
8171 _depth: fidl::encoding::Depth,
8172 ) -> fidl::Result<()> {
8173 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGainRequest>(offset);
8174 fidl::encoding::Encode::<AudioCoreSetRenderUsageGainRequest, D>::encode(
8176 (
8177 <AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
8178 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
8179 ),
8180 encoder,
8181 offset,
8182 _depth,
8183 )
8184 }
8185 }
8186 unsafe impl<
8187 D: fidl::encoding::ResourceDialect,
8188 T0: fidl::encoding::Encode<AudioRenderUsage, D>,
8189 T1: fidl::encoding::Encode<f32, D>,
8190 > fidl::encoding::Encode<AudioCoreSetRenderUsageGainRequest, D> for (T0, T1)
8191 {
8192 #[inline]
8193 unsafe fn encode(
8194 self,
8195 encoder: &mut fidl::encoding::Encoder<'_, D>,
8196 offset: usize,
8197 depth: fidl::encoding::Depth,
8198 ) -> fidl::Result<()> {
8199 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGainRequest>(offset);
8200 self.0.encode(encoder, offset + 0, depth)?;
8204 self.1.encode(encoder, offset + 4, depth)?;
8205 Ok(())
8206 }
8207 }
8208
8209 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8210 for AudioCoreSetRenderUsageGainRequest
8211 {
8212 #[inline(always)]
8213 fn new_empty() -> Self {
8214 Self { usage: fidl::new_empty!(AudioRenderUsage, D), gain_db: fidl::new_empty!(f32, D) }
8215 }
8216
8217 #[inline]
8218 unsafe fn decode(
8219 &mut self,
8220 decoder: &mut fidl::encoding::Decoder<'_, D>,
8221 offset: usize,
8222 _depth: fidl::encoding::Depth,
8223 ) -> fidl::Result<()> {
8224 decoder.debug_check_bounds::<Self>(offset);
8225 fidl::decode!(AudioRenderUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
8227 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
8228 Ok(())
8229 }
8230 }
8231
8232 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolume2Response {
8233 type Borrowed<'a> = &'a Self;
8234 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8235 value
8236 }
8237 }
8238
8239 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolume2Response {
8240 type Owned = Self;
8241
8242 #[inline(always)]
8243 fn inline_align(_context: fidl::encoding::Context) -> usize {
8244 4
8245 }
8246
8247 #[inline(always)]
8248 fn inline_size(_context: fidl::encoding::Context) -> usize {
8249 4
8250 }
8251 }
8252
8253 unsafe impl<D: fidl::encoding::ResourceDialect>
8254 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Response, D>
8255 for &AudioCoreGetDbFromVolume2Response
8256 {
8257 #[inline]
8258 unsafe fn encode(
8259 self,
8260 encoder: &mut fidl::encoding::Encoder<'_, D>,
8261 offset: usize,
8262 _depth: fidl::encoding::Depth,
8263 ) -> fidl::Result<()> {
8264 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Response>(offset);
8265 fidl::encoding::Encode::<AudioCoreGetDbFromVolume2Response, D>::encode(
8267 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),),
8268 encoder,
8269 offset,
8270 _depth,
8271 )
8272 }
8273 }
8274 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
8275 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Response, D> for (T0,)
8276 {
8277 #[inline]
8278 unsafe fn encode(
8279 self,
8280 encoder: &mut fidl::encoding::Encoder<'_, D>,
8281 offset: usize,
8282 depth: fidl::encoding::Depth,
8283 ) -> fidl::Result<()> {
8284 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Response>(offset);
8285 self.0.encode(encoder, offset + 0, depth)?;
8289 Ok(())
8290 }
8291 }
8292
8293 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8294 for AudioCoreGetDbFromVolume2Response
8295 {
8296 #[inline(always)]
8297 fn new_empty() -> Self {
8298 Self { gain_db: fidl::new_empty!(f32, D) }
8299 }
8300
8301 #[inline]
8302 unsafe fn decode(
8303 &mut self,
8304 decoder: &mut fidl::encoding::Decoder<'_, D>,
8305 offset: usize,
8306 _depth: fidl::encoding::Depth,
8307 ) -> fidl::Result<()> {
8308 decoder.debug_check_bounds::<Self>(offset);
8309 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
8311 Ok(())
8312 }
8313 }
8314
8315 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDb2Response {
8316 type Borrowed<'a> = &'a Self;
8317 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8318 value
8319 }
8320 }
8321
8322 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDb2Response {
8323 type Owned = Self;
8324
8325 #[inline(always)]
8326 fn inline_align(_context: fidl::encoding::Context) -> usize {
8327 4
8328 }
8329
8330 #[inline(always)]
8331 fn inline_size(_context: fidl::encoding::Context) -> usize {
8332 4
8333 }
8334 }
8335
8336 unsafe impl<D: fidl::encoding::ResourceDialect>
8337 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Response, D>
8338 for &AudioCoreGetVolumeFromDb2Response
8339 {
8340 #[inline]
8341 unsafe fn encode(
8342 self,
8343 encoder: &mut fidl::encoding::Encoder<'_, D>,
8344 offset: usize,
8345 _depth: fidl::encoding::Depth,
8346 ) -> fidl::Result<()> {
8347 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Response>(offset);
8348 fidl::encoding::Encode::<AudioCoreGetVolumeFromDb2Response, D>::encode(
8350 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),),
8351 encoder,
8352 offset,
8353 _depth,
8354 )
8355 }
8356 }
8357 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
8358 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Response, D> for (T0,)
8359 {
8360 #[inline]
8361 unsafe fn encode(
8362 self,
8363 encoder: &mut fidl::encoding::Encoder<'_, D>,
8364 offset: usize,
8365 depth: fidl::encoding::Depth,
8366 ) -> fidl::Result<()> {
8367 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Response>(offset);
8368 self.0.encode(encoder, offset + 0, depth)?;
8372 Ok(())
8373 }
8374 }
8375
8376 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8377 for AudioCoreGetVolumeFromDb2Response
8378 {
8379 #[inline(always)]
8380 fn new_empty() -> Self {
8381 Self { volume: fidl::new_empty!(f32, D) }
8382 }
8383
8384 #[inline]
8385 unsafe fn decode(
8386 &mut self,
8387 decoder: &mut fidl::encoding::Decoder<'_, D>,
8388 offset: usize,
8389 _depth: fidl::encoding::Depth,
8390 ) -> fidl::Result<()> {
8391 decoder.debug_check_bounds::<Self>(offset);
8392 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 0, _depth)?;
8394 Ok(())
8395 }
8396 }
8397
8398 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDeviceGainRequest {
8399 type Borrowed<'a> = &'a Self;
8400 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8401 value
8402 }
8403 }
8404
8405 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDeviceGainRequest {
8406 type Owned = Self;
8407
8408 #[inline(always)]
8409 fn inline_align(_context: fidl::encoding::Context) -> usize {
8410 8
8411 }
8412
8413 #[inline(always)]
8414 fn inline_size(_context: fidl::encoding::Context) -> usize {
8415 8
8416 }
8417 #[inline(always)]
8418 fn encode_is_copy() -> bool {
8419 true
8420 }
8421
8422 #[inline(always)]
8423 fn decode_is_copy() -> bool {
8424 true
8425 }
8426 }
8427
8428 unsafe impl<D: fidl::encoding::ResourceDialect>
8429 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainRequest, D>
8430 for &AudioDeviceEnumeratorGetDeviceGainRequest
8431 {
8432 #[inline]
8433 unsafe fn encode(
8434 self,
8435 encoder: &mut fidl::encoding::Encoder<'_, D>,
8436 offset: usize,
8437 _depth: fidl::encoding::Depth,
8438 ) -> fidl::Result<()> {
8439 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainRequest>(offset);
8440 unsafe {
8441 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8443 (buf_ptr as *mut AudioDeviceEnumeratorGetDeviceGainRequest).write_unaligned(
8444 (self as *const AudioDeviceEnumeratorGetDeviceGainRequest).read(),
8445 );
8446 }
8449 Ok(())
8450 }
8451 }
8452 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
8453 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainRequest, D> for (T0,)
8454 {
8455 #[inline]
8456 unsafe fn encode(
8457 self,
8458 encoder: &mut fidl::encoding::Encoder<'_, D>,
8459 offset: usize,
8460 depth: fidl::encoding::Depth,
8461 ) -> fidl::Result<()> {
8462 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainRequest>(offset);
8463 self.0.encode(encoder, offset + 0, depth)?;
8467 Ok(())
8468 }
8469 }
8470
8471 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8472 for AudioDeviceEnumeratorGetDeviceGainRequest
8473 {
8474 #[inline(always)]
8475 fn new_empty() -> Self {
8476 Self { device_token: fidl::new_empty!(u64, D) }
8477 }
8478
8479 #[inline]
8480 unsafe fn decode(
8481 &mut self,
8482 decoder: &mut fidl::encoding::Decoder<'_, D>,
8483 offset: usize,
8484 _depth: fidl::encoding::Depth,
8485 ) -> fidl::Result<()> {
8486 decoder.debug_check_bounds::<Self>(offset);
8487 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8488 unsafe {
8491 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
8492 }
8493 Ok(())
8494 }
8495 }
8496
8497 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDeviceGainResponse {
8498 type Borrowed<'a> = &'a Self;
8499 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8500 value
8501 }
8502 }
8503
8504 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDeviceGainResponse {
8505 type Owned = Self;
8506
8507 #[inline(always)]
8508 fn inline_align(_context: fidl::encoding::Context) -> usize {
8509 8
8510 }
8511
8512 #[inline(always)]
8513 fn inline_size(_context: fidl::encoding::Context) -> usize {
8514 16
8515 }
8516 }
8517
8518 unsafe impl<D: fidl::encoding::ResourceDialect>
8519 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainResponse, D>
8520 for &AudioDeviceEnumeratorGetDeviceGainResponse
8521 {
8522 #[inline]
8523 unsafe fn encode(
8524 self,
8525 encoder: &mut fidl::encoding::Encoder<'_, D>,
8526 offset: usize,
8527 _depth: fidl::encoding::Depth,
8528 ) -> fidl::Result<()> {
8529 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainResponse>(offset);
8530 fidl::encoding::Encode::<AudioDeviceEnumeratorGetDeviceGainResponse, D>::encode(
8532 (
8533 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
8534 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
8535 ),
8536 encoder,
8537 offset,
8538 _depth,
8539 )
8540 }
8541 }
8542 unsafe impl<
8543 D: fidl::encoding::ResourceDialect,
8544 T0: fidl::encoding::Encode<u64, D>,
8545 T1: fidl::encoding::Encode<AudioGainInfo, D>,
8546 > fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainResponse, D> for (T0, T1)
8547 {
8548 #[inline]
8549 unsafe fn encode(
8550 self,
8551 encoder: &mut fidl::encoding::Encoder<'_, D>,
8552 offset: usize,
8553 depth: fidl::encoding::Depth,
8554 ) -> fidl::Result<()> {
8555 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainResponse>(offset);
8556 self.0.encode(encoder, offset + 0, depth)?;
8560 self.1.encode(encoder, offset + 8, depth)?;
8561 Ok(())
8562 }
8563 }
8564
8565 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8566 for AudioDeviceEnumeratorGetDeviceGainResponse
8567 {
8568 #[inline(always)]
8569 fn new_empty() -> Self {
8570 Self {
8571 device_token: fidl::new_empty!(u64, D),
8572 gain_info: fidl::new_empty!(AudioGainInfo, D),
8573 }
8574 }
8575
8576 #[inline]
8577 unsafe fn decode(
8578 &mut self,
8579 decoder: &mut fidl::encoding::Decoder<'_, D>,
8580 offset: usize,
8581 _depth: fidl::encoding::Depth,
8582 ) -> fidl::Result<()> {
8583 decoder.debug_check_bounds::<Self>(offset);
8584 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
8586 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
8587 Ok(())
8588 }
8589 }
8590
8591 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDevicesResponse {
8592 type Borrowed<'a> = &'a Self;
8593 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8594 value
8595 }
8596 }
8597
8598 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDevicesResponse {
8599 type Owned = Self;
8600
8601 #[inline(always)]
8602 fn inline_align(_context: fidl::encoding::Context) -> usize {
8603 8
8604 }
8605
8606 #[inline(always)]
8607 fn inline_size(_context: fidl::encoding::Context) -> usize {
8608 16
8609 }
8610 }
8611
8612 unsafe impl<D: fidl::encoding::ResourceDialect>
8613 fidl::encoding::Encode<AudioDeviceEnumeratorGetDevicesResponse, D>
8614 for &AudioDeviceEnumeratorGetDevicesResponse
8615 {
8616 #[inline]
8617 unsafe fn encode(
8618 self,
8619 encoder: &mut fidl::encoding::Encoder<'_, D>,
8620 offset: usize,
8621 _depth: fidl::encoding::Depth,
8622 ) -> fidl::Result<()> {
8623 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDevicesResponse>(offset);
8624 fidl::encoding::Encode::<AudioDeviceEnumeratorGetDevicesResponse, D>::encode(
8626 (
8627 <fidl::encoding::UnboundedVector<AudioDeviceInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.devices),
8628 ),
8629 encoder, offset, _depth
8630 )
8631 }
8632 }
8633 unsafe impl<
8634 D: fidl::encoding::ResourceDialect,
8635 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<AudioDeviceInfo>, D>,
8636 > fidl::encoding::Encode<AudioDeviceEnumeratorGetDevicesResponse, D> for (T0,)
8637 {
8638 #[inline]
8639 unsafe fn encode(
8640 self,
8641 encoder: &mut fidl::encoding::Encoder<'_, D>,
8642 offset: usize,
8643 depth: fidl::encoding::Depth,
8644 ) -> fidl::Result<()> {
8645 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDevicesResponse>(offset);
8646 self.0.encode(encoder, offset + 0, depth)?;
8650 Ok(())
8651 }
8652 }
8653
8654 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8655 for AudioDeviceEnumeratorGetDevicesResponse
8656 {
8657 #[inline(always)]
8658 fn new_empty() -> Self {
8659 Self { devices: fidl::new_empty!(fidl::encoding::UnboundedVector<AudioDeviceInfo>, D) }
8660 }
8661
8662 #[inline]
8663 unsafe fn decode(
8664 &mut self,
8665 decoder: &mut fidl::encoding::Decoder<'_, D>,
8666 offset: usize,
8667 _depth: fidl::encoding::Depth,
8668 ) -> fidl::Result<()> {
8669 decoder.debug_check_bounds::<Self>(offset);
8670 fidl::decode!(
8672 fidl::encoding::UnboundedVector<AudioDeviceInfo>,
8673 D,
8674 &mut self.devices,
8675 decoder,
8676 offset + 0,
8677 _depth
8678 )?;
8679 Ok(())
8680 }
8681 }
8682
8683 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
8684 type Borrowed<'a> = &'a Self;
8685 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8686 value
8687 }
8688 }
8689
8690 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
8691 type Owned = Self;
8692
8693 #[inline(always)]
8694 fn inline_align(_context: fidl::encoding::Context) -> usize {
8695 8
8696 }
8697
8698 #[inline(always)]
8699 fn inline_size(_context: fidl::encoding::Context) -> usize {
8700 16
8701 }
8702 #[inline(always)]
8703 fn encode_is_copy() -> bool {
8704 true
8705 }
8706
8707 #[inline(always)]
8708 fn decode_is_copy() -> bool {
8709 true
8710 }
8711 }
8712
8713 unsafe impl<D: fidl::encoding::ResourceDialect>
8714 fidl::encoding::Encode<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest, D>
8715 for &AudioDeviceEnumeratorOnDefaultDeviceChangedRequest
8716 {
8717 #[inline]
8718 unsafe fn encode(
8719 self,
8720 encoder: &mut fidl::encoding::Encoder<'_, D>,
8721 offset: usize,
8722 _depth: fidl::encoding::Depth,
8723 ) -> fidl::Result<()> {
8724 encoder
8725 .debug_check_bounds::<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest>(offset);
8726 unsafe {
8727 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8729 (buf_ptr as *mut AudioDeviceEnumeratorOnDefaultDeviceChangedRequest)
8730 .write_unaligned(
8731 (self as *const AudioDeviceEnumeratorOnDefaultDeviceChangedRequest).read(),
8732 );
8733 }
8736 Ok(())
8737 }
8738 }
8739 unsafe impl<
8740 D: fidl::encoding::ResourceDialect,
8741 T0: fidl::encoding::Encode<u64, D>,
8742 T1: fidl::encoding::Encode<u64, D>,
8743 > fidl::encoding::Encode<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest, D> for (T0, T1)
8744 {
8745 #[inline]
8746 unsafe fn encode(
8747 self,
8748 encoder: &mut fidl::encoding::Encoder<'_, D>,
8749 offset: usize,
8750 depth: fidl::encoding::Depth,
8751 ) -> fidl::Result<()> {
8752 encoder
8753 .debug_check_bounds::<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest>(offset);
8754 self.0.encode(encoder, offset + 0, depth)?;
8758 self.1.encode(encoder, offset + 8, depth)?;
8759 Ok(())
8760 }
8761 }
8762
8763 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8764 for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest
8765 {
8766 #[inline(always)]
8767 fn new_empty() -> Self {
8768 Self {
8769 old_default_token: fidl::new_empty!(u64, D),
8770 new_default_token: fidl::new_empty!(u64, D),
8771 }
8772 }
8773
8774 #[inline]
8775 unsafe fn decode(
8776 &mut self,
8777 decoder: &mut fidl::encoding::Decoder<'_, D>,
8778 offset: usize,
8779 _depth: fidl::encoding::Depth,
8780 ) -> fidl::Result<()> {
8781 decoder.debug_check_bounds::<Self>(offset);
8782 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8783 unsafe {
8786 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
8787 }
8788 Ok(())
8789 }
8790 }
8791
8792 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceAddedRequest {
8793 type Borrowed<'a> = &'a Self;
8794 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8795 value
8796 }
8797 }
8798
8799 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceAddedRequest {
8800 type Owned = Self;
8801
8802 #[inline(always)]
8803 fn inline_align(_context: fidl::encoding::Context) -> usize {
8804 8
8805 }
8806
8807 #[inline(always)]
8808 fn inline_size(_context: fidl::encoding::Context) -> usize {
8809 56
8810 }
8811 }
8812
8813 unsafe impl<D: fidl::encoding::ResourceDialect>
8814 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceAddedRequest, D>
8815 for &AudioDeviceEnumeratorOnDeviceAddedRequest
8816 {
8817 #[inline]
8818 unsafe fn encode(
8819 self,
8820 encoder: &mut fidl::encoding::Encoder<'_, D>,
8821 offset: usize,
8822 _depth: fidl::encoding::Depth,
8823 ) -> fidl::Result<()> {
8824 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceAddedRequest>(offset);
8825 fidl::encoding::Encode::<AudioDeviceEnumeratorOnDeviceAddedRequest, D>::encode(
8827 (<AudioDeviceInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
8828 encoder,
8829 offset,
8830 _depth,
8831 )
8832 }
8833 }
8834 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioDeviceInfo, D>>
8835 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceAddedRequest, D> for (T0,)
8836 {
8837 #[inline]
8838 unsafe fn encode(
8839 self,
8840 encoder: &mut fidl::encoding::Encoder<'_, D>,
8841 offset: usize,
8842 depth: fidl::encoding::Depth,
8843 ) -> fidl::Result<()> {
8844 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceAddedRequest>(offset);
8845 self.0.encode(encoder, offset + 0, depth)?;
8849 Ok(())
8850 }
8851 }
8852
8853 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8854 for AudioDeviceEnumeratorOnDeviceAddedRequest
8855 {
8856 #[inline(always)]
8857 fn new_empty() -> Self {
8858 Self { device: fidl::new_empty!(AudioDeviceInfo, D) }
8859 }
8860
8861 #[inline]
8862 unsafe fn decode(
8863 &mut self,
8864 decoder: &mut fidl::encoding::Decoder<'_, D>,
8865 offset: usize,
8866 _depth: fidl::encoding::Depth,
8867 ) -> fidl::Result<()> {
8868 decoder.debug_check_bounds::<Self>(offset);
8869 fidl::decode!(AudioDeviceInfo, D, &mut self.device, decoder, offset + 0, _depth)?;
8871 Ok(())
8872 }
8873 }
8874
8875 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceGainChangedRequest {
8876 type Borrowed<'a> = &'a Self;
8877 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8878 value
8879 }
8880 }
8881
8882 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceGainChangedRequest {
8883 type Owned = Self;
8884
8885 #[inline(always)]
8886 fn inline_align(_context: fidl::encoding::Context) -> usize {
8887 8
8888 }
8889
8890 #[inline(always)]
8891 fn inline_size(_context: fidl::encoding::Context) -> usize {
8892 16
8893 }
8894 }
8895
8896 unsafe impl<D: fidl::encoding::ResourceDialect>
8897 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D>
8898 for &AudioDeviceEnumeratorOnDeviceGainChangedRequest
8899 {
8900 #[inline]
8901 unsafe fn encode(
8902 self,
8903 encoder: &mut fidl::encoding::Encoder<'_, D>,
8904 offset: usize,
8905 _depth: fidl::encoding::Depth,
8906 ) -> fidl::Result<()> {
8907 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceGainChangedRequest>(offset);
8908 fidl::encoding::Encode::<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D>::encode(
8910 (
8911 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
8912 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
8913 ),
8914 encoder,
8915 offset,
8916 _depth,
8917 )
8918 }
8919 }
8920 unsafe impl<
8921 D: fidl::encoding::ResourceDialect,
8922 T0: fidl::encoding::Encode<u64, D>,
8923 T1: fidl::encoding::Encode<AudioGainInfo, D>,
8924 > fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D> for (T0, T1)
8925 {
8926 #[inline]
8927 unsafe fn encode(
8928 self,
8929 encoder: &mut fidl::encoding::Encoder<'_, D>,
8930 offset: usize,
8931 depth: fidl::encoding::Depth,
8932 ) -> fidl::Result<()> {
8933 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceGainChangedRequest>(offset);
8934 self.0.encode(encoder, offset + 0, depth)?;
8938 self.1.encode(encoder, offset + 8, depth)?;
8939 Ok(())
8940 }
8941 }
8942
8943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8944 for AudioDeviceEnumeratorOnDeviceGainChangedRequest
8945 {
8946 #[inline(always)]
8947 fn new_empty() -> Self {
8948 Self {
8949 device_token: fidl::new_empty!(u64, D),
8950 gain_info: fidl::new_empty!(AudioGainInfo, D),
8951 }
8952 }
8953
8954 #[inline]
8955 unsafe fn decode(
8956 &mut self,
8957 decoder: &mut fidl::encoding::Decoder<'_, D>,
8958 offset: usize,
8959 _depth: fidl::encoding::Depth,
8960 ) -> fidl::Result<()> {
8961 decoder.debug_check_bounds::<Self>(offset);
8962 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
8964 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
8965 Ok(())
8966 }
8967 }
8968
8969 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceRemovedRequest {
8970 type Borrowed<'a> = &'a Self;
8971 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8972 value
8973 }
8974 }
8975
8976 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceRemovedRequest {
8977 type Owned = Self;
8978
8979 #[inline(always)]
8980 fn inline_align(_context: fidl::encoding::Context) -> usize {
8981 8
8982 }
8983
8984 #[inline(always)]
8985 fn inline_size(_context: fidl::encoding::Context) -> usize {
8986 8
8987 }
8988 #[inline(always)]
8989 fn encode_is_copy() -> bool {
8990 true
8991 }
8992
8993 #[inline(always)]
8994 fn decode_is_copy() -> bool {
8995 true
8996 }
8997 }
8998
8999 unsafe impl<D: fidl::encoding::ResourceDialect>
9000 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceRemovedRequest, D>
9001 for &AudioDeviceEnumeratorOnDeviceRemovedRequest
9002 {
9003 #[inline]
9004 unsafe fn encode(
9005 self,
9006 encoder: &mut fidl::encoding::Encoder<'_, D>,
9007 offset: usize,
9008 _depth: fidl::encoding::Depth,
9009 ) -> fidl::Result<()> {
9010 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceRemovedRequest>(offset);
9011 unsafe {
9012 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9014 (buf_ptr as *mut AudioDeviceEnumeratorOnDeviceRemovedRequest).write_unaligned(
9015 (self as *const AudioDeviceEnumeratorOnDeviceRemovedRequest).read(),
9016 );
9017 }
9020 Ok(())
9021 }
9022 }
9023 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
9024 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceRemovedRequest, D> for (T0,)
9025 {
9026 #[inline]
9027 unsafe fn encode(
9028 self,
9029 encoder: &mut fidl::encoding::Encoder<'_, D>,
9030 offset: usize,
9031 depth: fidl::encoding::Depth,
9032 ) -> fidl::Result<()> {
9033 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceRemovedRequest>(offset);
9034 self.0.encode(encoder, offset + 0, depth)?;
9038 Ok(())
9039 }
9040 }
9041
9042 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9043 for AudioDeviceEnumeratorOnDeviceRemovedRequest
9044 {
9045 #[inline(always)]
9046 fn new_empty() -> Self {
9047 Self { device_token: fidl::new_empty!(u64, D) }
9048 }
9049
9050 #[inline]
9051 unsafe fn decode(
9052 &mut self,
9053 decoder: &mut fidl::encoding::Decoder<'_, D>,
9054 offset: usize,
9055 _depth: fidl::encoding::Depth,
9056 ) -> fidl::Result<()> {
9057 decoder.debug_check_bounds::<Self>(offset);
9058 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9059 unsafe {
9062 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9063 }
9064 Ok(())
9065 }
9066 }
9067
9068 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorSetDeviceGainRequest {
9069 type Borrowed<'a> = &'a Self;
9070 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9071 value
9072 }
9073 }
9074
9075 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorSetDeviceGainRequest {
9076 type Owned = Self;
9077
9078 #[inline(always)]
9079 fn inline_align(_context: fidl::encoding::Context) -> usize {
9080 8
9081 }
9082
9083 #[inline(always)]
9084 fn inline_size(_context: fidl::encoding::Context) -> usize {
9085 24
9086 }
9087 }
9088
9089 unsafe impl<D: fidl::encoding::ResourceDialect>
9090 fidl::encoding::Encode<AudioDeviceEnumeratorSetDeviceGainRequest, D>
9091 for &AudioDeviceEnumeratorSetDeviceGainRequest
9092 {
9093 #[inline]
9094 unsafe fn encode(
9095 self,
9096 encoder: &mut fidl::encoding::Encoder<'_, D>,
9097 offset: usize,
9098 _depth: fidl::encoding::Depth,
9099 ) -> fidl::Result<()> {
9100 encoder.debug_check_bounds::<AudioDeviceEnumeratorSetDeviceGainRequest>(offset);
9101 fidl::encoding::Encode::<AudioDeviceEnumeratorSetDeviceGainRequest, D>::encode(
9103 (
9104 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
9105 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
9106 <AudioGainValidFlags as fidl::encoding::ValueTypeMarker>::borrow(
9107 &self.valid_flags,
9108 ),
9109 ),
9110 encoder,
9111 offset,
9112 _depth,
9113 )
9114 }
9115 }
9116 unsafe impl<
9117 D: fidl::encoding::ResourceDialect,
9118 T0: fidl::encoding::Encode<u64, D>,
9119 T1: fidl::encoding::Encode<AudioGainInfo, D>,
9120 T2: fidl::encoding::Encode<AudioGainValidFlags, D>,
9121 > fidl::encoding::Encode<AudioDeviceEnumeratorSetDeviceGainRequest, D> for (T0, T1, T2)
9122 {
9123 #[inline]
9124 unsafe fn encode(
9125 self,
9126 encoder: &mut fidl::encoding::Encoder<'_, D>,
9127 offset: usize,
9128 depth: fidl::encoding::Depth,
9129 ) -> fidl::Result<()> {
9130 encoder.debug_check_bounds::<AudioDeviceEnumeratorSetDeviceGainRequest>(offset);
9131 unsafe {
9134 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
9135 (ptr as *mut u64).write_unaligned(0);
9136 }
9137 self.0.encode(encoder, offset + 0, depth)?;
9139 self.1.encode(encoder, offset + 8, depth)?;
9140 self.2.encode(encoder, offset + 16, depth)?;
9141 Ok(())
9142 }
9143 }
9144
9145 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9146 for AudioDeviceEnumeratorSetDeviceGainRequest
9147 {
9148 #[inline(always)]
9149 fn new_empty() -> Self {
9150 Self {
9151 device_token: fidl::new_empty!(u64, D),
9152 gain_info: fidl::new_empty!(AudioGainInfo, D),
9153 valid_flags: fidl::new_empty!(AudioGainValidFlags, D),
9154 }
9155 }
9156
9157 #[inline]
9158 unsafe fn decode(
9159 &mut self,
9160 decoder: &mut fidl::encoding::Decoder<'_, D>,
9161 offset: usize,
9162 _depth: fidl::encoding::Depth,
9163 ) -> fidl::Result<()> {
9164 decoder.debug_check_bounds::<Self>(offset);
9165 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
9167 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9168 let mask = 0xffffffff00000000u64;
9169 let maskedval = padval & mask;
9170 if maskedval != 0 {
9171 return Err(fidl::Error::NonZeroPadding {
9172 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
9173 });
9174 }
9175 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
9176 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
9177 fidl::decode!(
9178 AudioGainValidFlags,
9179 D,
9180 &mut self.valid_flags,
9181 decoder,
9182 offset + 16,
9183 _depth
9184 )?;
9185 Ok(())
9186 }
9187 }
9188
9189 impl fidl::encoding::ValueTypeMarker for AudioDeviceInfo {
9190 type Borrowed<'a> = &'a Self;
9191 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9192 value
9193 }
9194 }
9195
9196 unsafe impl fidl::encoding::TypeMarker for AudioDeviceInfo {
9197 type Owned = Self;
9198
9199 #[inline(always)]
9200 fn inline_align(_context: fidl::encoding::Context) -> usize {
9201 8
9202 }
9203
9204 #[inline(always)]
9205 fn inline_size(_context: fidl::encoding::Context) -> usize {
9206 56
9207 }
9208 }
9209
9210 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioDeviceInfo, D>
9211 for &AudioDeviceInfo
9212 {
9213 #[inline]
9214 unsafe fn encode(
9215 self,
9216 encoder: &mut fidl::encoding::Encoder<'_, D>,
9217 offset: usize,
9218 _depth: fidl::encoding::Depth,
9219 ) -> fidl::Result<()> {
9220 encoder.debug_check_bounds::<AudioDeviceInfo>(offset);
9221 fidl::encoding::Encode::<AudioDeviceInfo, D>::encode(
9223 (
9224 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
9225 &self.name,
9226 ),
9227 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
9228 &self.unique_id,
9229 ),
9230 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.token_id),
9231 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_input),
9232 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
9233 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_default),
9234 ),
9235 encoder,
9236 offset,
9237 _depth,
9238 )
9239 }
9240 }
9241 unsafe impl<
9242 D: fidl::encoding::ResourceDialect,
9243 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
9244 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
9245 T2: fidl::encoding::Encode<u64, D>,
9246 T3: fidl::encoding::Encode<bool, D>,
9247 T4: fidl::encoding::Encode<AudioGainInfo, D>,
9248 T5: fidl::encoding::Encode<bool, D>,
9249 > fidl::encoding::Encode<AudioDeviceInfo, D> for (T0, T1, T2, T3, T4, T5)
9250 {
9251 #[inline]
9252 unsafe fn encode(
9253 self,
9254 encoder: &mut fidl::encoding::Encoder<'_, D>,
9255 offset: usize,
9256 depth: fidl::encoding::Depth,
9257 ) -> fidl::Result<()> {
9258 encoder.debug_check_bounds::<AudioDeviceInfo>(offset);
9259 unsafe {
9262 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
9263 (ptr as *mut u64).write_unaligned(0);
9264 }
9265 unsafe {
9266 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(48);
9267 (ptr as *mut u64).write_unaligned(0);
9268 }
9269 self.0.encode(encoder, offset + 0, depth)?;
9271 self.1.encode(encoder, offset + 16, depth)?;
9272 self.2.encode(encoder, offset + 32, depth)?;
9273 self.3.encode(encoder, offset + 40, depth)?;
9274 self.4.encode(encoder, offset + 44, depth)?;
9275 self.5.encode(encoder, offset + 52, depth)?;
9276 Ok(())
9277 }
9278 }
9279
9280 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioDeviceInfo {
9281 #[inline(always)]
9282 fn new_empty() -> Self {
9283 Self {
9284 name: fidl::new_empty!(fidl::encoding::UnboundedString, D),
9285 unique_id: fidl::new_empty!(fidl::encoding::UnboundedString, D),
9286 token_id: fidl::new_empty!(u64, D),
9287 is_input: fidl::new_empty!(bool, D),
9288 gain_info: fidl::new_empty!(AudioGainInfo, D),
9289 is_default: fidl::new_empty!(bool, D),
9290 }
9291 }
9292
9293 #[inline]
9294 unsafe fn decode(
9295 &mut self,
9296 decoder: &mut fidl::encoding::Decoder<'_, D>,
9297 offset: usize,
9298 _depth: fidl::encoding::Depth,
9299 ) -> fidl::Result<()> {
9300 decoder.debug_check_bounds::<Self>(offset);
9301 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
9303 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9304 let mask = 0xffffff00u64;
9305 let maskedval = padval & mask;
9306 if maskedval != 0 {
9307 return Err(fidl::Error::NonZeroPadding {
9308 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
9309 });
9310 }
9311 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(48) };
9312 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9313 let mask = 0xffffff0000000000u64;
9314 let maskedval = padval & mask;
9315 if maskedval != 0 {
9316 return Err(fidl::Error::NonZeroPadding {
9317 padding_start: offset + 48 + ((mask as u64).trailing_zeros() / 8) as usize,
9318 });
9319 }
9320 fidl::decode!(
9321 fidl::encoding::UnboundedString,
9322 D,
9323 &mut self.name,
9324 decoder,
9325 offset + 0,
9326 _depth
9327 )?;
9328 fidl::decode!(
9329 fidl::encoding::UnboundedString,
9330 D,
9331 &mut self.unique_id,
9332 decoder,
9333 offset + 16,
9334 _depth
9335 )?;
9336 fidl::decode!(u64, D, &mut self.token_id, decoder, offset + 32, _depth)?;
9337 fidl::decode!(bool, D, &mut self.is_input, decoder, offset + 40, _depth)?;
9338 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 44, _depth)?;
9339 fidl::decode!(bool, D, &mut self.is_default, decoder, offset + 52, _depth)?;
9340 Ok(())
9341 }
9342 }
9343
9344 impl fidl::encoding::ValueTypeMarker for AudioGainInfo {
9345 type Borrowed<'a> = &'a Self;
9346 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9347 value
9348 }
9349 }
9350
9351 unsafe impl fidl::encoding::TypeMarker for AudioGainInfo {
9352 type Owned = Self;
9353
9354 #[inline(always)]
9355 fn inline_align(_context: fidl::encoding::Context) -> usize {
9356 4
9357 }
9358
9359 #[inline(always)]
9360 fn inline_size(_context: fidl::encoding::Context) -> usize {
9361 8
9362 }
9363 }
9364
9365 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioGainInfo, D>
9366 for &AudioGainInfo
9367 {
9368 #[inline]
9369 unsafe fn encode(
9370 self,
9371 encoder: &mut fidl::encoding::Encoder<'_, D>,
9372 offset: usize,
9373 _depth: fidl::encoding::Depth,
9374 ) -> fidl::Result<()> {
9375 encoder.debug_check_bounds::<AudioGainInfo>(offset);
9376 fidl::encoding::Encode::<AudioGainInfo, D>::encode(
9378 (
9379 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
9380 <AudioGainInfoFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.flags),
9381 ),
9382 encoder,
9383 offset,
9384 _depth,
9385 )
9386 }
9387 }
9388 unsafe impl<
9389 D: fidl::encoding::ResourceDialect,
9390 T0: fidl::encoding::Encode<f32, D>,
9391 T1: fidl::encoding::Encode<AudioGainInfoFlags, D>,
9392 > fidl::encoding::Encode<AudioGainInfo, D> for (T0, T1)
9393 {
9394 #[inline]
9395 unsafe fn encode(
9396 self,
9397 encoder: &mut fidl::encoding::Encoder<'_, D>,
9398 offset: usize,
9399 depth: fidl::encoding::Depth,
9400 ) -> fidl::Result<()> {
9401 encoder.debug_check_bounds::<AudioGainInfo>(offset);
9402 self.0.encode(encoder, offset + 0, depth)?;
9406 self.1.encode(encoder, offset + 4, depth)?;
9407 Ok(())
9408 }
9409 }
9410
9411 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainInfo {
9412 #[inline(always)]
9413 fn new_empty() -> Self {
9414 Self {
9415 gain_db: fidl::new_empty!(f32, D),
9416 flags: fidl::new_empty!(AudioGainInfoFlags, D),
9417 }
9418 }
9419
9420 #[inline]
9421 unsafe fn decode(
9422 &mut self,
9423 decoder: &mut fidl::encoding::Decoder<'_, D>,
9424 offset: usize,
9425 _depth: fidl::encoding::Depth,
9426 ) -> fidl::Result<()> {
9427 decoder.debug_check_bounds::<Self>(offset);
9428 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
9430 fidl::decode!(AudioGainInfoFlags, D, &mut self.flags, decoder, offset + 4, _depth)?;
9431 Ok(())
9432 }
9433 }
9434
9435 impl fidl::encoding::ValueTypeMarker for AudioRendererEnableMinLeadTimeEventsRequest {
9436 type Borrowed<'a> = &'a Self;
9437 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9438 value
9439 }
9440 }
9441
9442 unsafe impl fidl::encoding::TypeMarker for AudioRendererEnableMinLeadTimeEventsRequest {
9443 type Owned = Self;
9444
9445 #[inline(always)]
9446 fn inline_align(_context: fidl::encoding::Context) -> usize {
9447 1
9448 }
9449
9450 #[inline(always)]
9451 fn inline_size(_context: fidl::encoding::Context) -> usize {
9452 1
9453 }
9454 }
9455
9456 unsafe impl<D: fidl::encoding::ResourceDialect>
9457 fidl::encoding::Encode<AudioRendererEnableMinLeadTimeEventsRequest, D>
9458 for &AudioRendererEnableMinLeadTimeEventsRequest
9459 {
9460 #[inline]
9461 unsafe fn encode(
9462 self,
9463 encoder: &mut fidl::encoding::Encoder<'_, D>,
9464 offset: usize,
9465 _depth: fidl::encoding::Depth,
9466 ) -> fidl::Result<()> {
9467 encoder.debug_check_bounds::<AudioRendererEnableMinLeadTimeEventsRequest>(offset);
9468 fidl::encoding::Encode::<AudioRendererEnableMinLeadTimeEventsRequest, D>::encode(
9470 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
9471 encoder,
9472 offset,
9473 _depth,
9474 )
9475 }
9476 }
9477 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
9478 fidl::encoding::Encode<AudioRendererEnableMinLeadTimeEventsRequest, D> for (T0,)
9479 {
9480 #[inline]
9481 unsafe fn encode(
9482 self,
9483 encoder: &mut fidl::encoding::Encoder<'_, D>,
9484 offset: usize,
9485 depth: fidl::encoding::Depth,
9486 ) -> fidl::Result<()> {
9487 encoder.debug_check_bounds::<AudioRendererEnableMinLeadTimeEventsRequest>(offset);
9488 self.0.encode(encoder, offset + 0, depth)?;
9492 Ok(())
9493 }
9494 }
9495
9496 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9497 for AudioRendererEnableMinLeadTimeEventsRequest
9498 {
9499 #[inline(always)]
9500 fn new_empty() -> Self {
9501 Self { enabled: fidl::new_empty!(bool, D) }
9502 }
9503
9504 #[inline]
9505 unsafe fn decode(
9506 &mut self,
9507 decoder: &mut fidl::encoding::Decoder<'_, D>,
9508 offset: usize,
9509 _depth: fidl::encoding::Depth,
9510 ) -> fidl::Result<()> {
9511 decoder.debug_check_bounds::<Self>(offset);
9512 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
9514 Ok(())
9515 }
9516 }
9517
9518 impl fidl::encoding::ValueTypeMarker for AudioRendererGetMinLeadTimeResponse {
9519 type Borrowed<'a> = &'a Self;
9520 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9521 value
9522 }
9523 }
9524
9525 unsafe impl fidl::encoding::TypeMarker for AudioRendererGetMinLeadTimeResponse {
9526 type Owned = Self;
9527
9528 #[inline(always)]
9529 fn inline_align(_context: fidl::encoding::Context) -> usize {
9530 8
9531 }
9532
9533 #[inline(always)]
9534 fn inline_size(_context: fidl::encoding::Context) -> usize {
9535 8
9536 }
9537 #[inline(always)]
9538 fn encode_is_copy() -> bool {
9539 true
9540 }
9541
9542 #[inline(always)]
9543 fn decode_is_copy() -> bool {
9544 true
9545 }
9546 }
9547
9548 unsafe impl<D: fidl::encoding::ResourceDialect>
9549 fidl::encoding::Encode<AudioRendererGetMinLeadTimeResponse, D>
9550 for &AudioRendererGetMinLeadTimeResponse
9551 {
9552 #[inline]
9553 unsafe fn encode(
9554 self,
9555 encoder: &mut fidl::encoding::Encoder<'_, D>,
9556 offset: usize,
9557 _depth: fidl::encoding::Depth,
9558 ) -> fidl::Result<()> {
9559 encoder.debug_check_bounds::<AudioRendererGetMinLeadTimeResponse>(offset);
9560 unsafe {
9561 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9563 (buf_ptr as *mut AudioRendererGetMinLeadTimeResponse)
9564 .write_unaligned((self as *const AudioRendererGetMinLeadTimeResponse).read());
9565 }
9568 Ok(())
9569 }
9570 }
9571 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
9572 fidl::encoding::Encode<AudioRendererGetMinLeadTimeResponse, D> for (T0,)
9573 {
9574 #[inline]
9575 unsafe fn encode(
9576 self,
9577 encoder: &mut fidl::encoding::Encoder<'_, D>,
9578 offset: usize,
9579 depth: fidl::encoding::Depth,
9580 ) -> fidl::Result<()> {
9581 encoder.debug_check_bounds::<AudioRendererGetMinLeadTimeResponse>(offset);
9582 self.0.encode(encoder, offset + 0, depth)?;
9586 Ok(())
9587 }
9588 }
9589
9590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9591 for AudioRendererGetMinLeadTimeResponse
9592 {
9593 #[inline(always)]
9594 fn new_empty() -> Self {
9595 Self { min_lead_time_nsec: fidl::new_empty!(i64, D) }
9596 }
9597
9598 #[inline]
9599 unsafe fn decode(
9600 &mut self,
9601 decoder: &mut fidl::encoding::Decoder<'_, D>,
9602 offset: usize,
9603 _depth: fidl::encoding::Depth,
9604 ) -> fidl::Result<()> {
9605 decoder.debug_check_bounds::<Self>(offset);
9606 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9607 unsafe {
9610 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9611 }
9612 Ok(())
9613 }
9614 }
9615
9616 impl fidl::encoding::ValueTypeMarker for AudioRendererOnMinLeadTimeChangedRequest {
9617 type Borrowed<'a> = &'a Self;
9618 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9619 value
9620 }
9621 }
9622
9623 unsafe impl fidl::encoding::TypeMarker for AudioRendererOnMinLeadTimeChangedRequest {
9624 type Owned = Self;
9625
9626 #[inline(always)]
9627 fn inline_align(_context: fidl::encoding::Context) -> usize {
9628 8
9629 }
9630
9631 #[inline(always)]
9632 fn inline_size(_context: fidl::encoding::Context) -> usize {
9633 8
9634 }
9635 #[inline(always)]
9636 fn encode_is_copy() -> bool {
9637 true
9638 }
9639
9640 #[inline(always)]
9641 fn decode_is_copy() -> bool {
9642 true
9643 }
9644 }
9645
9646 unsafe impl<D: fidl::encoding::ResourceDialect>
9647 fidl::encoding::Encode<AudioRendererOnMinLeadTimeChangedRequest, D>
9648 for &AudioRendererOnMinLeadTimeChangedRequest
9649 {
9650 #[inline]
9651 unsafe fn encode(
9652 self,
9653 encoder: &mut fidl::encoding::Encoder<'_, D>,
9654 offset: usize,
9655 _depth: fidl::encoding::Depth,
9656 ) -> fidl::Result<()> {
9657 encoder.debug_check_bounds::<AudioRendererOnMinLeadTimeChangedRequest>(offset);
9658 unsafe {
9659 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9661 (buf_ptr as *mut AudioRendererOnMinLeadTimeChangedRequest).write_unaligned(
9662 (self as *const AudioRendererOnMinLeadTimeChangedRequest).read(),
9663 );
9664 }
9667 Ok(())
9668 }
9669 }
9670 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
9671 fidl::encoding::Encode<AudioRendererOnMinLeadTimeChangedRequest, D> for (T0,)
9672 {
9673 #[inline]
9674 unsafe fn encode(
9675 self,
9676 encoder: &mut fidl::encoding::Encoder<'_, D>,
9677 offset: usize,
9678 depth: fidl::encoding::Depth,
9679 ) -> fidl::Result<()> {
9680 encoder.debug_check_bounds::<AudioRendererOnMinLeadTimeChangedRequest>(offset);
9681 self.0.encode(encoder, offset + 0, depth)?;
9685 Ok(())
9686 }
9687 }
9688
9689 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9690 for AudioRendererOnMinLeadTimeChangedRequest
9691 {
9692 #[inline(always)]
9693 fn new_empty() -> Self {
9694 Self { min_lead_time_nsec: fidl::new_empty!(i64, D) }
9695 }
9696
9697 #[inline]
9698 unsafe fn decode(
9699 &mut self,
9700 decoder: &mut fidl::encoding::Decoder<'_, D>,
9701 offset: usize,
9702 _depth: fidl::encoding::Depth,
9703 ) -> fidl::Result<()> {
9704 decoder.debug_check_bounds::<Self>(offset);
9705 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9706 unsafe {
9709 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9710 }
9711 Ok(())
9712 }
9713 }
9714
9715 impl fidl::encoding::ValueTypeMarker for AudioRendererPauseResponse {
9716 type Borrowed<'a> = &'a Self;
9717 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9718 value
9719 }
9720 }
9721
9722 unsafe impl fidl::encoding::TypeMarker for AudioRendererPauseResponse {
9723 type Owned = Self;
9724
9725 #[inline(always)]
9726 fn inline_align(_context: fidl::encoding::Context) -> usize {
9727 8
9728 }
9729
9730 #[inline(always)]
9731 fn inline_size(_context: fidl::encoding::Context) -> usize {
9732 16
9733 }
9734 #[inline(always)]
9735 fn encode_is_copy() -> bool {
9736 true
9737 }
9738
9739 #[inline(always)]
9740 fn decode_is_copy() -> bool {
9741 true
9742 }
9743 }
9744
9745 unsafe impl<D: fidl::encoding::ResourceDialect>
9746 fidl::encoding::Encode<AudioRendererPauseResponse, D> for &AudioRendererPauseResponse
9747 {
9748 #[inline]
9749 unsafe fn encode(
9750 self,
9751 encoder: &mut fidl::encoding::Encoder<'_, D>,
9752 offset: usize,
9753 _depth: fidl::encoding::Depth,
9754 ) -> fidl::Result<()> {
9755 encoder.debug_check_bounds::<AudioRendererPauseResponse>(offset);
9756 unsafe {
9757 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9759 (buf_ptr as *mut AudioRendererPauseResponse)
9760 .write_unaligned((self as *const AudioRendererPauseResponse).read());
9761 }
9764 Ok(())
9765 }
9766 }
9767 unsafe impl<
9768 D: fidl::encoding::ResourceDialect,
9769 T0: fidl::encoding::Encode<i64, D>,
9770 T1: fidl::encoding::Encode<i64, D>,
9771 > fidl::encoding::Encode<AudioRendererPauseResponse, D> for (T0, T1)
9772 {
9773 #[inline]
9774 unsafe fn encode(
9775 self,
9776 encoder: &mut fidl::encoding::Encoder<'_, D>,
9777 offset: usize,
9778 depth: fidl::encoding::Depth,
9779 ) -> fidl::Result<()> {
9780 encoder.debug_check_bounds::<AudioRendererPauseResponse>(offset);
9781 self.0.encode(encoder, offset + 0, depth)?;
9785 self.1.encode(encoder, offset + 8, depth)?;
9786 Ok(())
9787 }
9788 }
9789
9790 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9791 for AudioRendererPauseResponse
9792 {
9793 #[inline(always)]
9794 fn new_empty() -> Self {
9795 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
9796 }
9797
9798 #[inline]
9799 unsafe fn decode(
9800 &mut self,
9801 decoder: &mut fidl::encoding::Decoder<'_, D>,
9802 offset: usize,
9803 _depth: fidl::encoding::Depth,
9804 ) -> fidl::Result<()> {
9805 decoder.debug_check_bounds::<Self>(offset);
9806 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9807 unsafe {
9810 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
9811 }
9812 Ok(())
9813 }
9814 }
9815
9816 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayNoReplyRequest {
9817 type Borrowed<'a> = &'a Self;
9818 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9819 value
9820 }
9821 }
9822
9823 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayNoReplyRequest {
9824 type Owned = Self;
9825
9826 #[inline(always)]
9827 fn inline_align(_context: fidl::encoding::Context) -> usize {
9828 8
9829 }
9830
9831 #[inline(always)]
9832 fn inline_size(_context: fidl::encoding::Context) -> usize {
9833 16
9834 }
9835 #[inline(always)]
9836 fn encode_is_copy() -> bool {
9837 true
9838 }
9839
9840 #[inline(always)]
9841 fn decode_is_copy() -> bool {
9842 true
9843 }
9844 }
9845
9846 unsafe impl<D: fidl::encoding::ResourceDialect>
9847 fidl::encoding::Encode<AudioRendererPlayNoReplyRequest, D>
9848 for &AudioRendererPlayNoReplyRequest
9849 {
9850 #[inline]
9851 unsafe fn encode(
9852 self,
9853 encoder: &mut fidl::encoding::Encoder<'_, D>,
9854 offset: usize,
9855 _depth: fidl::encoding::Depth,
9856 ) -> fidl::Result<()> {
9857 encoder.debug_check_bounds::<AudioRendererPlayNoReplyRequest>(offset);
9858 unsafe {
9859 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9861 (buf_ptr as *mut AudioRendererPlayNoReplyRequest)
9862 .write_unaligned((self as *const AudioRendererPlayNoReplyRequest).read());
9863 }
9866 Ok(())
9867 }
9868 }
9869 unsafe impl<
9870 D: fidl::encoding::ResourceDialect,
9871 T0: fidl::encoding::Encode<i64, D>,
9872 T1: fidl::encoding::Encode<i64, D>,
9873 > fidl::encoding::Encode<AudioRendererPlayNoReplyRequest, D> for (T0, T1)
9874 {
9875 #[inline]
9876 unsafe fn encode(
9877 self,
9878 encoder: &mut fidl::encoding::Encoder<'_, D>,
9879 offset: usize,
9880 depth: fidl::encoding::Depth,
9881 ) -> fidl::Result<()> {
9882 encoder.debug_check_bounds::<AudioRendererPlayNoReplyRequest>(offset);
9883 self.0.encode(encoder, offset + 0, depth)?;
9887 self.1.encode(encoder, offset + 8, depth)?;
9888 Ok(())
9889 }
9890 }
9891
9892 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9893 for AudioRendererPlayNoReplyRequest
9894 {
9895 #[inline(always)]
9896 fn new_empty() -> Self {
9897 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
9898 }
9899
9900 #[inline]
9901 unsafe fn decode(
9902 &mut self,
9903 decoder: &mut fidl::encoding::Decoder<'_, D>,
9904 offset: usize,
9905 _depth: fidl::encoding::Depth,
9906 ) -> fidl::Result<()> {
9907 decoder.debug_check_bounds::<Self>(offset);
9908 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9909 unsafe {
9912 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
9913 }
9914 Ok(())
9915 }
9916 }
9917
9918 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayRequest {
9919 type Borrowed<'a> = &'a Self;
9920 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9921 value
9922 }
9923 }
9924
9925 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayRequest {
9926 type Owned = Self;
9927
9928 #[inline(always)]
9929 fn inline_align(_context: fidl::encoding::Context) -> usize {
9930 8
9931 }
9932
9933 #[inline(always)]
9934 fn inline_size(_context: fidl::encoding::Context) -> usize {
9935 16
9936 }
9937 #[inline(always)]
9938 fn encode_is_copy() -> bool {
9939 true
9940 }
9941
9942 #[inline(always)]
9943 fn decode_is_copy() -> bool {
9944 true
9945 }
9946 }
9947
9948 unsafe impl<D: fidl::encoding::ResourceDialect>
9949 fidl::encoding::Encode<AudioRendererPlayRequest, D> for &AudioRendererPlayRequest
9950 {
9951 #[inline]
9952 unsafe fn encode(
9953 self,
9954 encoder: &mut fidl::encoding::Encoder<'_, D>,
9955 offset: usize,
9956 _depth: fidl::encoding::Depth,
9957 ) -> fidl::Result<()> {
9958 encoder.debug_check_bounds::<AudioRendererPlayRequest>(offset);
9959 unsafe {
9960 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9962 (buf_ptr as *mut AudioRendererPlayRequest)
9963 .write_unaligned((self as *const AudioRendererPlayRequest).read());
9964 }
9967 Ok(())
9968 }
9969 }
9970 unsafe impl<
9971 D: fidl::encoding::ResourceDialect,
9972 T0: fidl::encoding::Encode<i64, D>,
9973 T1: fidl::encoding::Encode<i64, D>,
9974 > fidl::encoding::Encode<AudioRendererPlayRequest, D> for (T0, T1)
9975 {
9976 #[inline]
9977 unsafe fn encode(
9978 self,
9979 encoder: &mut fidl::encoding::Encoder<'_, D>,
9980 offset: usize,
9981 depth: fidl::encoding::Depth,
9982 ) -> fidl::Result<()> {
9983 encoder.debug_check_bounds::<AudioRendererPlayRequest>(offset);
9984 self.0.encode(encoder, offset + 0, depth)?;
9988 self.1.encode(encoder, offset + 8, depth)?;
9989 Ok(())
9990 }
9991 }
9992
9993 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9994 for AudioRendererPlayRequest
9995 {
9996 #[inline(always)]
9997 fn new_empty() -> Self {
9998 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
9999 }
10000
10001 #[inline]
10002 unsafe fn decode(
10003 &mut self,
10004 decoder: &mut fidl::encoding::Decoder<'_, D>,
10005 offset: usize,
10006 _depth: fidl::encoding::Depth,
10007 ) -> fidl::Result<()> {
10008 decoder.debug_check_bounds::<Self>(offset);
10009 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10010 unsafe {
10013 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
10014 }
10015 Ok(())
10016 }
10017 }
10018
10019 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayResponse {
10020 type Borrowed<'a> = &'a Self;
10021 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10022 value
10023 }
10024 }
10025
10026 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayResponse {
10027 type Owned = Self;
10028
10029 #[inline(always)]
10030 fn inline_align(_context: fidl::encoding::Context) -> usize {
10031 8
10032 }
10033
10034 #[inline(always)]
10035 fn inline_size(_context: fidl::encoding::Context) -> usize {
10036 16
10037 }
10038 #[inline(always)]
10039 fn encode_is_copy() -> bool {
10040 true
10041 }
10042
10043 #[inline(always)]
10044 fn decode_is_copy() -> bool {
10045 true
10046 }
10047 }
10048
10049 unsafe impl<D: fidl::encoding::ResourceDialect>
10050 fidl::encoding::Encode<AudioRendererPlayResponse, D> for &AudioRendererPlayResponse
10051 {
10052 #[inline]
10053 unsafe fn encode(
10054 self,
10055 encoder: &mut fidl::encoding::Encoder<'_, D>,
10056 offset: usize,
10057 _depth: fidl::encoding::Depth,
10058 ) -> fidl::Result<()> {
10059 encoder.debug_check_bounds::<AudioRendererPlayResponse>(offset);
10060 unsafe {
10061 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10063 (buf_ptr as *mut AudioRendererPlayResponse)
10064 .write_unaligned((self as *const AudioRendererPlayResponse).read());
10065 }
10068 Ok(())
10069 }
10070 }
10071 unsafe impl<
10072 D: fidl::encoding::ResourceDialect,
10073 T0: fidl::encoding::Encode<i64, D>,
10074 T1: fidl::encoding::Encode<i64, D>,
10075 > fidl::encoding::Encode<AudioRendererPlayResponse, D> for (T0, T1)
10076 {
10077 #[inline]
10078 unsafe fn encode(
10079 self,
10080 encoder: &mut fidl::encoding::Encoder<'_, D>,
10081 offset: usize,
10082 depth: fidl::encoding::Depth,
10083 ) -> fidl::Result<()> {
10084 encoder.debug_check_bounds::<AudioRendererPlayResponse>(offset);
10085 self.0.encode(encoder, offset + 0, depth)?;
10089 self.1.encode(encoder, offset + 8, depth)?;
10090 Ok(())
10091 }
10092 }
10093
10094 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10095 for AudioRendererPlayResponse
10096 {
10097 #[inline(always)]
10098 fn new_empty() -> Self {
10099 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
10100 }
10101
10102 #[inline]
10103 unsafe fn decode(
10104 &mut self,
10105 decoder: &mut fidl::encoding::Decoder<'_, D>,
10106 offset: usize,
10107 _depth: fidl::encoding::Depth,
10108 ) -> fidl::Result<()> {
10109 decoder.debug_check_bounds::<Self>(offset);
10110 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10111 unsafe {
10114 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
10115 }
10116 Ok(())
10117 }
10118 }
10119
10120 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPcmStreamTypeRequest {
10121 type Borrowed<'a> = &'a Self;
10122 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10123 value
10124 }
10125 }
10126
10127 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPcmStreamTypeRequest {
10128 type Owned = Self;
10129
10130 #[inline(always)]
10131 fn inline_align(_context: fidl::encoding::Context) -> usize {
10132 4
10133 }
10134
10135 #[inline(always)]
10136 fn inline_size(_context: fidl::encoding::Context) -> usize {
10137 12
10138 }
10139 }
10140
10141 unsafe impl<D: fidl::encoding::ResourceDialect>
10142 fidl::encoding::Encode<AudioRendererSetPcmStreamTypeRequest, D>
10143 for &AudioRendererSetPcmStreamTypeRequest
10144 {
10145 #[inline]
10146 unsafe fn encode(
10147 self,
10148 encoder: &mut fidl::encoding::Encoder<'_, D>,
10149 offset: usize,
10150 _depth: fidl::encoding::Depth,
10151 ) -> fidl::Result<()> {
10152 encoder.debug_check_bounds::<AudioRendererSetPcmStreamTypeRequest>(offset);
10153 fidl::encoding::Encode::<AudioRendererSetPcmStreamTypeRequest, D>::encode(
10155 (<AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),),
10156 encoder,
10157 offset,
10158 _depth,
10159 )
10160 }
10161 }
10162 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioStreamType, D>>
10163 fidl::encoding::Encode<AudioRendererSetPcmStreamTypeRequest, D> for (T0,)
10164 {
10165 #[inline]
10166 unsafe fn encode(
10167 self,
10168 encoder: &mut fidl::encoding::Encoder<'_, D>,
10169 offset: usize,
10170 depth: fidl::encoding::Depth,
10171 ) -> fidl::Result<()> {
10172 encoder.debug_check_bounds::<AudioRendererSetPcmStreamTypeRequest>(offset);
10173 self.0.encode(encoder, offset + 0, depth)?;
10177 Ok(())
10178 }
10179 }
10180
10181 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10182 for AudioRendererSetPcmStreamTypeRequest
10183 {
10184 #[inline(always)]
10185 fn new_empty() -> Self {
10186 Self { type_: fidl::new_empty!(AudioStreamType, D) }
10187 }
10188
10189 #[inline]
10190 unsafe fn decode(
10191 &mut self,
10192 decoder: &mut fidl::encoding::Decoder<'_, D>,
10193 offset: usize,
10194 _depth: fidl::encoding::Depth,
10195 ) -> fidl::Result<()> {
10196 decoder.debug_check_bounds::<Self>(offset);
10197 fidl::decode!(AudioStreamType, D, &mut self.type_, decoder, offset + 0, _depth)?;
10199 Ok(())
10200 }
10201 }
10202
10203 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPtsContinuityThresholdRequest {
10204 type Borrowed<'a> = &'a Self;
10205 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10206 value
10207 }
10208 }
10209
10210 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPtsContinuityThresholdRequest {
10211 type Owned = Self;
10212
10213 #[inline(always)]
10214 fn inline_align(_context: fidl::encoding::Context) -> usize {
10215 4
10216 }
10217
10218 #[inline(always)]
10219 fn inline_size(_context: fidl::encoding::Context) -> usize {
10220 4
10221 }
10222 }
10223
10224 unsafe impl<D: fidl::encoding::ResourceDialect>
10225 fidl::encoding::Encode<AudioRendererSetPtsContinuityThresholdRequest, D>
10226 for &AudioRendererSetPtsContinuityThresholdRequest
10227 {
10228 #[inline]
10229 unsafe fn encode(
10230 self,
10231 encoder: &mut fidl::encoding::Encoder<'_, D>,
10232 offset: usize,
10233 _depth: fidl::encoding::Depth,
10234 ) -> fidl::Result<()> {
10235 encoder.debug_check_bounds::<AudioRendererSetPtsContinuityThresholdRequest>(offset);
10236 fidl::encoding::Encode::<AudioRendererSetPtsContinuityThresholdRequest, D>::encode(
10238 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.threshold_seconds),),
10239 encoder,
10240 offset,
10241 _depth,
10242 )
10243 }
10244 }
10245 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
10246 fidl::encoding::Encode<AudioRendererSetPtsContinuityThresholdRequest, D> for (T0,)
10247 {
10248 #[inline]
10249 unsafe fn encode(
10250 self,
10251 encoder: &mut fidl::encoding::Encoder<'_, D>,
10252 offset: usize,
10253 depth: fidl::encoding::Depth,
10254 ) -> fidl::Result<()> {
10255 encoder.debug_check_bounds::<AudioRendererSetPtsContinuityThresholdRequest>(offset);
10256 self.0.encode(encoder, offset + 0, depth)?;
10260 Ok(())
10261 }
10262 }
10263
10264 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10265 for AudioRendererSetPtsContinuityThresholdRequest
10266 {
10267 #[inline(always)]
10268 fn new_empty() -> Self {
10269 Self { threshold_seconds: fidl::new_empty!(f32, D) }
10270 }
10271
10272 #[inline]
10273 unsafe fn decode(
10274 &mut self,
10275 decoder: &mut fidl::encoding::Decoder<'_, D>,
10276 offset: usize,
10277 _depth: fidl::encoding::Depth,
10278 ) -> fidl::Result<()> {
10279 decoder.debug_check_bounds::<Self>(offset);
10280 fidl::decode!(f32, D, &mut self.threshold_seconds, decoder, offset + 0, _depth)?;
10282 Ok(())
10283 }
10284 }
10285
10286 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPtsUnitsRequest {
10287 type Borrowed<'a> = &'a Self;
10288 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10289 value
10290 }
10291 }
10292
10293 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPtsUnitsRequest {
10294 type Owned = Self;
10295
10296 #[inline(always)]
10297 fn inline_align(_context: fidl::encoding::Context) -> usize {
10298 4
10299 }
10300
10301 #[inline(always)]
10302 fn inline_size(_context: fidl::encoding::Context) -> usize {
10303 8
10304 }
10305 #[inline(always)]
10306 fn encode_is_copy() -> bool {
10307 true
10308 }
10309
10310 #[inline(always)]
10311 fn decode_is_copy() -> bool {
10312 true
10313 }
10314 }
10315
10316 unsafe impl<D: fidl::encoding::ResourceDialect>
10317 fidl::encoding::Encode<AudioRendererSetPtsUnitsRequest, D>
10318 for &AudioRendererSetPtsUnitsRequest
10319 {
10320 #[inline]
10321 unsafe fn encode(
10322 self,
10323 encoder: &mut fidl::encoding::Encoder<'_, D>,
10324 offset: usize,
10325 _depth: fidl::encoding::Depth,
10326 ) -> fidl::Result<()> {
10327 encoder.debug_check_bounds::<AudioRendererSetPtsUnitsRequest>(offset);
10328 unsafe {
10329 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10331 (buf_ptr as *mut AudioRendererSetPtsUnitsRequest)
10332 .write_unaligned((self as *const AudioRendererSetPtsUnitsRequest).read());
10333 }
10336 Ok(())
10337 }
10338 }
10339 unsafe impl<
10340 D: fidl::encoding::ResourceDialect,
10341 T0: fidl::encoding::Encode<u32, D>,
10342 T1: fidl::encoding::Encode<u32, D>,
10343 > fidl::encoding::Encode<AudioRendererSetPtsUnitsRequest, D> for (T0, T1)
10344 {
10345 #[inline]
10346 unsafe fn encode(
10347 self,
10348 encoder: &mut fidl::encoding::Encoder<'_, D>,
10349 offset: usize,
10350 depth: fidl::encoding::Depth,
10351 ) -> fidl::Result<()> {
10352 encoder.debug_check_bounds::<AudioRendererSetPtsUnitsRequest>(offset);
10353 self.0.encode(encoder, offset + 0, depth)?;
10357 self.1.encode(encoder, offset + 4, depth)?;
10358 Ok(())
10359 }
10360 }
10361
10362 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10363 for AudioRendererSetPtsUnitsRequest
10364 {
10365 #[inline(always)]
10366 fn new_empty() -> Self {
10367 Self {
10368 tick_per_second_numerator: fidl::new_empty!(u32, D),
10369 tick_per_second_denominator: fidl::new_empty!(u32, D),
10370 }
10371 }
10372
10373 #[inline]
10374 unsafe fn decode(
10375 &mut self,
10376 decoder: &mut fidl::encoding::Decoder<'_, D>,
10377 offset: usize,
10378 _depth: fidl::encoding::Depth,
10379 ) -> fidl::Result<()> {
10380 decoder.debug_check_bounds::<Self>(offset);
10381 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10382 unsafe {
10385 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
10386 }
10387 Ok(())
10388 }
10389 }
10390
10391 impl fidl::encoding::ValueTypeMarker for AudioRendererSetUsage2Request {
10392 type Borrowed<'a> = &'a Self;
10393 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10394 value
10395 }
10396 }
10397
10398 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetUsage2Request {
10399 type Owned = Self;
10400
10401 #[inline(always)]
10402 fn inline_align(_context: fidl::encoding::Context) -> usize {
10403 4
10404 }
10405
10406 #[inline(always)]
10407 fn inline_size(_context: fidl::encoding::Context) -> usize {
10408 4
10409 }
10410 }
10411
10412 unsafe impl<D: fidl::encoding::ResourceDialect>
10413 fidl::encoding::Encode<AudioRendererSetUsage2Request, D>
10414 for &AudioRendererSetUsage2Request
10415 {
10416 #[inline]
10417 unsafe fn encode(
10418 self,
10419 encoder: &mut fidl::encoding::Encoder<'_, D>,
10420 offset: usize,
10421 _depth: fidl::encoding::Depth,
10422 ) -> fidl::Result<()> {
10423 encoder.debug_check_bounds::<AudioRendererSetUsage2Request>(offset);
10424 fidl::encoding::Encode::<AudioRendererSetUsage2Request, D>::encode(
10426 (<AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage2),),
10427 encoder,
10428 offset,
10429 _depth,
10430 )
10431 }
10432 }
10433 unsafe impl<
10434 D: fidl::encoding::ResourceDialect,
10435 T0: fidl::encoding::Encode<AudioRenderUsage2, D>,
10436 > fidl::encoding::Encode<AudioRendererSetUsage2Request, D> for (T0,)
10437 {
10438 #[inline]
10439 unsafe fn encode(
10440 self,
10441 encoder: &mut fidl::encoding::Encoder<'_, D>,
10442 offset: usize,
10443 depth: fidl::encoding::Depth,
10444 ) -> fidl::Result<()> {
10445 encoder.debug_check_bounds::<AudioRendererSetUsage2Request>(offset);
10446 self.0.encode(encoder, offset + 0, depth)?;
10450 Ok(())
10451 }
10452 }
10453
10454 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10455 for AudioRendererSetUsage2Request
10456 {
10457 #[inline(always)]
10458 fn new_empty() -> Self {
10459 Self { usage2: fidl::new_empty!(AudioRenderUsage2, D) }
10460 }
10461
10462 #[inline]
10463 unsafe fn decode(
10464 &mut self,
10465 decoder: &mut fidl::encoding::Decoder<'_, D>,
10466 offset: usize,
10467 _depth: fidl::encoding::Depth,
10468 ) -> fidl::Result<()> {
10469 decoder.debug_check_bounds::<Self>(offset);
10470 fidl::decode!(AudioRenderUsage2, D, &mut self.usage2, decoder, offset + 0, _depth)?;
10472 Ok(())
10473 }
10474 }
10475
10476 impl fidl::encoding::ValueTypeMarker for AudioRendererSetUsageRequest {
10477 type Borrowed<'a> = &'a Self;
10478 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10479 value
10480 }
10481 }
10482
10483 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetUsageRequest {
10484 type Owned = Self;
10485
10486 #[inline(always)]
10487 fn inline_align(_context: fidl::encoding::Context) -> usize {
10488 4
10489 }
10490
10491 #[inline(always)]
10492 fn inline_size(_context: fidl::encoding::Context) -> usize {
10493 4
10494 }
10495 }
10496
10497 unsafe impl<D: fidl::encoding::ResourceDialect>
10498 fidl::encoding::Encode<AudioRendererSetUsageRequest, D> for &AudioRendererSetUsageRequest
10499 {
10500 #[inline]
10501 unsafe fn encode(
10502 self,
10503 encoder: &mut fidl::encoding::Encoder<'_, D>,
10504 offset: usize,
10505 _depth: fidl::encoding::Depth,
10506 ) -> fidl::Result<()> {
10507 encoder.debug_check_bounds::<AudioRendererSetUsageRequest>(offset);
10508 fidl::encoding::Encode::<AudioRendererSetUsageRequest, D>::encode(
10510 (<AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
10511 encoder,
10512 offset,
10513 _depth,
10514 )
10515 }
10516 }
10517 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioRenderUsage, D>>
10518 fidl::encoding::Encode<AudioRendererSetUsageRequest, D> for (T0,)
10519 {
10520 #[inline]
10521 unsafe fn encode(
10522 self,
10523 encoder: &mut fidl::encoding::Encoder<'_, D>,
10524 offset: usize,
10525 depth: fidl::encoding::Depth,
10526 ) -> fidl::Result<()> {
10527 encoder.debug_check_bounds::<AudioRendererSetUsageRequest>(offset);
10528 self.0.encode(encoder, offset + 0, depth)?;
10532 Ok(())
10533 }
10534 }
10535
10536 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10537 for AudioRendererSetUsageRequest
10538 {
10539 #[inline(always)]
10540 fn new_empty() -> Self {
10541 Self { usage: fidl::new_empty!(AudioRenderUsage, D) }
10542 }
10543
10544 #[inline]
10545 unsafe fn decode(
10546 &mut self,
10547 decoder: &mut fidl::encoding::Decoder<'_, D>,
10548 offset: usize,
10549 _depth: fidl::encoding::Depth,
10550 ) -> fidl::Result<()> {
10551 decoder.debug_check_bounds::<Self>(offset);
10552 fidl::decode!(AudioRenderUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
10554 Ok(())
10555 }
10556 }
10557
10558 impl fidl::encoding::ValueTypeMarker for AudioStreamType {
10559 type Borrowed<'a> = &'a Self;
10560 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10561 value
10562 }
10563 }
10564
10565 unsafe impl fidl::encoding::TypeMarker for AudioStreamType {
10566 type Owned = Self;
10567
10568 #[inline(always)]
10569 fn inline_align(_context: fidl::encoding::Context) -> usize {
10570 4
10571 }
10572
10573 #[inline(always)]
10574 fn inline_size(_context: fidl::encoding::Context) -> usize {
10575 12
10576 }
10577 }
10578
10579 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioStreamType, D>
10580 for &AudioStreamType
10581 {
10582 #[inline]
10583 unsafe fn encode(
10584 self,
10585 encoder: &mut fidl::encoding::Encoder<'_, D>,
10586 offset: usize,
10587 _depth: fidl::encoding::Depth,
10588 ) -> fidl::Result<()> {
10589 encoder.debug_check_bounds::<AudioStreamType>(offset);
10590 fidl::encoding::Encode::<AudioStreamType, D>::encode(
10592 (
10593 <AudioSampleFormat as fidl::encoding::ValueTypeMarker>::borrow(
10594 &self.sample_format,
10595 ),
10596 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.channels),
10597 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frames_per_second),
10598 ),
10599 encoder,
10600 offset,
10601 _depth,
10602 )
10603 }
10604 }
10605 unsafe impl<
10606 D: fidl::encoding::ResourceDialect,
10607 T0: fidl::encoding::Encode<AudioSampleFormat, D>,
10608 T1: fidl::encoding::Encode<u32, D>,
10609 T2: fidl::encoding::Encode<u32, D>,
10610 > fidl::encoding::Encode<AudioStreamType, D> for (T0, T1, T2)
10611 {
10612 #[inline]
10613 unsafe fn encode(
10614 self,
10615 encoder: &mut fidl::encoding::Encoder<'_, D>,
10616 offset: usize,
10617 depth: fidl::encoding::Depth,
10618 ) -> fidl::Result<()> {
10619 encoder.debug_check_bounds::<AudioStreamType>(offset);
10620 self.0.encode(encoder, offset + 0, depth)?;
10624 self.1.encode(encoder, offset + 4, depth)?;
10625 self.2.encode(encoder, offset + 8, depth)?;
10626 Ok(())
10627 }
10628 }
10629
10630 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioStreamType {
10631 #[inline(always)]
10632 fn new_empty() -> Self {
10633 Self {
10634 sample_format: fidl::new_empty!(AudioSampleFormat, D),
10635 channels: fidl::new_empty!(u32, D),
10636 frames_per_second: fidl::new_empty!(u32, D),
10637 }
10638 }
10639
10640 #[inline]
10641 unsafe fn decode(
10642 &mut self,
10643 decoder: &mut fidl::encoding::Decoder<'_, D>,
10644 offset: usize,
10645 _depth: fidl::encoding::Depth,
10646 ) -> fidl::Result<()> {
10647 decoder.debug_check_bounds::<Self>(offset);
10648 fidl::decode!(
10650 AudioSampleFormat,
10651 D,
10652 &mut self.sample_format,
10653 decoder,
10654 offset + 0,
10655 _depth
10656 )?;
10657 fidl::decode!(u32, D, &mut self.channels, decoder, offset + 4, _depth)?;
10658 fidl::decode!(u32, D, &mut self.frames_per_second, decoder, offset + 8, _depth)?;
10659 Ok(())
10660 }
10661 }
10662
10663 impl fidl::encoding::ValueTypeMarker for Compression {
10664 type Borrowed<'a> = &'a Self;
10665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10666 value
10667 }
10668 }
10669
10670 unsafe impl fidl::encoding::TypeMarker for Compression {
10671 type Owned = Self;
10672
10673 #[inline(always)]
10674 fn inline_align(_context: fidl::encoding::Context) -> usize {
10675 8
10676 }
10677
10678 #[inline(always)]
10679 fn inline_size(_context: fidl::encoding::Context) -> usize {
10680 32
10681 }
10682 }
10683
10684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Compression, D>
10685 for &Compression
10686 {
10687 #[inline]
10688 unsafe fn encode(
10689 self,
10690 encoder: &mut fidl::encoding::Encoder<'_, D>,
10691 offset: usize,
10692 _depth: fidl::encoding::Depth,
10693 ) -> fidl::Result<()> {
10694 encoder.debug_check_bounds::<Compression>(offset);
10695 fidl::encoding::Encode::<Compression, D>::encode(
10697 (
10698 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),
10699 <fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
10700 ),
10701 encoder, offset, _depth
10702 )
10703 }
10704 }
10705 unsafe impl<
10706 D: fidl::encoding::ResourceDialect,
10707 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
10708 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>, D>,
10709 > fidl::encoding::Encode<Compression, D> for (T0, T1)
10710 {
10711 #[inline]
10712 unsafe fn encode(
10713 self,
10714 encoder: &mut fidl::encoding::Encoder<'_, D>,
10715 offset: usize,
10716 depth: fidl::encoding::Depth,
10717 ) -> fidl::Result<()> {
10718 encoder.debug_check_bounds::<Compression>(offset);
10719 self.0.encode(encoder, offset + 0, depth)?;
10723 self.1.encode(encoder, offset + 16, depth)?;
10724 Ok(())
10725 }
10726 }
10727
10728 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Compression {
10729 #[inline(always)]
10730 fn new_empty() -> Self {
10731 Self {
10732 type_: fidl::new_empty!(fidl::encoding::BoundedString<256>, D),
10733 parameters: fidl::new_empty!(
10734 fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>,
10735 D
10736 ),
10737 }
10738 }
10739
10740 #[inline]
10741 unsafe fn decode(
10742 &mut self,
10743 decoder: &mut fidl::encoding::Decoder<'_, D>,
10744 offset: usize,
10745 _depth: fidl::encoding::Depth,
10746 ) -> fidl::Result<()> {
10747 decoder.debug_check_bounds::<Self>(offset);
10748 fidl::decode!(
10750 fidl::encoding::BoundedString<256>,
10751 D,
10752 &mut self.type_,
10753 decoder,
10754 offset + 0,
10755 _depth
10756 )?;
10757 fidl::decode!(
10758 fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>,
10759 D,
10760 &mut self.parameters,
10761 decoder,
10762 offset + 16,
10763 _depth
10764 )?;
10765 Ok(())
10766 }
10767 }
10768
10769 impl fidl::encoding::ValueTypeMarker for EncryptionPattern {
10770 type Borrowed<'a> = &'a Self;
10771 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10772 value
10773 }
10774 }
10775
10776 unsafe impl fidl::encoding::TypeMarker for EncryptionPattern {
10777 type Owned = Self;
10778
10779 #[inline(always)]
10780 fn inline_align(_context: fidl::encoding::Context) -> usize {
10781 4
10782 }
10783
10784 #[inline(always)]
10785 fn inline_size(_context: fidl::encoding::Context) -> usize {
10786 8
10787 }
10788 #[inline(always)]
10789 fn encode_is_copy() -> bool {
10790 true
10791 }
10792
10793 #[inline(always)]
10794 fn decode_is_copy() -> bool {
10795 true
10796 }
10797 }
10798
10799 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncryptionPattern, D>
10800 for &EncryptionPattern
10801 {
10802 #[inline]
10803 unsafe fn encode(
10804 self,
10805 encoder: &mut fidl::encoding::Encoder<'_, D>,
10806 offset: usize,
10807 _depth: fidl::encoding::Depth,
10808 ) -> fidl::Result<()> {
10809 encoder.debug_check_bounds::<EncryptionPattern>(offset);
10810 unsafe {
10811 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10813 (buf_ptr as *mut EncryptionPattern)
10814 .write_unaligned((self as *const EncryptionPattern).read());
10815 }
10818 Ok(())
10819 }
10820 }
10821 unsafe impl<
10822 D: fidl::encoding::ResourceDialect,
10823 T0: fidl::encoding::Encode<u32, D>,
10824 T1: fidl::encoding::Encode<u32, D>,
10825 > fidl::encoding::Encode<EncryptionPattern, D> for (T0, T1)
10826 {
10827 #[inline]
10828 unsafe fn encode(
10829 self,
10830 encoder: &mut fidl::encoding::Encoder<'_, D>,
10831 offset: usize,
10832 depth: fidl::encoding::Depth,
10833 ) -> fidl::Result<()> {
10834 encoder.debug_check_bounds::<EncryptionPattern>(offset);
10835 self.0.encode(encoder, offset + 0, depth)?;
10839 self.1.encode(encoder, offset + 4, depth)?;
10840 Ok(())
10841 }
10842 }
10843
10844 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncryptionPattern {
10845 #[inline(always)]
10846 fn new_empty() -> Self {
10847 Self {
10848 clear_blocks: fidl::new_empty!(u32, D),
10849 encrypted_blocks: fidl::new_empty!(u32, D),
10850 }
10851 }
10852
10853 #[inline]
10854 unsafe fn decode(
10855 &mut self,
10856 decoder: &mut fidl::encoding::Decoder<'_, D>,
10857 offset: usize,
10858 _depth: fidl::encoding::Depth,
10859 ) -> fidl::Result<()> {
10860 decoder.debug_check_bounds::<Self>(offset);
10861 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10862 unsafe {
10865 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
10866 }
10867 Ok(())
10868 }
10869 }
10870
10871 impl fidl::encoding::ValueTypeMarker for Metadata {
10872 type Borrowed<'a> = &'a Self;
10873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10874 value
10875 }
10876 }
10877
10878 unsafe impl fidl::encoding::TypeMarker for Metadata {
10879 type Owned = Self;
10880
10881 #[inline(always)]
10882 fn inline_align(_context: fidl::encoding::Context) -> usize {
10883 8
10884 }
10885
10886 #[inline(always)]
10887 fn inline_size(_context: fidl::encoding::Context) -> usize {
10888 16
10889 }
10890 }
10891
10892 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Metadata, D> for &Metadata {
10893 #[inline]
10894 unsafe fn encode(
10895 self,
10896 encoder: &mut fidl::encoding::Encoder<'_, D>,
10897 offset: usize,
10898 _depth: fidl::encoding::Depth,
10899 ) -> fidl::Result<()> {
10900 encoder.debug_check_bounds::<Metadata>(offset);
10901 fidl::encoding::Encode::<Metadata, D>::encode(
10903 (
10904 <fidl::encoding::UnboundedVector<Property> as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),
10905 ),
10906 encoder, offset, _depth
10907 )
10908 }
10909 }
10910 unsafe impl<
10911 D: fidl::encoding::ResourceDialect,
10912 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Property>, D>,
10913 > fidl::encoding::Encode<Metadata, D> for (T0,)
10914 {
10915 #[inline]
10916 unsafe fn encode(
10917 self,
10918 encoder: &mut fidl::encoding::Encoder<'_, D>,
10919 offset: usize,
10920 depth: fidl::encoding::Depth,
10921 ) -> fidl::Result<()> {
10922 encoder.debug_check_bounds::<Metadata>(offset);
10923 self.0.encode(encoder, offset + 0, depth)?;
10927 Ok(())
10928 }
10929 }
10930
10931 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Metadata {
10932 #[inline(always)]
10933 fn new_empty() -> Self {
10934 Self { properties: fidl::new_empty!(fidl::encoding::UnboundedVector<Property>, D) }
10935 }
10936
10937 #[inline]
10938 unsafe fn decode(
10939 &mut self,
10940 decoder: &mut fidl::encoding::Decoder<'_, D>,
10941 offset: usize,
10942 _depth: fidl::encoding::Depth,
10943 ) -> fidl::Result<()> {
10944 decoder.debug_check_bounds::<Self>(offset);
10945 fidl::decode!(
10947 fidl::encoding::UnboundedVector<Property>,
10948 D,
10949 &mut self.properties,
10950 decoder,
10951 offset + 0,
10952 _depth
10953 )?;
10954 Ok(())
10955 }
10956 }
10957
10958 impl fidl::encoding::ValueTypeMarker for Parameter {
10959 type Borrowed<'a> = &'a Self;
10960 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10961 value
10962 }
10963 }
10964
10965 unsafe impl fidl::encoding::TypeMarker for Parameter {
10966 type Owned = Self;
10967
10968 #[inline(always)]
10969 fn inline_align(_context: fidl::encoding::Context) -> usize {
10970 8
10971 }
10972
10973 #[inline(always)]
10974 fn inline_size(_context: fidl::encoding::Context) -> usize {
10975 48
10976 }
10977 }
10978
10979 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Parameter, D>
10980 for &Parameter
10981 {
10982 #[inline]
10983 unsafe fn encode(
10984 self,
10985 encoder: &mut fidl::encoding::Encoder<'_, D>,
10986 offset: usize,
10987 _depth: fidl::encoding::Depth,
10988 ) -> fidl::Result<()> {
10989 encoder.debug_check_bounds::<Parameter>(offset);
10990 fidl::encoding::Encode::<Parameter, D>::encode(
10992 (
10993 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
10994 &self.scope,
10995 ),
10996 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
10997 &self.name,
10998 ),
10999 <Value as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
11000 ),
11001 encoder,
11002 offset,
11003 _depth,
11004 )
11005 }
11006 }
11007 unsafe impl<
11008 D: fidl::encoding::ResourceDialect,
11009 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11010 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11011 T2: fidl::encoding::Encode<Value, D>,
11012 > fidl::encoding::Encode<Parameter, D> for (T0, T1, T2)
11013 {
11014 #[inline]
11015 unsafe fn encode(
11016 self,
11017 encoder: &mut fidl::encoding::Encoder<'_, D>,
11018 offset: usize,
11019 depth: fidl::encoding::Depth,
11020 ) -> fidl::Result<()> {
11021 encoder.debug_check_bounds::<Parameter>(offset);
11022 self.0.encode(encoder, offset + 0, depth)?;
11026 self.1.encode(encoder, offset + 16, depth)?;
11027 self.2.encode(encoder, offset + 32, depth)?;
11028 Ok(())
11029 }
11030 }
11031
11032 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Parameter {
11033 #[inline(always)]
11034 fn new_empty() -> Self {
11035 Self {
11036 scope: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11037 name: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11038 value: fidl::new_empty!(Value, D),
11039 }
11040 }
11041
11042 #[inline]
11043 unsafe fn decode(
11044 &mut self,
11045 decoder: &mut fidl::encoding::Decoder<'_, D>,
11046 offset: usize,
11047 _depth: fidl::encoding::Depth,
11048 ) -> fidl::Result<()> {
11049 decoder.debug_check_bounds::<Self>(offset);
11050 fidl::decode!(
11052 fidl::encoding::UnboundedString,
11053 D,
11054 &mut self.scope,
11055 decoder,
11056 offset + 0,
11057 _depth
11058 )?;
11059 fidl::decode!(
11060 fidl::encoding::UnboundedString,
11061 D,
11062 &mut self.name,
11063 decoder,
11064 offset + 16,
11065 _depth
11066 )?;
11067 fidl::decode!(Value, D, &mut self.value, decoder, offset + 32, _depth)?;
11068 Ok(())
11069 }
11070 }
11071
11072 impl fidl::encoding::ValueTypeMarker for PcmFormat {
11073 type Borrowed<'a> = &'a Self;
11074 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11075 value
11076 }
11077 }
11078
11079 unsafe impl fidl::encoding::TypeMarker for PcmFormat {
11080 type Owned = Self;
11081
11082 #[inline(always)]
11083 fn inline_align(_context: fidl::encoding::Context) -> usize {
11084 8
11085 }
11086
11087 #[inline(always)]
11088 fn inline_size(_context: fidl::encoding::Context) -> usize {
11089 32
11090 }
11091 }
11092
11093 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmFormat, D>
11094 for &PcmFormat
11095 {
11096 #[inline]
11097 unsafe fn encode(
11098 self,
11099 encoder: &mut fidl::encoding::Encoder<'_, D>,
11100 offset: usize,
11101 _depth: fidl::encoding::Depth,
11102 ) -> fidl::Result<()> {
11103 encoder.debug_check_bounds::<PcmFormat>(offset);
11104 fidl::encoding::Encode::<PcmFormat, D>::encode(
11106 (
11107 <AudioPcmMode as fidl::encoding::ValueTypeMarker>::borrow(&self.pcm_mode),
11108 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
11109 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frames_per_second),
11110 <fidl::encoding::Vector<AudioChannelId, 16> as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_map),
11111 ),
11112 encoder, offset, _depth
11113 )
11114 }
11115 }
11116 unsafe impl<
11117 D: fidl::encoding::ResourceDialect,
11118 T0: fidl::encoding::Encode<AudioPcmMode, D>,
11119 T1: fidl::encoding::Encode<u32, D>,
11120 T2: fidl::encoding::Encode<u32, D>,
11121 T3: fidl::encoding::Encode<fidl::encoding::Vector<AudioChannelId, 16>, D>,
11122 > fidl::encoding::Encode<PcmFormat, D> for (T0, T1, T2, T3)
11123 {
11124 #[inline]
11125 unsafe fn encode(
11126 self,
11127 encoder: &mut fidl::encoding::Encoder<'_, D>,
11128 offset: usize,
11129 depth: fidl::encoding::Depth,
11130 ) -> fidl::Result<()> {
11131 encoder.debug_check_bounds::<PcmFormat>(offset);
11132 unsafe {
11135 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11136 (ptr as *mut u64).write_unaligned(0);
11137 }
11138 self.0.encode(encoder, offset + 0, depth)?;
11140 self.1.encode(encoder, offset + 4, depth)?;
11141 self.2.encode(encoder, offset + 8, depth)?;
11142 self.3.encode(encoder, offset + 16, depth)?;
11143 Ok(())
11144 }
11145 }
11146
11147 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmFormat {
11148 #[inline(always)]
11149 fn new_empty() -> Self {
11150 Self {
11151 pcm_mode: fidl::new_empty!(AudioPcmMode, D),
11152 bits_per_sample: fidl::new_empty!(u32, D),
11153 frames_per_second: fidl::new_empty!(u32, D),
11154 channel_map: fidl::new_empty!(fidl::encoding::Vector<AudioChannelId, 16>, D),
11155 }
11156 }
11157
11158 #[inline]
11159 unsafe fn decode(
11160 &mut self,
11161 decoder: &mut fidl::encoding::Decoder<'_, D>,
11162 offset: usize,
11163 _depth: fidl::encoding::Depth,
11164 ) -> fidl::Result<()> {
11165 decoder.debug_check_bounds::<Self>(offset);
11166 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
11168 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11169 let mask = 0xffffffff00000000u64;
11170 let maskedval = padval & mask;
11171 if maskedval != 0 {
11172 return Err(fidl::Error::NonZeroPadding {
11173 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11174 });
11175 }
11176 fidl::decode!(AudioPcmMode, D, &mut self.pcm_mode, decoder, offset + 0, _depth)?;
11177 fidl::decode!(u32, D, &mut self.bits_per_sample, decoder, offset + 4, _depth)?;
11178 fidl::decode!(u32, D, &mut self.frames_per_second, decoder, offset + 8, _depth)?;
11179 fidl::decode!(fidl::encoding::Vector<AudioChannelId, 16>, D, &mut self.channel_map, decoder, offset + 16, _depth)?;
11180 Ok(())
11181 }
11182 }
11183
11184 impl fidl::encoding::ValueTypeMarker for ProfileProviderRegisterHandlerWithCapacityResponse {
11185 type Borrowed<'a> = &'a Self;
11186 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11187 value
11188 }
11189 }
11190
11191 unsafe impl fidl::encoding::TypeMarker for ProfileProviderRegisterHandlerWithCapacityResponse {
11192 type Owned = Self;
11193
11194 #[inline(always)]
11195 fn inline_align(_context: fidl::encoding::Context) -> usize {
11196 8
11197 }
11198
11199 #[inline(always)]
11200 fn inline_size(_context: fidl::encoding::Context) -> usize {
11201 16
11202 }
11203 #[inline(always)]
11204 fn encode_is_copy() -> bool {
11205 true
11206 }
11207
11208 #[inline(always)]
11209 fn decode_is_copy() -> bool {
11210 true
11211 }
11212 }
11213
11214 unsafe impl<D: fidl::encoding::ResourceDialect>
11215 fidl::encoding::Encode<ProfileProviderRegisterHandlerWithCapacityResponse, D>
11216 for &ProfileProviderRegisterHandlerWithCapacityResponse
11217 {
11218 #[inline]
11219 unsafe fn encode(
11220 self,
11221 encoder: &mut fidl::encoding::Encoder<'_, D>,
11222 offset: usize,
11223 _depth: fidl::encoding::Depth,
11224 ) -> fidl::Result<()> {
11225 encoder
11226 .debug_check_bounds::<ProfileProviderRegisterHandlerWithCapacityResponse>(offset);
11227 unsafe {
11228 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11230 (buf_ptr as *mut ProfileProviderRegisterHandlerWithCapacityResponse)
11231 .write_unaligned(
11232 (self as *const ProfileProviderRegisterHandlerWithCapacityResponse).read(),
11233 );
11234 }
11237 Ok(())
11238 }
11239 }
11240 unsafe impl<
11241 D: fidl::encoding::ResourceDialect,
11242 T0: fidl::encoding::Encode<i64, D>,
11243 T1: fidl::encoding::Encode<i64, D>,
11244 > fidl::encoding::Encode<ProfileProviderRegisterHandlerWithCapacityResponse, D> for (T0, T1)
11245 {
11246 #[inline]
11247 unsafe fn encode(
11248 self,
11249 encoder: &mut fidl::encoding::Encoder<'_, D>,
11250 offset: usize,
11251 depth: fidl::encoding::Depth,
11252 ) -> fidl::Result<()> {
11253 encoder
11254 .debug_check_bounds::<ProfileProviderRegisterHandlerWithCapacityResponse>(offset);
11255 self.0.encode(encoder, offset + 0, depth)?;
11259 self.1.encode(encoder, offset + 8, depth)?;
11260 Ok(())
11261 }
11262 }
11263
11264 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11265 for ProfileProviderRegisterHandlerWithCapacityResponse
11266 {
11267 #[inline(always)]
11268 fn new_empty() -> Self {
11269 Self { period: fidl::new_empty!(i64, D), capacity: fidl::new_empty!(i64, D) }
11270 }
11271
11272 #[inline]
11273 unsafe fn decode(
11274 &mut self,
11275 decoder: &mut fidl::encoding::Decoder<'_, D>,
11276 offset: usize,
11277 _depth: fidl::encoding::Depth,
11278 ) -> fidl::Result<()> {
11279 decoder.debug_check_bounds::<Self>(offset);
11280 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11281 unsafe {
11284 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
11285 }
11286 Ok(())
11287 }
11288 }
11289
11290 impl fidl::encoding::ValueTypeMarker for Property {
11291 type Borrowed<'a> = &'a Self;
11292 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11293 value
11294 }
11295 }
11296
11297 unsafe impl fidl::encoding::TypeMarker for Property {
11298 type Owned = Self;
11299
11300 #[inline(always)]
11301 fn inline_align(_context: fidl::encoding::Context) -> usize {
11302 8
11303 }
11304
11305 #[inline(always)]
11306 fn inline_size(_context: fidl::encoding::Context) -> usize {
11307 32
11308 }
11309 }
11310
11311 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Property, D> for &Property {
11312 #[inline]
11313 unsafe fn encode(
11314 self,
11315 encoder: &mut fidl::encoding::Encoder<'_, D>,
11316 offset: usize,
11317 _depth: fidl::encoding::Depth,
11318 ) -> fidl::Result<()> {
11319 encoder.debug_check_bounds::<Property>(offset);
11320 fidl::encoding::Encode::<Property, D>::encode(
11322 (
11323 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11324 &self.label,
11325 ),
11326 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11327 &self.value,
11328 ),
11329 ),
11330 encoder,
11331 offset,
11332 _depth,
11333 )
11334 }
11335 }
11336 unsafe impl<
11337 D: fidl::encoding::ResourceDialect,
11338 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11339 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11340 > fidl::encoding::Encode<Property, D> for (T0, T1)
11341 {
11342 #[inline]
11343 unsafe fn encode(
11344 self,
11345 encoder: &mut fidl::encoding::Encoder<'_, D>,
11346 offset: usize,
11347 depth: fidl::encoding::Depth,
11348 ) -> fidl::Result<()> {
11349 encoder.debug_check_bounds::<Property>(offset);
11350 self.0.encode(encoder, offset + 0, depth)?;
11354 self.1.encode(encoder, offset + 16, depth)?;
11355 Ok(())
11356 }
11357 }
11358
11359 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Property {
11360 #[inline(always)]
11361 fn new_empty() -> Self {
11362 Self {
11363 label: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11364 value: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11365 }
11366 }
11367
11368 #[inline]
11369 unsafe fn decode(
11370 &mut self,
11371 decoder: &mut fidl::encoding::Decoder<'_, D>,
11372 offset: usize,
11373 _depth: fidl::encoding::Depth,
11374 ) -> fidl::Result<()> {
11375 decoder.debug_check_bounds::<Self>(offset);
11376 fidl::decode!(
11378 fidl::encoding::UnboundedString,
11379 D,
11380 &mut self.label,
11381 decoder,
11382 offset + 0,
11383 _depth
11384 )?;
11385 fidl::decode!(
11386 fidl::encoding::UnboundedString,
11387 D,
11388 &mut self.value,
11389 decoder,
11390 offset + 16,
11391 _depth
11392 )?;
11393 Ok(())
11394 }
11395 }
11396
11397 impl fidl::encoding::ValueTypeMarker for SbcEncoderSettings {
11398 type Borrowed<'a> = &'a Self;
11399 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11400 value
11401 }
11402 }
11403
11404 unsafe impl fidl::encoding::TypeMarker for SbcEncoderSettings {
11405 type Owned = Self;
11406
11407 #[inline(always)]
11408 fn inline_align(_context: fidl::encoding::Context) -> usize {
11409 8
11410 }
11411
11412 #[inline(always)]
11413 fn inline_size(_context: fidl::encoding::Context) -> usize {
11414 24
11415 }
11416 }
11417
11418 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SbcEncoderSettings, D>
11419 for &SbcEncoderSettings
11420 {
11421 #[inline]
11422 unsafe fn encode(
11423 self,
11424 encoder: &mut fidl::encoding::Encoder<'_, D>,
11425 offset: usize,
11426 _depth: fidl::encoding::Depth,
11427 ) -> fidl::Result<()> {
11428 encoder.debug_check_bounds::<SbcEncoderSettings>(offset);
11429 fidl::encoding::Encode::<SbcEncoderSettings, D>::encode(
11431 (
11432 <SbcSubBands as fidl::encoding::ValueTypeMarker>::borrow(&self.sub_bands),
11433 <SbcAllocation as fidl::encoding::ValueTypeMarker>::borrow(&self.allocation),
11434 <SbcBlockCount as fidl::encoding::ValueTypeMarker>::borrow(&self.block_count),
11435 <SbcChannelMode as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_mode),
11436 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.bit_pool),
11437 ),
11438 encoder,
11439 offset,
11440 _depth,
11441 )
11442 }
11443 }
11444 unsafe impl<
11445 D: fidl::encoding::ResourceDialect,
11446 T0: fidl::encoding::Encode<SbcSubBands, D>,
11447 T1: fidl::encoding::Encode<SbcAllocation, D>,
11448 T2: fidl::encoding::Encode<SbcBlockCount, D>,
11449 T3: fidl::encoding::Encode<SbcChannelMode, D>,
11450 T4: fidl::encoding::Encode<u64, D>,
11451 > fidl::encoding::Encode<SbcEncoderSettings, D> for (T0, T1, T2, T3, T4)
11452 {
11453 #[inline]
11454 unsafe fn encode(
11455 self,
11456 encoder: &mut fidl::encoding::Encoder<'_, D>,
11457 offset: usize,
11458 depth: fidl::encoding::Depth,
11459 ) -> fidl::Result<()> {
11460 encoder.debug_check_bounds::<SbcEncoderSettings>(offset);
11461 self.0.encode(encoder, offset + 0, depth)?;
11465 self.1.encode(encoder, offset + 4, depth)?;
11466 self.2.encode(encoder, offset + 8, depth)?;
11467 self.3.encode(encoder, offset + 12, depth)?;
11468 self.4.encode(encoder, offset + 16, depth)?;
11469 Ok(())
11470 }
11471 }
11472
11473 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcEncoderSettings {
11474 #[inline(always)]
11475 fn new_empty() -> Self {
11476 Self {
11477 sub_bands: fidl::new_empty!(SbcSubBands, D),
11478 allocation: fidl::new_empty!(SbcAllocation, D),
11479 block_count: fidl::new_empty!(SbcBlockCount, D),
11480 channel_mode: fidl::new_empty!(SbcChannelMode, D),
11481 bit_pool: fidl::new_empty!(u64, D),
11482 }
11483 }
11484
11485 #[inline]
11486 unsafe fn decode(
11487 &mut self,
11488 decoder: &mut fidl::encoding::Decoder<'_, D>,
11489 offset: usize,
11490 _depth: fidl::encoding::Depth,
11491 ) -> fidl::Result<()> {
11492 decoder.debug_check_bounds::<Self>(offset);
11493 fidl::decode!(SbcSubBands, D, &mut self.sub_bands, decoder, offset + 0, _depth)?;
11495 fidl::decode!(SbcAllocation, D, &mut self.allocation, decoder, offset + 4, _depth)?;
11496 fidl::decode!(SbcBlockCount, D, &mut self.block_count, decoder, offset + 8, _depth)?;
11497 fidl::decode!(SbcChannelMode, D, &mut self.channel_mode, decoder, offset + 12, _depth)?;
11498 fidl::decode!(u64, D, &mut self.bit_pool, decoder, offset + 16, _depth)?;
11499 Ok(())
11500 }
11501 }
11502
11503 impl fidl::encoding::ValueTypeMarker for StreamBufferSetRemovePayloadBufferRequest {
11504 type Borrowed<'a> = &'a Self;
11505 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11506 value
11507 }
11508 }
11509
11510 unsafe impl fidl::encoding::TypeMarker for StreamBufferSetRemovePayloadBufferRequest {
11511 type Owned = Self;
11512
11513 #[inline(always)]
11514 fn inline_align(_context: fidl::encoding::Context) -> usize {
11515 4
11516 }
11517
11518 #[inline(always)]
11519 fn inline_size(_context: fidl::encoding::Context) -> usize {
11520 4
11521 }
11522 #[inline(always)]
11523 fn encode_is_copy() -> bool {
11524 true
11525 }
11526
11527 #[inline(always)]
11528 fn decode_is_copy() -> bool {
11529 true
11530 }
11531 }
11532
11533 unsafe impl<D: fidl::encoding::ResourceDialect>
11534 fidl::encoding::Encode<StreamBufferSetRemovePayloadBufferRequest, D>
11535 for &StreamBufferSetRemovePayloadBufferRequest
11536 {
11537 #[inline]
11538 unsafe fn encode(
11539 self,
11540 encoder: &mut fidl::encoding::Encoder<'_, D>,
11541 offset: usize,
11542 _depth: fidl::encoding::Depth,
11543 ) -> fidl::Result<()> {
11544 encoder.debug_check_bounds::<StreamBufferSetRemovePayloadBufferRequest>(offset);
11545 unsafe {
11546 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11548 (buf_ptr as *mut StreamBufferSetRemovePayloadBufferRequest).write_unaligned(
11549 (self as *const StreamBufferSetRemovePayloadBufferRequest).read(),
11550 );
11551 }
11554 Ok(())
11555 }
11556 }
11557 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
11558 fidl::encoding::Encode<StreamBufferSetRemovePayloadBufferRequest, D> for (T0,)
11559 {
11560 #[inline]
11561 unsafe fn encode(
11562 self,
11563 encoder: &mut fidl::encoding::Encoder<'_, D>,
11564 offset: usize,
11565 depth: fidl::encoding::Depth,
11566 ) -> fidl::Result<()> {
11567 encoder.debug_check_bounds::<StreamBufferSetRemovePayloadBufferRequest>(offset);
11568 self.0.encode(encoder, offset + 0, depth)?;
11572 Ok(())
11573 }
11574 }
11575
11576 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11577 for StreamBufferSetRemovePayloadBufferRequest
11578 {
11579 #[inline(always)]
11580 fn new_empty() -> Self {
11581 Self { id: fidl::new_empty!(u32, D) }
11582 }
11583
11584 #[inline]
11585 unsafe fn decode(
11586 &mut self,
11587 decoder: &mut fidl::encoding::Decoder<'_, D>,
11588 offset: usize,
11589 _depth: fidl::encoding::Depth,
11590 ) -> fidl::Result<()> {
11591 decoder.debug_check_bounds::<Self>(offset);
11592 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11593 unsafe {
11596 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
11597 }
11598 Ok(())
11599 }
11600 }
11601
11602 impl fidl::encoding::ValueTypeMarker for StreamPacket {
11603 type Borrowed<'a> = &'a Self;
11604 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11605 value
11606 }
11607 }
11608
11609 unsafe impl fidl::encoding::TypeMarker for StreamPacket {
11610 type Owned = Self;
11611
11612 #[inline(always)]
11613 fn inline_align(_context: fidl::encoding::Context) -> usize {
11614 8
11615 }
11616
11617 #[inline(always)]
11618 fn inline_size(_context: fidl::encoding::Context) -> usize {
11619 56
11620 }
11621 }
11622
11623 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamPacket, D>
11624 for &StreamPacket
11625 {
11626 #[inline]
11627 unsafe fn encode(
11628 self,
11629 encoder: &mut fidl::encoding::Encoder<'_, D>,
11630 offset: usize,
11631 _depth: fidl::encoding::Depth,
11632 ) -> fidl::Result<()> {
11633 encoder.debug_check_bounds::<StreamPacket>(offset);
11634 unsafe {
11635 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11637 (buf_ptr as *mut StreamPacket)
11638 .write_unaligned((self as *const StreamPacket).read());
11639 let padding_ptr = buf_ptr.offset(8) as *mut u64;
11642 let padding_mask = 0xffffffff00000000u64;
11643 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
11644 let padding_ptr = buf_ptr.offset(32) as *mut u64;
11645 let padding_mask = 0xffffffff00000000u64;
11646 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
11647 }
11648 Ok(())
11649 }
11650 }
11651 unsafe impl<
11652 D: fidl::encoding::ResourceDialect,
11653 T0: fidl::encoding::Encode<i64, D>,
11654 T1: fidl::encoding::Encode<u32, D>,
11655 T2: fidl::encoding::Encode<u64, D>,
11656 T3: fidl::encoding::Encode<u64, D>,
11657 T4: fidl::encoding::Encode<u32, D>,
11658 T5: fidl::encoding::Encode<u64, D>,
11659 T6: fidl::encoding::Encode<u64, D>,
11660 > fidl::encoding::Encode<StreamPacket, D> for (T0, T1, T2, T3, T4, T5, T6)
11661 {
11662 #[inline]
11663 unsafe fn encode(
11664 self,
11665 encoder: &mut fidl::encoding::Encoder<'_, D>,
11666 offset: usize,
11667 depth: fidl::encoding::Depth,
11668 ) -> fidl::Result<()> {
11669 encoder.debug_check_bounds::<StreamPacket>(offset);
11670 unsafe {
11673 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11674 (ptr as *mut u64).write_unaligned(0);
11675 }
11676 unsafe {
11677 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
11678 (ptr as *mut u64).write_unaligned(0);
11679 }
11680 self.0.encode(encoder, offset + 0, depth)?;
11682 self.1.encode(encoder, offset + 8, depth)?;
11683 self.2.encode(encoder, offset + 16, depth)?;
11684 self.3.encode(encoder, offset + 24, depth)?;
11685 self.4.encode(encoder, offset + 32, depth)?;
11686 self.5.encode(encoder, offset + 40, depth)?;
11687 self.6.encode(encoder, offset + 48, depth)?;
11688 Ok(())
11689 }
11690 }
11691
11692 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamPacket {
11693 #[inline(always)]
11694 fn new_empty() -> Self {
11695 Self {
11696 pts: fidl::new_empty!(i64, D),
11697 payload_buffer_id: fidl::new_empty!(u32, D),
11698 payload_offset: fidl::new_empty!(u64, D),
11699 payload_size: fidl::new_empty!(u64, D),
11700 flags: fidl::new_empty!(u32, D),
11701 buffer_config: fidl::new_empty!(u64, D),
11702 stream_segment_id: fidl::new_empty!(u64, D),
11703 }
11704 }
11705
11706 #[inline]
11707 unsafe fn decode(
11708 &mut self,
11709 decoder: &mut fidl::encoding::Decoder<'_, D>,
11710 offset: usize,
11711 _depth: fidl::encoding::Depth,
11712 ) -> fidl::Result<()> {
11713 decoder.debug_check_bounds::<Self>(offset);
11714 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11715 let ptr = unsafe { buf_ptr.offset(8) };
11717 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11718 let mask = 0xffffffff00000000u64;
11719 let maskedval = padval & mask;
11720 if maskedval != 0 {
11721 return Err(fidl::Error::NonZeroPadding {
11722 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11723 });
11724 }
11725 let ptr = unsafe { buf_ptr.offset(32) };
11726 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11727 let mask = 0xffffffff00000000u64;
11728 let maskedval = padval & mask;
11729 if maskedval != 0 {
11730 return Err(fidl::Error::NonZeroPadding {
11731 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
11732 });
11733 }
11734 unsafe {
11736 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
11737 }
11738 Ok(())
11739 }
11740 }
11741
11742 impl fidl::encoding::ValueTypeMarker for StreamProcessorCloseCurrentStreamRequest {
11743 type Borrowed<'a> = &'a Self;
11744 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11745 value
11746 }
11747 }
11748
11749 unsafe impl fidl::encoding::TypeMarker for StreamProcessorCloseCurrentStreamRequest {
11750 type Owned = Self;
11751
11752 #[inline(always)]
11753 fn inline_align(_context: fidl::encoding::Context) -> usize {
11754 8
11755 }
11756
11757 #[inline(always)]
11758 fn inline_size(_context: fidl::encoding::Context) -> usize {
11759 16
11760 }
11761 }
11762
11763 unsafe impl<D: fidl::encoding::ResourceDialect>
11764 fidl::encoding::Encode<StreamProcessorCloseCurrentStreamRequest, D>
11765 for &StreamProcessorCloseCurrentStreamRequest
11766 {
11767 #[inline]
11768 unsafe fn encode(
11769 self,
11770 encoder: &mut fidl::encoding::Encoder<'_, D>,
11771 offset: usize,
11772 _depth: fidl::encoding::Depth,
11773 ) -> fidl::Result<()> {
11774 encoder.debug_check_bounds::<StreamProcessorCloseCurrentStreamRequest>(offset);
11775 fidl::encoding::Encode::<StreamProcessorCloseCurrentStreamRequest, D>::encode(
11777 (
11778 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
11779 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.release_input_buffers),
11780 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.release_output_buffers),
11781 ),
11782 encoder,
11783 offset,
11784 _depth,
11785 )
11786 }
11787 }
11788 unsafe impl<
11789 D: fidl::encoding::ResourceDialect,
11790 T0: fidl::encoding::Encode<u64, D>,
11791 T1: fidl::encoding::Encode<bool, D>,
11792 T2: fidl::encoding::Encode<bool, D>,
11793 > fidl::encoding::Encode<StreamProcessorCloseCurrentStreamRequest, D> for (T0, T1, T2)
11794 {
11795 #[inline]
11796 unsafe fn encode(
11797 self,
11798 encoder: &mut fidl::encoding::Encoder<'_, D>,
11799 offset: usize,
11800 depth: fidl::encoding::Depth,
11801 ) -> fidl::Result<()> {
11802 encoder.debug_check_bounds::<StreamProcessorCloseCurrentStreamRequest>(offset);
11803 unsafe {
11806 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11807 (ptr as *mut u64).write_unaligned(0);
11808 }
11809 self.0.encode(encoder, offset + 0, depth)?;
11811 self.1.encode(encoder, offset + 8, depth)?;
11812 self.2.encode(encoder, offset + 9, depth)?;
11813 Ok(())
11814 }
11815 }
11816
11817 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11818 for StreamProcessorCloseCurrentStreamRequest
11819 {
11820 #[inline(always)]
11821 fn new_empty() -> Self {
11822 Self {
11823 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
11824 release_input_buffers: fidl::new_empty!(bool, D),
11825 release_output_buffers: fidl::new_empty!(bool, D),
11826 }
11827 }
11828
11829 #[inline]
11830 unsafe fn decode(
11831 &mut self,
11832 decoder: &mut fidl::encoding::Decoder<'_, D>,
11833 offset: usize,
11834 _depth: fidl::encoding::Depth,
11835 ) -> fidl::Result<()> {
11836 decoder.debug_check_bounds::<Self>(offset);
11837 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
11839 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11840 let mask = 0xffffffffffff0000u64;
11841 let maskedval = padval & mask;
11842 if maskedval != 0 {
11843 return Err(fidl::Error::NonZeroPadding {
11844 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11845 });
11846 }
11847 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
11848 fidl::decode!(bool, D, &mut self.release_input_buffers, decoder, offset + 8, _depth)?;
11849 fidl::decode!(bool, D, &mut self.release_output_buffers, decoder, offset + 9, _depth)?;
11850 Ok(())
11851 }
11852 }
11853
11854 impl fidl::encoding::ValueTypeMarker for StreamProcessorCompleteOutputBufferPartialSettingsRequest {
11855 type Borrowed<'a> = &'a Self;
11856 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11857 value
11858 }
11859 }
11860
11861 unsafe impl fidl::encoding::TypeMarker
11862 for StreamProcessorCompleteOutputBufferPartialSettingsRequest
11863 {
11864 type Owned = Self;
11865
11866 #[inline(always)]
11867 fn inline_align(_context: fidl::encoding::Context) -> usize {
11868 8
11869 }
11870
11871 #[inline(always)]
11872 fn inline_size(_context: fidl::encoding::Context) -> usize {
11873 8
11874 }
11875 #[inline(always)]
11876 fn encode_is_copy() -> bool {
11877 true
11878 }
11879
11880 #[inline(always)]
11881 fn decode_is_copy() -> bool {
11882 true
11883 }
11884 }
11885
11886 unsafe impl<D: fidl::encoding::ResourceDialect>
11887 fidl::encoding::Encode<StreamProcessorCompleteOutputBufferPartialSettingsRequest, D>
11888 for &StreamProcessorCompleteOutputBufferPartialSettingsRequest
11889 {
11890 #[inline]
11891 unsafe fn encode(
11892 self,
11893 encoder: &mut fidl::encoding::Encoder<'_, D>,
11894 offset: usize,
11895 _depth: fidl::encoding::Depth,
11896 ) -> fidl::Result<()> {
11897 encoder
11898 .debug_check_bounds::<StreamProcessorCompleteOutputBufferPartialSettingsRequest>(
11899 offset,
11900 );
11901 unsafe {
11902 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11904 (buf_ptr as *mut StreamProcessorCompleteOutputBufferPartialSettingsRequest)
11905 .write_unaligned(
11906 (self as *const StreamProcessorCompleteOutputBufferPartialSettingsRequest)
11907 .read(),
11908 );
11909 }
11912 Ok(())
11913 }
11914 }
11915 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
11916 fidl::encoding::Encode<StreamProcessorCompleteOutputBufferPartialSettingsRequest, D>
11917 for (T0,)
11918 {
11919 #[inline]
11920 unsafe fn encode(
11921 self,
11922 encoder: &mut fidl::encoding::Encoder<'_, D>,
11923 offset: usize,
11924 depth: fidl::encoding::Depth,
11925 ) -> fidl::Result<()> {
11926 encoder
11927 .debug_check_bounds::<StreamProcessorCompleteOutputBufferPartialSettingsRequest>(
11928 offset,
11929 );
11930 self.0.encode(encoder, offset + 0, depth)?;
11934 Ok(())
11935 }
11936 }
11937
11938 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11939 for StreamProcessorCompleteOutputBufferPartialSettingsRequest
11940 {
11941 #[inline(always)]
11942 fn new_empty() -> Self {
11943 Self { buffer_lifetime_ordinal: fidl::new_empty!(u64, D) }
11944 }
11945
11946 #[inline]
11947 unsafe fn decode(
11948 &mut self,
11949 decoder: &mut fidl::encoding::Decoder<'_, D>,
11950 offset: usize,
11951 _depth: fidl::encoding::Depth,
11952 ) -> fidl::Result<()> {
11953 decoder.debug_check_bounds::<Self>(offset);
11954 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11955 unsafe {
11958 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
11959 }
11960 Ok(())
11961 }
11962 }
11963
11964 impl fidl::encoding::ValueTypeMarker for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
11965 type Borrowed<'a> = &'a Self;
11966 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11967 value
11968 }
11969 }
11970
11971 unsafe impl fidl::encoding::TypeMarker for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
11972 type Owned = Self;
11973
11974 #[inline(always)]
11975 fn inline_align(_context: fidl::encoding::Context) -> usize {
11976 8
11977 }
11978
11979 #[inline(always)]
11980 fn inline_size(_context: fidl::encoding::Context) -> usize {
11981 8
11982 }
11983 #[inline(always)]
11984 fn encode_is_copy() -> bool {
11985 true
11986 }
11987
11988 #[inline(always)]
11989 fn decode_is_copy() -> bool {
11990 true
11991 }
11992 }
11993
11994 unsafe impl<D: fidl::encoding::ResourceDialect>
11995 fidl::encoding::Encode<StreamProcessorFlushEndOfStreamAndCloseStreamRequest, D>
11996 for &StreamProcessorFlushEndOfStreamAndCloseStreamRequest
11997 {
11998 #[inline]
11999 unsafe fn encode(
12000 self,
12001 encoder: &mut fidl::encoding::Encoder<'_, D>,
12002 offset: usize,
12003 _depth: fidl::encoding::Depth,
12004 ) -> fidl::Result<()> {
12005 encoder
12006 .debug_check_bounds::<StreamProcessorFlushEndOfStreamAndCloseStreamRequest>(offset);
12007 unsafe {
12008 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
12010 (buf_ptr as *mut StreamProcessorFlushEndOfStreamAndCloseStreamRequest)
12011 .write_unaligned(
12012 (self as *const StreamProcessorFlushEndOfStreamAndCloseStreamRequest)
12013 .read(),
12014 );
12015 }
12018 Ok(())
12019 }
12020 }
12021 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
12022 fidl::encoding::Encode<StreamProcessorFlushEndOfStreamAndCloseStreamRequest, D> for (T0,)
12023 {
12024 #[inline]
12025 unsafe fn encode(
12026 self,
12027 encoder: &mut fidl::encoding::Encoder<'_, D>,
12028 offset: usize,
12029 depth: fidl::encoding::Depth,
12030 ) -> fidl::Result<()> {
12031 encoder
12032 .debug_check_bounds::<StreamProcessorFlushEndOfStreamAndCloseStreamRequest>(offset);
12033 self.0.encode(encoder, offset + 0, depth)?;
12037 Ok(())
12038 }
12039 }
12040
12041 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12042 for StreamProcessorFlushEndOfStreamAndCloseStreamRequest
12043 {
12044 #[inline(always)]
12045 fn new_empty() -> Self {
12046 Self { stream_lifetime_ordinal: fidl::new_empty!(u64, D) }
12047 }
12048
12049 #[inline]
12050 unsafe fn decode(
12051 &mut self,
12052 decoder: &mut fidl::encoding::Decoder<'_, D>,
12053 offset: usize,
12054 _depth: fidl::encoding::Depth,
12055 ) -> fidl::Result<()> {
12056 decoder.debug_check_bounds::<Self>(offset);
12057 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
12058 unsafe {
12061 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
12062 }
12063 Ok(())
12064 }
12065 }
12066
12067 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnFreeInputPacketRequest {
12068 type Borrowed<'a> = &'a Self;
12069 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12070 value
12071 }
12072 }
12073
12074 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnFreeInputPacketRequest {
12075 type Owned = Self;
12076
12077 #[inline(always)]
12078 fn inline_align(_context: fidl::encoding::Context) -> usize {
12079 8
12080 }
12081
12082 #[inline(always)]
12083 fn inline_size(_context: fidl::encoding::Context) -> usize {
12084 16
12085 }
12086 }
12087
12088 unsafe impl<D: fidl::encoding::ResourceDialect>
12089 fidl::encoding::Encode<StreamProcessorOnFreeInputPacketRequest, D>
12090 for &StreamProcessorOnFreeInputPacketRequest
12091 {
12092 #[inline]
12093 unsafe fn encode(
12094 self,
12095 encoder: &mut fidl::encoding::Encoder<'_, D>,
12096 offset: usize,
12097 _depth: fidl::encoding::Depth,
12098 ) -> fidl::Result<()> {
12099 encoder.debug_check_bounds::<StreamProcessorOnFreeInputPacketRequest>(offset);
12100 fidl::encoding::Encode::<StreamProcessorOnFreeInputPacketRequest, D>::encode(
12102 (<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow(
12103 &self.free_input_packet,
12104 ),),
12105 encoder,
12106 offset,
12107 _depth,
12108 )
12109 }
12110 }
12111 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PacketHeader, D>>
12112 fidl::encoding::Encode<StreamProcessorOnFreeInputPacketRequest, D> for (T0,)
12113 {
12114 #[inline]
12115 unsafe fn encode(
12116 self,
12117 encoder: &mut fidl::encoding::Encoder<'_, D>,
12118 offset: usize,
12119 depth: fidl::encoding::Depth,
12120 ) -> fidl::Result<()> {
12121 encoder.debug_check_bounds::<StreamProcessorOnFreeInputPacketRequest>(offset);
12122 self.0.encode(encoder, offset + 0, depth)?;
12126 Ok(())
12127 }
12128 }
12129
12130 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12131 for StreamProcessorOnFreeInputPacketRequest
12132 {
12133 #[inline(always)]
12134 fn new_empty() -> Self {
12135 Self { free_input_packet: fidl::new_empty!(PacketHeader, D) }
12136 }
12137
12138 #[inline]
12139 unsafe fn decode(
12140 &mut self,
12141 decoder: &mut fidl::encoding::Decoder<'_, D>,
12142 offset: usize,
12143 _depth: fidl::encoding::Depth,
12144 ) -> fidl::Result<()> {
12145 decoder.debug_check_bounds::<Self>(offset);
12146 fidl::decode!(
12148 PacketHeader,
12149 D,
12150 &mut self.free_input_packet,
12151 decoder,
12152 offset + 0,
12153 _depth
12154 )?;
12155 Ok(())
12156 }
12157 }
12158
12159 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnInputConstraintsRequest {
12160 type Borrowed<'a> = &'a Self;
12161 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12162 value
12163 }
12164 }
12165
12166 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnInputConstraintsRequest {
12167 type Owned = Self;
12168
12169 #[inline(always)]
12170 fn inline_align(_context: fidl::encoding::Context) -> usize {
12171 8
12172 }
12173
12174 #[inline(always)]
12175 fn inline_size(_context: fidl::encoding::Context) -> usize {
12176 16
12177 }
12178 }
12179
12180 unsafe impl<D: fidl::encoding::ResourceDialect>
12181 fidl::encoding::Encode<StreamProcessorOnInputConstraintsRequest, D>
12182 for &StreamProcessorOnInputConstraintsRequest
12183 {
12184 #[inline]
12185 unsafe fn encode(
12186 self,
12187 encoder: &mut fidl::encoding::Encoder<'_, D>,
12188 offset: usize,
12189 _depth: fidl::encoding::Depth,
12190 ) -> fidl::Result<()> {
12191 encoder.debug_check_bounds::<StreamProcessorOnInputConstraintsRequest>(offset);
12192 fidl::encoding::Encode::<StreamProcessorOnInputConstraintsRequest, D>::encode(
12194 (<StreamBufferConstraints as fidl::encoding::ValueTypeMarker>::borrow(
12195 &self.input_constraints,
12196 ),),
12197 encoder,
12198 offset,
12199 _depth,
12200 )
12201 }
12202 }
12203 unsafe impl<
12204 D: fidl::encoding::ResourceDialect,
12205 T0: fidl::encoding::Encode<StreamBufferConstraints, D>,
12206 > fidl::encoding::Encode<StreamProcessorOnInputConstraintsRequest, D> for (T0,)
12207 {
12208 #[inline]
12209 unsafe fn encode(
12210 self,
12211 encoder: &mut fidl::encoding::Encoder<'_, D>,
12212 offset: usize,
12213 depth: fidl::encoding::Depth,
12214 ) -> fidl::Result<()> {
12215 encoder.debug_check_bounds::<StreamProcessorOnInputConstraintsRequest>(offset);
12216 self.0.encode(encoder, offset + 0, depth)?;
12220 Ok(())
12221 }
12222 }
12223
12224 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12225 for StreamProcessorOnInputConstraintsRequest
12226 {
12227 #[inline(always)]
12228 fn new_empty() -> Self {
12229 Self { input_constraints: fidl::new_empty!(StreamBufferConstraints, D) }
12230 }
12231
12232 #[inline]
12233 unsafe fn decode(
12234 &mut self,
12235 decoder: &mut fidl::encoding::Decoder<'_, D>,
12236 offset: usize,
12237 _depth: fidl::encoding::Depth,
12238 ) -> fidl::Result<()> {
12239 decoder.debug_check_bounds::<Self>(offset);
12240 fidl::decode!(
12242 StreamBufferConstraints,
12243 D,
12244 &mut self.input_constraints,
12245 decoder,
12246 offset + 0,
12247 _depth
12248 )?;
12249 Ok(())
12250 }
12251 }
12252
12253 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputConstraintsRequest {
12254 type Borrowed<'a> = &'a Self;
12255 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12256 value
12257 }
12258 }
12259
12260 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputConstraintsRequest {
12261 type Owned = Self;
12262
12263 #[inline(always)]
12264 fn inline_align(_context: fidl::encoding::Context) -> usize {
12265 8
12266 }
12267
12268 #[inline(always)]
12269 fn inline_size(_context: fidl::encoding::Context) -> usize {
12270 16
12271 }
12272 }
12273
12274 unsafe impl<D: fidl::encoding::ResourceDialect>
12275 fidl::encoding::Encode<StreamProcessorOnOutputConstraintsRequest, D>
12276 for &StreamProcessorOnOutputConstraintsRequest
12277 {
12278 #[inline]
12279 unsafe fn encode(
12280 self,
12281 encoder: &mut fidl::encoding::Encoder<'_, D>,
12282 offset: usize,
12283 _depth: fidl::encoding::Depth,
12284 ) -> fidl::Result<()> {
12285 encoder.debug_check_bounds::<StreamProcessorOnOutputConstraintsRequest>(offset);
12286 fidl::encoding::Encode::<StreamProcessorOnOutputConstraintsRequest, D>::encode(
12288 (<StreamOutputConstraints as fidl::encoding::ValueTypeMarker>::borrow(
12289 &self.output_config,
12290 ),),
12291 encoder,
12292 offset,
12293 _depth,
12294 )
12295 }
12296 }
12297 unsafe impl<
12298 D: fidl::encoding::ResourceDialect,
12299 T0: fidl::encoding::Encode<StreamOutputConstraints, D>,
12300 > fidl::encoding::Encode<StreamProcessorOnOutputConstraintsRequest, D> for (T0,)
12301 {
12302 #[inline]
12303 unsafe fn encode(
12304 self,
12305 encoder: &mut fidl::encoding::Encoder<'_, D>,
12306 offset: usize,
12307 depth: fidl::encoding::Depth,
12308 ) -> fidl::Result<()> {
12309 encoder.debug_check_bounds::<StreamProcessorOnOutputConstraintsRequest>(offset);
12310 self.0.encode(encoder, offset + 0, depth)?;
12314 Ok(())
12315 }
12316 }
12317
12318 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12319 for StreamProcessorOnOutputConstraintsRequest
12320 {
12321 #[inline(always)]
12322 fn new_empty() -> Self {
12323 Self { output_config: fidl::new_empty!(StreamOutputConstraints, D) }
12324 }
12325
12326 #[inline]
12327 unsafe fn decode(
12328 &mut self,
12329 decoder: &mut fidl::encoding::Decoder<'_, D>,
12330 offset: usize,
12331 _depth: fidl::encoding::Depth,
12332 ) -> fidl::Result<()> {
12333 decoder.debug_check_bounds::<Self>(offset);
12334 fidl::decode!(
12336 StreamOutputConstraints,
12337 D,
12338 &mut self.output_config,
12339 decoder,
12340 offset + 0,
12341 _depth
12342 )?;
12343 Ok(())
12344 }
12345 }
12346
12347 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputEndOfStreamRequest {
12348 type Borrowed<'a> = &'a Self;
12349 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12350 value
12351 }
12352 }
12353
12354 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputEndOfStreamRequest {
12355 type Owned = Self;
12356
12357 #[inline(always)]
12358 fn inline_align(_context: fidl::encoding::Context) -> usize {
12359 8
12360 }
12361
12362 #[inline(always)]
12363 fn inline_size(_context: fidl::encoding::Context) -> usize {
12364 16
12365 }
12366 }
12367
12368 unsafe impl<D: fidl::encoding::ResourceDialect>
12369 fidl::encoding::Encode<StreamProcessorOnOutputEndOfStreamRequest, D>
12370 for &StreamProcessorOnOutputEndOfStreamRequest
12371 {
12372 #[inline]
12373 unsafe fn encode(
12374 self,
12375 encoder: &mut fidl::encoding::Encoder<'_, D>,
12376 offset: usize,
12377 _depth: fidl::encoding::Depth,
12378 ) -> fidl::Result<()> {
12379 encoder.debug_check_bounds::<StreamProcessorOnOutputEndOfStreamRequest>(offset);
12380 fidl::encoding::Encode::<StreamProcessorOnOutputEndOfStreamRequest, D>::encode(
12382 (
12383 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12384 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_before),
12385 ),
12386 encoder,
12387 offset,
12388 _depth,
12389 )
12390 }
12391 }
12392 unsafe impl<
12393 D: fidl::encoding::ResourceDialect,
12394 T0: fidl::encoding::Encode<u64, D>,
12395 T1: fidl::encoding::Encode<bool, D>,
12396 > fidl::encoding::Encode<StreamProcessorOnOutputEndOfStreamRequest, D> for (T0, T1)
12397 {
12398 #[inline]
12399 unsafe fn encode(
12400 self,
12401 encoder: &mut fidl::encoding::Encoder<'_, D>,
12402 offset: usize,
12403 depth: fidl::encoding::Depth,
12404 ) -> fidl::Result<()> {
12405 encoder.debug_check_bounds::<StreamProcessorOnOutputEndOfStreamRequest>(offset);
12406 unsafe {
12409 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
12410 (ptr as *mut u64).write_unaligned(0);
12411 }
12412 self.0.encode(encoder, offset + 0, depth)?;
12414 self.1.encode(encoder, offset + 8, depth)?;
12415 Ok(())
12416 }
12417 }
12418
12419 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12420 for StreamProcessorOnOutputEndOfStreamRequest
12421 {
12422 #[inline(always)]
12423 fn new_empty() -> Self {
12424 Self {
12425 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12426 error_detected_before: fidl::new_empty!(bool, D),
12427 }
12428 }
12429
12430 #[inline]
12431 unsafe fn decode(
12432 &mut self,
12433 decoder: &mut fidl::encoding::Decoder<'_, D>,
12434 offset: usize,
12435 _depth: fidl::encoding::Depth,
12436 ) -> fidl::Result<()> {
12437 decoder.debug_check_bounds::<Self>(offset);
12438 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
12440 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12441 let mask = 0xffffffffffffff00u64;
12442 let maskedval = padval & mask;
12443 if maskedval != 0 {
12444 return Err(fidl::Error::NonZeroPadding {
12445 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
12446 });
12447 }
12448 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12449 fidl::decode!(bool, D, &mut self.error_detected_before, decoder, offset + 8, _depth)?;
12450 Ok(())
12451 }
12452 }
12453
12454 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputFormatRequest {
12455 type Borrowed<'a> = &'a Self;
12456 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12457 value
12458 }
12459 }
12460
12461 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputFormatRequest {
12462 type Owned = Self;
12463
12464 #[inline(always)]
12465 fn inline_align(_context: fidl::encoding::Context) -> usize {
12466 8
12467 }
12468
12469 #[inline(always)]
12470 fn inline_size(_context: fidl::encoding::Context) -> usize {
12471 16
12472 }
12473 }
12474
12475 unsafe impl<D: fidl::encoding::ResourceDialect>
12476 fidl::encoding::Encode<StreamProcessorOnOutputFormatRequest, D>
12477 for &StreamProcessorOnOutputFormatRequest
12478 {
12479 #[inline]
12480 unsafe fn encode(
12481 self,
12482 encoder: &mut fidl::encoding::Encoder<'_, D>,
12483 offset: usize,
12484 _depth: fidl::encoding::Depth,
12485 ) -> fidl::Result<()> {
12486 encoder.debug_check_bounds::<StreamProcessorOnOutputFormatRequest>(offset);
12487 fidl::encoding::Encode::<StreamProcessorOnOutputFormatRequest, D>::encode(
12489 (<StreamOutputFormat as fidl::encoding::ValueTypeMarker>::borrow(
12490 &self.output_format,
12491 ),),
12492 encoder,
12493 offset,
12494 _depth,
12495 )
12496 }
12497 }
12498 unsafe impl<
12499 D: fidl::encoding::ResourceDialect,
12500 T0: fidl::encoding::Encode<StreamOutputFormat, D>,
12501 > fidl::encoding::Encode<StreamProcessorOnOutputFormatRequest, D> for (T0,)
12502 {
12503 #[inline]
12504 unsafe fn encode(
12505 self,
12506 encoder: &mut fidl::encoding::Encoder<'_, D>,
12507 offset: usize,
12508 depth: fidl::encoding::Depth,
12509 ) -> fidl::Result<()> {
12510 encoder.debug_check_bounds::<StreamProcessorOnOutputFormatRequest>(offset);
12511 self.0.encode(encoder, offset + 0, depth)?;
12515 Ok(())
12516 }
12517 }
12518
12519 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12520 for StreamProcessorOnOutputFormatRequest
12521 {
12522 #[inline(always)]
12523 fn new_empty() -> Self {
12524 Self { output_format: fidl::new_empty!(StreamOutputFormat, D) }
12525 }
12526
12527 #[inline]
12528 unsafe fn decode(
12529 &mut self,
12530 decoder: &mut fidl::encoding::Decoder<'_, D>,
12531 offset: usize,
12532 _depth: fidl::encoding::Depth,
12533 ) -> fidl::Result<()> {
12534 decoder.debug_check_bounds::<Self>(offset);
12535 fidl::decode!(
12537 StreamOutputFormat,
12538 D,
12539 &mut self.output_format,
12540 decoder,
12541 offset + 0,
12542 _depth
12543 )?;
12544 Ok(())
12545 }
12546 }
12547
12548 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputPacketRequest {
12549 type Borrowed<'a> = &'a Self;
12550 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12551 value
12552 }
12553 }
12554
12555 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputPacketRequest {
12556 type Owned = Self;
12557
12558 #[inline(always)]
12559 fn inline_align(_context: fidl::encoding::Context) -> usize {
12560 8
12561 }
12562
12563 #[inline(always)]
12564 fn inline_size(_context: fidl::encoding::Context) -> usize {
12565 24
12566 }
12567 }
12568
12569 unsafe impl<D: fidl::encoding::ResourceDialect>
12570 fidl::encoding::Encode<StreamProcessorOnOutputPacketRequest, D>
12571 for &StreamProcessorOnOutputPacketRequest
12572 {
12573 #[inline]
12574 unsafe fn encode(
12575 self,
12576 encoder: &mut fidl::encoding::Encoder<'_, D>,
12577 offset: usize,
12578 _depth: fidl::encoding::Depth,
12579 ) -> fidl::Result<()> {
12580 encoder.debug_check_bounds::<StreamProcessorOnOutputPacketRequest>(offset);
12581 fidl::encoding::Encode::<StreamProcessorOnOutputPacketRequest, D>::encode(
12583 (
12584 <Packet as fidl::encoding::ValueTypeMarker>::borrow(&self.output_packet),
12585 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_before),
12586 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_during),
12587 ),
12588 encoder,
12589 offset,
12590 _depth,
12591 )
12592 }
12593 }
12594 unsafe impl<
12595 D: fidl::encoding::ResourceDialect,
12596 T0: fidl::encoding::Encode<Packet, D>,
12597 T1: fidl::encoding::Encode<bool, D>,
12598 T2: fidl::encoding::Encode<bool, D>,
12599 > fidl::encoding::Encode<StreamProcessorOnOutputPacketRequest, D> for (T0, T1, T2)
12600 {
12601 #[inline]
12602 unsafe fn encode(
12603 self,
12604 encoder: &mut fidl::encoding::Encoder<'_, D>,
12605 offset: usize,
12606 depth: fidl::encoding::Depth,
12607 ) -> fidl::Result<()> {
12608 encoder.debug_check_bounds::<StreamProcessorOnOutputPacketRequest>(offset);
12609 unsafe {
12612 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
12613 (ptr as *mut u64).write_unaligned(0);
12614 }
12615 self.0.encode(encoder, offset + 0, depth)?;
12617 self.1.encode(encoder, offset + 16, depth)?;
12618 self.2.encode(encoder, offset + 17, depth)?;
12619 Ok(())
12620 }
12621 }
12622
12623 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12624 for StreamProcessorOnOutputPacketRequest
12625 {
12626 #[inline(always)]
12627 fn new_empty() -> Self {
12628 Self {
12629 output_packet: fidl::new_empty!(Packet, D),
12630 error_detected_before: fidl::new_empty!(bool, D),
12631 error_detected_during: fidl::new_empty!(bool, D),
12632 }
12633 }
12634
12635 #[inline]
12636 unsafe fn decode(
12637 &mut self,
12638 decoder: &mut fidl::encoding::Decoder<'_, D>,
12639 offset: usize,
12640 _depth: fidl::encoding::Depth,
12641 ) -> fidl::Result<()> {
12642 decoder.debug_check_bounds::<Self>(offset);
12643 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
12645 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12646 let mask = 0xffffffffffff0000u64;
12647 let maskedval = padval & mask;
12648 if maskedval != 0 {
12649 return Err(fidl::Error::NonZeroPadding {
12650 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
12651 });
12652 }
12653 fidl::decode!(Packet, D, &mut self.output_packet, decoder, offset + 0, _depth)?;
12654 fidl::decode!(bool, D, &mut self.error_detected_before, decoder, offset + 16, _depth)?;
12655 fidl::decode!(bool, D, &mut self.error_detected_during, decoder, offset + 17, _depth)?;
12656 Ok(())
12657 }
12658 }
12659
12660 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnStreamFailedRequest {
12661 type Borrowed<'a> = &'a Self;
12662 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12663 value
12664 }
12665 }
12666
12667 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnStreamFailedRequest {
12668 type Owned = Self;
12669
12670 #[inline(always)]
12671 fn inline_align(_context: fidl::encoding::Context) -> usize {
12672 8
12673 }
12674
12675 #[inline(always)]
12676 fn inline_size(_context: fidl::encoding::Context) -> usize {
12677 16
12678 }
12679 }
12680
12681 unsafe impl<D: fidl::encoding::ResourceDialect>
12682 fidl::encoding::Encode<StreamProcessorOnStreamFailedRequest, D>
12683 for &StreamProcessorOnStreamFailedRequest
12684 {
12685 #[inline]
12686 unsafe fn encode(
12687 self,
12688 encoder: &mut fidl::encoding::Encoder<'_, D>,
12689 offset: usize,
12690 _depth: fidl::encoding::Depth,
12691 ) -> fidl::Result<()> {
12692 encoder.debug_check_bounds::<StreamProcessorOnStreamFailedRequest>(offset);
12693 fidl::encoding::Encode::<StreamProcessorOnStreamFailedRequest, D>::encode(
12695 (
12696 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12697 <StreamError as fidl::encoding::ValueTypeMarker>::borrow(&self.error),
12698 ),
12699 encoder,
12700 offset,
12701 _depth,
12702 )
12703 }
12704 }
12705 unsafe impl<
12706 D: fidl::encoding::ResourceDialect,
12707 T0: fidl::encoding::Encode<u64, D>,
12708 T1: fidl::encoding::Encode<StreamError, D>,
12709 > fidl::encoding::Encode<StreamProcessorOnStreamFailedRequest, D> for (T0, T1)
12710 {
12711 #[inline]
12712 unsafe fn encode(
12713 self,
12714 encoder: &mut fidl::encoding::Encoder<'_, D>,
12715 offset: usize,
12716 depth: fidl::encoding::Depth,
12717 ) -> fidl::Result<()> {
12718 encoder.debug_check_bounds::<StreamProcessorOnStreamFailedRequest>(offset);
12719 unsafe {
12722 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
12723 (ptr as *mut u64).write_unaligned(0);
12724 }
12725 self.0.encode(encoder, offset + 0, depth)?;
12727 self.1.encode(encoder, offset + 8, depth)?;
12728 Ok(())
12729 }
12730 }
12731
12732 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12733 for StreamProcessorOnStreamFailedRequest
12734 {
12735 #[inline(always)]
12736 fn new_empty() -> Self {
12737 Self {
12738 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12739 error: fidl::new_empty!(StreamError, D),
12740 }
12741 }
12742
12743 #[inline]
12744 unsafe fn decode(
12745 &mut self,
12746 decoder: &mut fidl::encoding::Decoder<'_, D>,
12747 offset: usize,
12748 _depth: fidl::encoding::Depth,
12749 ) -> fidl::Result<()> {
12750 decoder.debug_check_bounds::<Self>(offset);
12751 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
12753 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12754 let mask = 0xffffffff00000000u64;
12755 let maskedval = padval & mask;
12756 if maskedval != 0 {
12757 return Err(fidl::Error::NonZeroPadding {
12758 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
12759 });
12760 }
12761 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12762 fidl::decode!(StreamError, D, &mut self.error, decoder, offset + 8, _depth)?;
12763 Ok(())
12764 }
12765 }
12766
12767 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputEndOfStreamRequest {
12768 type Borrowed<'a> = &'a Self;
12769 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12770 value
12771 }
12772 }
12773
12774 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputEndOfStreamRequest {
12775 type Owned = Self;
12776
12777 #[inline(always)]
12778 fn inline_align(_context: fidl::encoding::Context) -> usize {
12779 8
12780 }
12781
12782 #[inline(always)]
12783 fn inline_size(_context: fidl::encoding::Context) -> usize {
12784 8
12785 }
12786 #[inline(always)]
12787 fn encode_is_copy() -> bool {
12788 true
12789 }
12790
12791 #[inline(always)]
12792 fn decode_is_copy() -> bool {
12793 true
12794 }
12795 }
12796
12797 unsafe impl<D: fidl::encoding::ResourceDialect>
12798 fidl::encoding::Encode<StreamProcessorQueueInputEndOfStreamRequest, D>
12799 for &StreamProcessorQueueInputEndOfStreamRequest
12800 {
12801 #[inline]
12802 unsafe fn encode(
12803 self,
12804 encoder: &mut fidl::encoding::Encoder<'_, D>,
12805 offset: usize,
12806 _depth: fidl::encoding::Depth,
12807 ) -> fidl::Result<()> {
12808 encoder.debug_check_bounds::<StreamProcessorQueueInputEndOfStreamRequest>(offset);
12809 unsafe {
12810 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
12812 (buf_ptr as *mut StreamProcessorQueueInputEndOfStreamRequest).write_unaligned(
12813 (self as *const StreamProcessorQueueInputEndOfStreamRequest).read(),
12814 );
12815 }
12818 Ok(())
12819 }
12820 }
12821 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
12822 fidl::encoding::Encode<StreamProcessorQueueInputEndOfStreamRequest, D> for (T0,)
12823 {
12824 #[inline]
12825 unsafe fn encode(
12826 self,
12827 encoder: &mut fidl::encoding::Encoder<'_, D>,
12828 offset: usize,
12829 depth: fidl::encoding::Depth,
12830 ) -> fidl::Result<()> {
12831 encoder.debug_check_bounds::<StreamProcessorQueueInputEndOfStreamRequest>(offset);
12832 self.0.encode(encoder, offset + 0, depth)?;
12836 Ok(())
12837 }
12838 }
12839
12840 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12841 for StreamProcessorQueueInputEndOfStreamRequest
12842 {
12843 #[inline(always)]
12844 fn new_empty() -> Self {
12845 Self { stream_lifetime_ordinal: fidl::new_empty!(u64, D) }
12846 }
12847
12848 #[inline]
12849 unsafe fn decode(
12850 &mut self,
12851 decoder: &mut fidl::encoding::Decoder<'_, D>,
12852 offset: usize,
12853 _depth: fidl::encoding::Depth,
12854 ) -> fidl::Result<()> {
12855 decoder.debug_check_bounds::<Self>(offset);
12856 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
12857 unsafe {
12860 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
12861 }
12862 Ok(())
12863 }
12864 }
12865
12866 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputFormatDetailsRequest {
12867 type Borrowed<'a> = &'a Self;
12868 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12869 value
12870 }
12871 }
12872
12873 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputFormatDetailsRequest {
12874 type Owned = Self;
12875
12876 #[inline(always)]
12877 fn inline_align(_context: fidl::encoding::Context) -> usize {
12878 8
12879 }
12880
12881 #[inline(always)]
12882 fn inline_size(_context: fidl::encoding::Context) -> usize {
12883 24
12884 }
12885 }
12886
12887 unsafe impl<D: fidl::encoding::ResourceDialect>
12888 fidl::encoding::Encode<StreamProcessorQueueInputFormatDetailsRequest, D>
12889 for &StreamProcessorQueueInputFormatDetailsRequest
12890 {
12891 #[inline]
12892 unsafe fn encode(
12893 self,
12894 encoder: &mut fidl::encoding::Encoder<'_, D>,
12895 offset: usize,
12896 _depth: fidl::encoding::Depth,
12897 ) -> fidl::Result<()> {
12898 encoder.debug_check_bounds::<StreamProcessorQueueInputFormatDetailsRequest>(offset);
12899 fidl::encoding::Encode::<StreamProcessorQueueInputFormatDetailsRequest, D>::encode(
12901 (
12902 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12903 <FormatDetails as fidl::encoding::ValueTypeMarker>::borrow(
12904 &self.format_details,
12905 ),
12906 ),
12907 encoder,
12908 offset,
12909 _depth,
12910 )
12911 }
12912 }
12913 unsafe impl<
12914 D: fidl::encoding::ResourceDialect,
12915 T0: fidl::encoding::Encode<u64, D>,
12916 T1: fidl::encoding::Encode<FormatDetails, D>,
12917 > fidl::encoding::Encode<StreamProcessorQueueInputFormatDetailsRequest, D> for (T0, T1)
12918 {
12919 #[inline]
12920 unsafe fn encode(
12921 self,
12922 encoder: &mut fidl::encoding::Encoder<'_, D>,
12923 offset: usize,
12924 depth: fidl::encoding::Depth,
12925 ) -> fidl::Result<()> {
12926 encoder.debug_check_bounds::<StreamProcessorQueueInputFormatDetailsRequest>(offset);
12927 self.0.encode(encoder, offset + 0, depth)?;
12931 self.1.encode(encoder, offset + 8, depth)?;
12932 Ok(())
12933 }
12934 }
12935
12936 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12937 for StreamProcessorQueueInputFormatDetailsRequest
12938 {
12939 #[inline(always)]
12940 fn new_empty() -> Self {
12941 Self {
12942 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12943 format_details: fidl::new_empty!(FormatDetails, D),
12944 }
12945 }
12946
12947 #[inline]
12948 unsafe fn decode(
12949 &mut self,
12950 decoder: &mut fidl::encoding::Decoder<'_, D>,
12951 offset: usize,
12952 _depth: fidl::encoding::Depth,
12953 ) -> fidl::Result<()> {
12954 decoder.debug_check_bounds::<Self>(offset);
12955 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12957 fidl::decode!(FormatDetails, D, &mut self.format_details, decoder, offset + 8, _depth)?;
12958 Ok(())
12959 }
12960 }
12961
12962 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputPacketRequest {
12963 type Borrowed<'a> = &'a Self;
12964 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12965 value
12966 }
12967 }
12968
12969 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputPacketRequest {
12970 type Owned = Self;
12971
12972 #[inline(always)]
12973 fn inline_align(_context: fidl::encoding::Context) -> usize {
12974 8
12975 }
12976
12977 #[inline(always)]
12978 fn inline_size(_context: fidl::encoding::Context) -> usize {
12979 16
12980 }
12981 }
12982
12983 unsafe impl<D: fidl::encoding::ResourceDialect>
12984 fidl::encoding::Encode<StreamProcessorQueueInputPacketRequest, D>
12985 for &StreamProcessorQueueInputPacketRequest
12986 {
12987 #[inline]
12988 unsafe fn encode(
12989 self,
12990 encoder: &mut fidl::encoding::Encoder<'_, D>,
12991 offset: usize,
12992 _depth: fidl::encoding::Depth,
12993 ) -> fidl::Result<()> {
12994 encoder.debug_check_bounds::<StreamProcessorQueueInputPacketRequest>(offset);
12995 fidl::encoding::Encode::<StreamProcessorQueueInputPacketRequest, D>::encode(
12997 (<Packet as fidl::encoding::ValueTypeMarker>::borrow(&self.packet),),
12998 encoder,
12999 offset,
13000 _depth,
13001 )
13002 }
13003 }
13004 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Packet, D>>
13005 fidl::encoding::Encode<StreamProcessorQueueInputPacketRequest, D> for (T0,)
13006 {
13007 #[inline]
13008 unsafe fn encode(
13009 self,
13010 encoder: &mut fidl::encoding::Encoder<'_, D>,
13011 offset: usize,
13012 depth: fidl::encoding::Depth,
13013 ) -> fidl::Result<()> {
13014 encoder.debug_check_bounds::<StreamProcessorQueueInputPacketRequest>(offset);
13015 self.0.encode(encoder, offset + 0, depth)?;
13019 Ok(())
13020 }
13021 }
13022
13023 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13024 for StreamProcessorQueueInputPacketRequest
13025 {
13026 #[inline(always)]
13027 fn new_empty() -> Self {
13028 Self { packet: fidl::new_empty!(Packet, D) }
13029 }
13030
13031 #[inline]
13032 unsafe fn decode(
13033 &mut self,
13034 decoder: &mut fidl::encoding::Decoder<'_, D>,
13035 offset: usize,
13036 _depth: fidl::encoding::Depth,
13037 ) -> fidl::Result<()> {
13038 decoder.debug_check_bounds::<Self>(offset);
13039 fidl::decode!(Packet, D, &mut self.packet, decoder, offset + 0, _depth)?;
13041 Ok(())
13042 }
13043 }
13044
13045 impl fidl::encoding::ValueTypeMarker for StreamProcessorRecycleOutputPacketRequest {
13046 type Borrowed<'a> = &'a Self;
13047 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13048 value
13049 }
13050 }
13051
13052 unsafe impl fidl::encoding::TypeMarker for StreamProcessorRecycleOutputPacketRequest {
13053 type Owned = Self;
13054
13055 #[inline(always)]
13056 fn inline_align(_context: fidl::encoding::Context) -> usize {
13057 8
13058 }
13059
13060 #[inline(always)]
13061 fn inline_size(_context: fidl::encoding::Context) -> usize {
13062 16
13063 }
13064 }
13065
13066 unsafe impl<D: fidl::encoding::ResourceDialect>
13067 fidl::encoding::Encode<StreamProcessorRecycleOutputPacketRequest, D>
13068 for &StreamProcessorRecycleOutputPacketRequest
13069 {
13070 #[inline]
13071 unsafe fn encode(
13072 self,
13073 encoder: &mut fidl::encoding::Encoder<'_, D>,
13074 offset: usize,
13075 _depth: fidl::encoding::Depth,
13076 ) -> fidl::Result<()> {
13077 encoder.debug_check_bounds::<StreamProcessorRecycleOutputPacketRequest>(offset);
13078 fidl::encoding::Encode::<StreamProcessorRecycleOutputPacketRequest, D>::encode(
13080 (<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow(
13081 &self.available_output_packet,
13082 ),),
13083 encoder,
13084 offset,
13085 _depth,
13086 )
13087 }
13088 }
13089 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PacketHeader, D>>
13090 fidl::encoding::Encode<StreamProcessorRecycleOutputPacketRequest, D> for (T0,)
13091 {
13092 #[inline]
13093 unsafe fn encode(
13094 self,
13095 encoder: &mut fidl::encoding::Encoder<'_, D>,
13096 offset: usize,
13097 depth: fidl::encoding::Depth,
13098 ) -> fidl::Result<()> {
13099 encoder.debug_check_bounds::<StreamProcessorRecycleOutputPacketRequest>(offset);
13100 self.0.encode(encoder, offset + 0, depth)?;
13104 Ok(())
13105 }
13106 }
13107
13108 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13109 for StreamProcessorRecycleOutputPacketRequest
13110 {
13111 #[inline(always)]
13112 fn new_empty() -> Self {
13113 Self { available_output_packet: fidl::new_empty!(PacketHeader, D) }
13114 }
13115
13116 #[inline]
13117 unsafe fn decode(
13118 &mut self,
13119 decoder: &mut fidl::encoding::Decoder<'_, D>,
13120 offset: usize,
13121 _depth: fidl::encoding::Depth,
13122 ) -> fidl::Result<()> {
13123 decoder.debug_check_bounds::<Self>(offset);
13124 fidl::decode!(
13126 PacketHeader,
13127 D,
13128 &mut self.available_output_packet,
13129 decoder,
13130 offset + 0,
13131 _depth
13132 )?;
13133 Ok(())
13134 }
13135 }
13136
13137 impl fidl::encoding::ValueTypeMarker for StreamSinkSendPacketNoReplyRequest {
13138 type Borrowed<'a> = &'a Self;
13139 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13140 value
13141 }
13142 }
13143
13144 unsafe impl fidl::encoding::TypeMarker for StreamSinkSendPacketNoReplyRequest {
13145 type Owned = Self;
13146
13147 #[inline(always)]
13148 fn inline_align(_context: fidl::encoding::Context) -> usize {
13149 8
13150 }
13151
13152 #[inline(always)]
13153 fn inline_size(_context: fidl::encoding::Context) -> usize {
13154 56
13155 }
13156 }
13157
13158 unsafe impl<D: fidl::encoding::ResourceDialect>
13159 fidl::encoding::Encode<StreamSinkSendPacketNoReplyRequest, D>
13160 for &StreamSinkSendPacketNoReplyRequest
13161 {
13162 #[inline]
13163 unsafe fn encode(
13164 self,
13165 encoder: &mut fidl::encoding::Encoder<'_, D>,
13166 offset: usize,
13167 _depth: fidl::encoding::Depth,
13168 ) -> fidl::Result<()> {
13169 encoder.debug_check_bounds::<StreamSinkSendPacketNoReplyRequest>(offset);
13170 unsafe {
13171 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13173 (buf_ptr as *mut StreamSinkSendPacketNoReplyRequest)
13174 .write_unaligned((self as *const StreamSinkSendPacketNoReplyRequest).read());
13175 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13178 let padding_mask = 0xffffffff00000000u64;
13179 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13180 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13181 let padding_mask = 0xffffffff00000000u64;
13182 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13183 }
13184 Ok(())
13185 }
13186 }
13187 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13188 fidl::encoding::Encode<StreamSinkSendPacketNoReplyRequest, D> for (T0,)
13189 {
13190 #[inline]
13191 unsafe fn encode(
13192 self,
13193 encoder: &mut fidl::encoding::Encoder<'_, D>,
13194 offset: usize,
13195 depth: fidl::encoding::Depth,
13196 ) -> fidl::Result<()> {
13197 encoder.debug_check_bounds::<StreamSinkSendPacketNoReplyRequest>(offset);
13198 self.0.encode(encoder, offset + 0, depth)?;
13202 Ok(())
13203 }
13204 }
13205
13206 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13207 for StreamSinkSendPacketNoReplyRequest
13208 {
13209 #[inline(always)]
13210 fn new_empty() -> Self {
13211 Self { packet: fidl::new_empty!(StreamPacket, D) }
13212 }
13213
13214 #[inline]
13215 unsafe fn decode(
13216 &mut self,
13217 decoder: &mut fidl::encoding::Decoder<'_, D>,
13218 offset: usize,
13219 _depth: fidl::encoding::Depth,
13220 ) -> fidl::Result<()> {
13221 decoder.debug_check_bounds::<Self>(offset);
13222 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13223 let ptr = unsafe { buf_ptr.offset(8) };
13225 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13226 let mask = 0xffffffff00000000u64;
13227 let maskedval = padval & mask;
13228 if maskedval != 0 {
13229 return Err(fidl::Error::NonZeroPadding {
13230 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13231 });
13232 }
13233 let ptr = unsafe { buf_ptr.offset(32) };
13234 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13235 let mask = 0xffffffff00000000u64;
13236 let maskedval = padval & mask;
13237 if maskedval != 0 {
13238 return Err(fidl::Error::NonZeroPadding {
13239 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13240 });
13241 }
13242 unsafe {
13244 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13245 }
13246 Ok(())
13247 }
13248 }
13249
13250 impl fidl::encoding::ValueTypeMarker for StreamSinkSendPacketRequest {
13251 type Borrowed<'a> = &'a Self;
13252 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13253 value
13254 }
13255 }
13256
13257 unsafe impl fidl::encoding::TypeMarker for StreamSinkSendPacketRequest {
13258 type Owned = Self;
13259
13260 #[inline(always)]
13261 fn inline_align(_context: fidl::encoding::Context) -> usize {
13262 8
13263 }
13264
13265 #[inline(always)]
13266 fn inline_size(_context: fidl::encoding::Context) -> usize {
13267 56
13268 }
13269 }
13270
13271 unsafe impl<D: fidl::encoding::ResourceDialect>
13272 fidl::encoding::Encode<StreamSinkSendPacketRequest, D> for &StreamSinkSendPacketRequest
13273 {
13274 #[inline]
13275 unsafe fn encode(
13276 self,
13277 encoder: &mut fidl::encoding::Encoder<'_, D>,
13278 offset: usize,
13279 _depth: fidl::encoding::Depth,
13280 ) -> fidl::Result<()> {
13281 encoder.debug_check_bounds::<StreamSinkSendPacketRequest>(offset);
13282 unsafe {
13283 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13285 (buf_ptr as *mut StreamSinkSendPacketRequest)
13286 .write_unaligned((self as *const StreamSinkSendPacketRequest).read());
13287 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13290 let padding_mask = 0xffffffff00000000u64;
13291 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13292 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13293 let padding_mask = 0xffffffff00000000u64;
13294 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13295 }
13296 Ok(())
13297 }
13298 }
13299 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13300 fidl::encoding::Encode<StreamSinkSendPacketRequest, D> for (T0,)
13301 {
13302 #[inline]
13303 unsafe fn encode(
13304 self,
13305 encoder: &mut fidl::encoding::Encoder<'_, D>,
13306 offset: usize,
13307 depth: fidl::encoding::Depth,
13308 ) -> fidl::Result<()> {
13309 encoder.debug_check_bounds::<StreamSinkSendPacketRequest>(offset);
13310 self.0.encode(encoder, offset + 0, depth)?;
13314 Ok(())
13315 }
13316 }
13317
13318 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13319 for StreamSinkSendPacketRequest
13320 {
13321 #[inline(always)]
13322 fn new_empty() -> Self {
13323 Self { packet: fidl::new_empty!(StreamPacket, D) }
13324 }
13325
13326 #[inline]
13327 unsafe fn decode(
13328 &mut self,
13329 decoder: &mut fidl::encoding::Decoder<'_, D>,
13330 offset: usize,
13331 _depth: fidl::encoding::Depth,
13332 ) -> fidl::Result<()> {
13333 decoder.debug_check_bounds::<Self>(offset);
13334 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13335 let ptr = unsafe { buf_ptr.offset(8) };
13337 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13338 let mask = 0xffffffff00000000u64;
13339 let maskedval = padval & mask;
13340 if maskedval != 0 {
13341 return Err(fidl::Error::NonZeroPadding {
13342 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13343 });
13344 }
13345 let ptr = unsafe { buf_ptr.offset(32) };
13346 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13347 let mask = 0xffffffff00000000u64;
13348 let maskedval = padval & mask;
13349 if maskedval != 0 {
13350 return Err(fidl::Error::NonZeroPadding {
13351 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13352 });
13353 }
13354 unsafe {
13356 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13357 }
13358 Ok(())
13359 }
13360 }
13361
13362 impl fidl::encoding::ValueTypeMarker for StreamSourceOnPacketProducedRequest {
13363 type Borrowed<'a> = &'a Self;
13364 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13365 value
13366 }
13367 }
13368
13369 unsafe impl fidl::encoding::TypeMarker for StreamSourceOnPacketProducedRequest {
13370 type Owned = Self;
13371
13372 #[inline(always)]
13373 fn inline_align(_context: fidl::encoding::Context) -> usize {
13374 8
13375 }
13376
13377 #[inline(always)]
13378 fn inline_size(_context: fidl::encoding::Context) -> usize {
13379 56
13380 }
13381 }
13382
13383 unsafe impl<D: fidl::encoding::ResourceDialect>
13384 fidl::encoding::Encode<StreamSourceOnPacketProducedRequest, D>
13385 for &StreamSourceOnPacketProducedRequest
13386 {
13387 #[inline]
13388 unsafe fn encode(
13389 self,
13390 encoder: &mut fidl::encoding::Encoder<'_, D>,
13391 offset: usize,
13392 _depth: fidl::encoding::Depth,
13393 ) -> fidl::Result<()> {
13394 encoder.debug_check_bounds::<StreamSourceOnPacketProducedRequest>(offset);
13395 unsafe {
13396 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13398 (buf_ptr as *mut StreamSourceOnPacketProducedRequest)
13399 .write_unaligned((self as *const StreamSourceOnPacketProducedRequest).read());
13400 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13403 let padding_mask = 0xffffffff00000000u64;
13404 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13405 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13406 let padding_mask = 0xffffffff00000000u64;
13407 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13408 }
13409 Ok(())
13410 }
13411 }
13412 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13413 fidl::encoding::Encode<StreamSourceOnPacketProducedRequest, D> for (T0,)
13414 {
13415 #[inline]
13416 unsafe fn encode(
13417 self,
13418 encoder: &mut fidl::encoding::Encoder<'_, D>,
13419 offset: usize,
13420 depth: fidl::encoding::Depth,
13421 ) -> fidl::Result<()> {
13422 encoder.debug_check_bounds::<StreamSourceOnPacketProducedRequest>(offset);
13423 self.0.encode(encoder, offset + 0, depth)?;
13427 Ok(())
13428 }
13429 }
13430
13431 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13432 for StreamSourceOnPacketProducedRequest
13433 {
13434 #[inline(always)]
13435 fn new_empty() -> Self {
13436 Self { packet: fidl::new_empty!(StreamPacket, D) }
13437 }
13438
13439 #[inline]
13440 unsafe fn decode(
13441 &mut self,
13442 decoder: &mut fidl::encoding::Decoder<'_, D>,
13443 offset: usize,
13444 _depth: fidl::encoding::Depth,
13445 ) -> fidl::Result<()> {
13446 decoder.debug_check_bounds::<Self>(offset);
13447 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13448 let ptr = unsafe { buf_ptr.offset(8) };
13450 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13451 let mask = 0xffffffff00000000u64;
13452 let maskedval = padval & mask;
13453 if maskedval != 0 {
13454 return Err(fidl::Error::NonZeroPadding {
13455 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13456 });
13457 }
13458 let ptr = unsafe { buf_ptr.offset(32) };
13459 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13460 let mask = 0xffffffff00000000u64;
13461 let maskedval = padval & mask;
13462 if maskedval != 0 {
13463 return Err(fidl::Error::NonZeroPadding {
13464 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13465 });
13466 }
13467 unsafe {
13469 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13470 }
13471 Ok(())
13472 }
13473 }
13474
13475 impl fidl::encoding::ValueTypeMarker for StreamSourceReleasePacketRequest {
13476 type Borrowed<'a> = &'a Self;
13477 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13478 value
13479 }
13480 }
13481
13482 unsafe impl fidl::encoding::TypeMarker for StreamSourceReleasePacketRequest {
13483 type Owned = Self;
13484
13485 #[inline(always)]
13486 fn inline_align(_context: fidl::encoding::Context) -> usize {
13487 8
13488 }
13489
13490 #[inline(always)]
13491 fn inline_size(_context: fidl::encoding::Context) -> usize {
13492 56
13493 }
13494 }
13495
13496 unsafe impl<D: fidl::encoding::ResourceDialect>
13497 fidl::encoding::Encode<StreamSourceReleasePacketRequest, D>
13498 for &StreamSourceReleasePacketRequest
13499 {
13500 #[inline]
13501 unsafe fn encode(
13502 self,
13503 encoder: &mut fidl::encoding::Encoder<'_, D>,
13504 offset: usize,
13505 _depth: fidl::encoding::Depth,
13506 ) -> fidl::Result<()> {
13507 encoder.debug_check_bounds::<StreamSourceReleasePacketRequest>(offset);
13508 unsafe {
13509 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13511 (buf_ptr as *mut StreamSourceReleasePacketRequest)
13512 .write_unaligned((self as *const StreamSourceReleasePacketRequest).read());
13513 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13516 let padding_mask = 0xffffffff00000000u64;
13517 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13518 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13519 let padding_mask = 0xffffffff00000000u64;
13520 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13521 }
13522 Ok(())
13523 }
13524 }
13525 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13526 fidl::encoding::Encode<StreamSourceReleasePacketRequest, D> for (T0,)
13527 {
13528 #[inline]
13529 unsafe fn encode(
13530 self,
13531 encoder: &mut fidl::encoding::Encoder<'_, D>,
13532 offset: usize,
13533 depth: fidl::encoding::Depth,
13534 ) -> fidl::Result<()> {
13535 encoder.debug_check_bounds::<StreamSourceReleasePacketRequest>(offset);
13536 self.0.encode(encoder, offset + 0, depth)?;
13540 Ok(())
13541 }
13542 }
13543
13544 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13545 for StreamSourceReleasePacketRequest
13546 {
13547 #[inline(always)]
13548 fn new_empty() -> Self {
13549 Self { packet: fidl::new_empty!(StreamPacket, D) }
13550 }
13551
13552 #[inline]
13553 unsafe fn decode(
13554 &mut self,
13555 decoder: &mut fidl::encoding::Decoder<'_, D>,
13556 offset: usize,
13557 _depth: fidl::encoding::Depth,
13558 ) -> fidl::Result<()> {
13559 decoder.debug_check_bounds::<Self>(offset);
13560 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13561 let ptr = unsafe { buf_ptr.offset(8) };
13563 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13564 let mask = 0xffffffff00000000u64;
13565 let maskedval = padval & mask;
13566 if maskedval != 0 {
13567 return Err(fidl::Error::NonZeroPadding {
13568 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13569 });
13570 }
13571 let ptr = unsafe { buf_ptr.offset(32) };
13572 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13573 let mask = 0xffffffff00000000u64;
13574 let maskedval = padval & mask;
13575 if maskedval != 0 {
13576 return Err(fidl::Error::NonZeroPadding {
13577 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13578 });
13579 }
13580 unsafe {
13582 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13583 }
13584 Ok(())
13585 }
13586 }
13587
13588 impl fidl::encoding::ValueTypeMarker for StreamType {
13589 type Borrowed<'a> = &'a Self;
13590 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13591 value
13592 }
13593 }
13594
13595 unsafe impl fidl::encoding::TypeMarker for StreamType {
13596 type Owned = Self;
13597
13598 #[inline(always)]
13599 fn inline_align(_context: fidl::encoding::Context) -> usize {
13600 8
13601 }
13602
13603 #[inline(always)]
13604 fn inline_size(_context: fidl::encoding::Context) -> usize {
13605 48
13606 }
13607 }
13608
13609 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamType, D>
13610 for &StreamType
13611 {
13612 #[inline]
13613 unsafe fn encode(
13614 self,
13615 encoder: &mut fidl::encoding::Encoder<'_, D>,
13616 offset: usize,
13617 _depth: fidl::encoding::Depth,
13618 ) -> fidl::Result<()> {
13619 encoder.debug_check_bounds::<StreamType>(offset);
13620 fidl::encoding::Encode::<StreamType, D>::encode(
13622 (
13623 <MediumSpecificStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.medium_specific),
13624 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding),
13625 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>> as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding_parameters),
13626 ),
13627 encoder, offset, _depth
13628 )
13629 }
13630 }
13631 unsafe impl<
13632 D: fidl::encoding::ResourceDialect,
13633 T0: fidl::encoding::Encode<MediumSpecificStreamType, D>,
13634 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
13635 T2: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>, D>,
13636 > fidl::encoding::Encode<StreamType, D> for (T0, T1, T2)
13637 {
13638 #[inline]
13639 unsafe fn encode(
13640 self,
13641 encoder: &mut fidl::encoding::Encoder<'_, D>,
13642 offset: usize,
13643 depth: fidl::encoding::Depth,
13644 ) -> fidl::Result<()> {
13645 encoder.debug_check_bounds::<StreamType>(offset);
13646 self.0.encode(encoder, offset + 0, depth)?;
13650 self.1.encode(encoder, offset + 16, depth)?;
13651 self.2.encode(encoder, offset + 32, depth)?;
13652 Ok(())
13653 }
13654 }
13655
13656 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamType {
13657 #[inline(always)]
13658 fn new_empty() -> Self {
13659 Self {
13660 medium_specific: fidl::new_empty!(MediumSpecificStreamType, D),
13661 encoding: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
13662 encoding_parameters: fidl::new_empty!(
13663 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13664 D
13665 ),
13666 }
13667 }
13668
13669 #[inline]
13670 unsafe fn decode(
13671 &mut self,
13672 decoder: &mut fidl::encoding::Decoder<'_, D>,
13673 offset: usize,
13674 _depth: fidl::encoding::Depth,
13675 ) -> fidl::Result<()> {
13676 decoder.debug_check_bounds::<Self>(offset);
13677 fidl::decode!(
13679 MediumSpecificStreamType,
13680 D,
13681 &mut self.medium_specific,
13682 decoder,
13683 offset + 0,
13684 _depth
13685 )?;
13686 fidl::decode!(
13687 fidl::encoding::BoundedString<255>,
13688 D,
13689 &mut self.encoding,
13690 decoder,
13691 offset + 16,
13692 _depth
13693 )?;
13694 fidl::decode!(
13695 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13696 D,
13697 &mut self.encoding_parameters,
13698 decoder,
13699 offset + 32,
13700 _depth
13701 )?;
13702 Ok(())
13703 }
13704 }
13705
13706 impl fidl::encoding::ValueTypeMarker for SubpictureStreamType {
13707 type Borrowed<'a> = &'a Self;
13708 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13709 value
13710 }
13711 }
13712
13713 unsafe impl fidl::encoding::TypeMarker for SubpictureStreamType {
13714 type Owned = Self;
13715
13716 #[inline(always)]
13717 fn inline_align(_context: fidl::encoding::Context) -> usize {
13718 1
13719 }
13720
13721 #[inline(always)]
13722 fn inline_size(_context: fidl::encoding::Context) -> usize {
13723 1
13724 }
13725 }
13726
13727 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubpictureStreamType, D>
13728 for &SubpictureStreamType
13729 {
13730 #[inline]
13731 unsafe fn encode(
13732 self,
13733 encoder: &mut fidl::encoding::Encoder<'_, D>,
13734 offset: usize,
13735 _depth: fidl::encoding::Depth,
13736 ) -> fidl::Result<()> {
13737 encoder.debug_check_bounds::<SubpictureStreamType>(offset);
13738 encoder.write_num(0u8, offset);
13739 Ok(())
13740 }
13741 }
13742
13743 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubpictureStreamType {
13744 #[inline(always)]
13745 fn new_empty() -> Self {
13746 Self
13747 }
13748
13749 #[inline]
13750 unsafe fn decode(
13751 &mut self,
13752 decoder: &mut fidl::encoding::Decoder<'_, D>,
13753 offset: usize,
13754 _depth: fidl::encoding::Depth,
13755 ) -> fidl::Result<()> {
13756 decoder.debug_check_bounds::<Self>(offset);
13757 match decoder.read_num::<u8>(offset) {
13758 0 => Ok(()),
13759 _ => Err(fidl::Error::Invalid),
13760 }
13761 }
13762 }
13763
13764 impl fidl::encoding::ValueTypeMarker for SubsampleEntry {
13765 type Borrowed<'a> = &'a Self;
13766 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13767 value
13768 }
13769 }
13770
13771 unsafe impl fidl::encoding::TypeMarker for SubsampleEntry {
13772 type Owned = Self;
13773
13774 #[inline(always)]
13775 fn inline_align(_context: fidl::encoding::Context) -> usize {
13776 4
13777 }
13778
13779 #[inline(always)]
13780 fn inline_size(_context: fidl::encoding::Context) -> usize {
13781 8
13782 }
13783 #[inline(always)]
13784 fn encode_is_copy() -> bool {
13785 true
13786 }
13787
13788 #[inline(always)]
13789 fn decode_is_copy() -> bool {
13790 true
13791 }
13792 }
13793
13794 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubsampleEntry, D>
13795 for &SubsampleEntry
13796 {
13797 #[inline]
13798 unsafe fn encode(
13799 self,
13800 encoder: &mut fidl::encoding::Encoder<'_, D>,
13801 offset: usize,
13802 _depth: fidl::encoding::Depth,
13803 ) -> fidl::Result<()> {
13804 encoder.debug_check_bounds::<SubsampleEntry>(offset);
13805 unsafe {
13806 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13808 (buf_ptr as *mut SubsampleEntry)
13809 .write_unaligned((self as *const SubsampleEntry).read());
13810 }
13813 Ok(())
13814 }
13815 }
13816 unsafe impl<
13817 D: fidl::encoding::ResourceDialect,
13818 T0: fidl::encoding::Encode<u32, D>,
13819 T1: fidl::encoding::Encode<u32, D>,
13820 > fidl::encoding::Encode<SubsampleEntry, D> for (T0, T1)
13821 {
13822 #[inline]
13823 unsafe fn encode(
13824 self,
13825 encoder: &mut fidl::encoding::Encoder<'_, D>,
13826 offset: usize,
13827 depth: fidl::encoding::Depth,
13828 ) -> fidl::Result<()> {
13829 encoder.debug_check_bounds::<SubsampleEntry>(offset);
13830 self.0.encode(encoder, offset + 0, depth)?;
13834 self.1.encode(encoder, offset + 4, depth)?;
13835 Ok(())
13836 }
13837 }
13838
13839 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubsampleEntry {
13840 #[inline(always)]
13841 fn new_empty() -> Self {
13842 Self {
13843 clear_bytes: fidl::new_empty!(u32, D),
13844 encrypted_bytes: fidl::new_empty!(u32, D),
13845 }
13846 }
13847
13848 #[inline]
13849 unsafe fn decode(
13850 &mut self,
13851 decoder: &mut fidl::encoding::Decoder<'_, D>,
13852 offset: usize,
13853 _depth: fidl::encoding::Depth,
13854 ) -> fidl::Result<()> {
13855 decoder.debug_check_bounds::<Self>(offset);
13856 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13857 unsafe {
13860 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
13861 }
13862 Ok(())
13863 }
13864 }
13865
13866 impl fidl::encoding::ValueTypeMarker for TextStreamType {
13867 type Borrowed<'a> = &'a Self;
13868 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13869 value
13870 }
13871 }
13872
13873 unsafe impl fidl::encoding::TypeMarker for TextStreamType {
13874 type Owned = Self;
13875
13876 #[inline(always)]
13877 fn inline_align(_context: fidl::encoding::Context) -> usize {
13878 1
13879 }
13880
13881 #[inline(always)]
13882 fn inline_size(_context: fidl::encoding::Context) -> usize {
13883 1
13884 }
13885 }
13886
13887 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TextStreamType, D>
13888 for &TextStreamType
13889 {
13890 #[inline]
13891 unsafe fn encode(
13892 self,
13893 encoder: &mut fidl::encoding::Encoder<'_, D>,
13894 offset: usize,
13895 _depth: fidl::encoding::Depth,
13896 ) -> fidl::Result<()> {
13897 encoder.debug_check_bounds::<TextStreamType>(offset);
13898 encoder.write_num(0u8, offset);
13899 Ok(())
13900 }
13901 }
13902
13903 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TextStreamType {
13904 #[inline(always)]
13905 fn new_empty() -> Self {
13906 Self
13907 }
13908
13909 #[inline]
13910 unsafe fn decode(
13911 &mut self,
13912 decoder: &mut fidl::encoding::Decoder<'_, D>,
13913 offset: usize,
13914 _depth: fidl::encoding::Depth,
13915 ) -> fidl::Result<()> {
13916 decoder.debug_check_bounds::<Self>(offset);
13917 match decoder.read_num::<u8>(offset) {
13918 0 => Ok(()),
13919 _ => Err(fidl::Error::Invalid),
13920 }
13921 }
13922 }
13923
13924 impl fidl::encoding::ValueTypeMarker for TimelineFunction {
13925 type Borrowed<'a> = &'a Self;
13926 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13927 value
13928 }
13929 }
13930
13931 unsafe impl fidl::encoding::TypeMarker for TimelineFunction {
13932 type Owned = Self;
13933
13934 #[inline(always)]
13935 fn inline_align(_context: fidl::encoding::Context) -> usize {
13936 8
13937 }
13938
13939 #[inline(always)]
13940 fn inline_size(_context: fidl::encoding::Context) -> usize {
13941 24
13942 }
13943 #[inline(always)]
13944 fn encode_is_copy() -> bool {
13945 true
13946 }
13947
13948 #[inline(always)]
13949 fn decode_is_copy() -> bool {
13950 true
13951 }
13952 }
13953
13954 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TimelineFunction, D>
13955 for &TimelineFunction
13956 {
13957 #[inline]
13958 unsafe fn encode(
13959 self,
13960 encoder: &mut fidl::encoding::Encoder<'_, D>,
13961 offset: usize,
13962 _depth: fidl::encoding::Depth,
13963 ) -> fidl::Result<()> {
13964 encoder.debug_check_bounds::<TimelineFunction>(offset);
13965 unsafe {
13966 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13968 (buf_ptr as *mut TimelineFunction)
13969 .write_unaligned((self as *const TimelineFunction).read());
13970 }
13973 Ok(())
13974 }
13975 }
13976 unsafe impl<
13977 D: fidl::encoding::ResourceDialect,
13978 T0: fidl::encoding::Encode<i64, D>,
13979 T1: fidl::encoding::Encode<i64, D>,
13980 T2: fidl::encoding::Encode<u32, D>,
13981 T3: fidl::encoding::Encode<u32, D>,
13982 > fidl::encoding::Encode<TimelineFunction, D> for (T0, T1, T2, T3)
13983 {
13984 #[inline]
13985 unsafe fn encode(
13986 self,
13987 encoder: &mut fidl::encoding::Encoder<'_, D>,
13988 offset: usize,
13989 depth: fidl::encoding::Depth,
13990 ) -> fidl::Result<()> {
13991 encoder.debug_check_bounds::<TimelineFunction>(offset);
13992 self.0.encode(encoder, offset + 0, depth)?;
13996 self.1.encode(encoder, offset + 8, depth)?;
13997 self.2.encode(encoder, offset + 16, depth)?;
13998 self.3.encode(encoder, offset + 20, depth)?;
13999 Ok(())
14000 }
14001 }
14002
14003 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TimelineFunction {
14004 #[inline(always)]
14005 fn new_empty() -> Self {
14006 Self {
14007 subject_time: fidl::new_empty!(i64, D),
14008 reference_time: fidl::new_empty!(i64, D),
14009 subject_delta: fidl::new_empty!(u32, D),
14010 reference_delta: fidl::new_empty!(u32, D),
14011 }
14012 }
14013
14014 #[inline]
14015 unsafe fn decode(
14016 &mut self,
14017 decoder: &mut fidl::encoding::Decoder<'_, D>,
14018 offset: usize,
14019 _depth: fidl::encoding::Depth,
14020 ) -> fidl::Result<()> {
14021 decoder.debug_check_bounds::<Self>(offset);
14022 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
14023 unsafe {
14026 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 24);
14027 }
14028 Ok(())
14029 }
14030 }
14031
14032 impl fidl::encoding::ValueTypeMarker for UsageGainListenerOnGainMuteChangedRequest {
14033 type Borrowed<'a> = &'a Self;
14034 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14035 value
14036 }
14037 }
14038
14039 unsafe impl fidl::encoding::TypeMarker for UsageGainListenerOnGainMuteChangedRequest {
14040 type Owned = Self;
14041
14042 #[inline(always)]
14043 fn inline_align(_context: fidl::encoding::Context) -> usize {
14044 4
14045 }
14046
14047 #[inline(always)]
14048 fn inline_size(_context: fidl::encoding::Context) -> usize {
14049 8
14050 }
14051 }
14052
14053 unsafe impl<D: fidl::encoding::ResourceDialect>
14054 fidl::encoding::Encode<UsageGainListenerOnGainMuteChangedRequest, D>
14055 for &UsageGainListenerOnGainMuteChangedRequest
14056 {
14057 #[inline]
14058 unsafe fn encode(
14059 self,
14060 encoder: &mut fidl::encoding::Encoder<'_, D>,
14061 offset: usize,
14062 _depth: fidl::encoding::Depth,
14063 ) -> fidl::Result<()> {
14064 encoder.debug_check_bounds::<UsageGainListenerOnGainMuteChangedRequest>(offset);
14065 fidl::encoding::Encode::<UsageGainListenerOnGainMuteChangedRequest, D>::encode(
14067 (
14068 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.muted),
14069 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_dbfs),
14070 ),
14071 encoder,
14072 offset,
14073 _depth,
14074 )
14075 }
14076 }
14077 unsafe impl<
14078 D: fidl::encoding::ResourceDialect,
14079 T0: fidl::encoding::Encode<bool, D>,
14080 T1: fidl::encoding::Encode<f32, D>,
14081 > fidl::encoding::Encode<UsageGainListenerOnGainMuteChangedRequest, D> for (T0, T1)
14082 {
14083 #[inline]
14084 unsafe fn encode(
14085 self,
14086 encoder: &mut fidl::encoding::Encoder<'_, D>,
14087 offset: usize,
14088 depth: fidl::encoding::Depth,
14089 ) -> fidl::Result<()> {
14090 encoder.debug_check_bounds::<UsageGainListenerOnGainMuteChangedRequest>(offset);
14091 unsafe {
14094 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
14095 (ptr as *mut u32).write_unaligned(0);
14096 }
14097 self.0.encode(encoder, offset + 0, depth)?;
14099 self.1.encode(encoder, offset + 4, depth)?;
14100 Ok(())
14101 }
14102 }
14103
14104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14105 for UsageGainListenerOnGainMuteChangedRequest
14106 {
14107 #[inline(always)]
14108 fn new_empty() -> Self {
14109 Self { muted: fidl::new_empty!(bool, D), gain_dbfs: fidl::new_empty!(f32, D) }
14110 }
14111
14112 #[inline]
14113 unsafe fn decode(
14114 &mut self,
14115 decoder: &mut fidl::encoding::Decoder<'_, D>,
14116 offset: usize,
14117 _depth: fidl::encoding::Depth,
14118 ) -> fidl::Result<()> {
14119 decoder.debug_check_bounds::<Self>(offset);
14120 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
14122 let padval = unsafe { (ptr as *const u32).read_unaligned() };
14123 let mask = 0xffffff00u32;
14124 let maskedval = padval & mask;
14125 if maskedval != 0 {
14126 return Err(fidl::Error::NonZeroPadding {
14127 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
14128 });
14129 }
14130 fidl::decode!(bool, D, &mut self.muted, decoder, offset + 0, _depth)?;
14131 fidl::decode!(f32, D, &mut self.gain_dbfs, decoder, offset + 4, _depth)?;
14132 Ok(())
14133 }
14134 }
14135
14136 impl fidl::encoding::ValueTypeMarker for UsageWatcher2OnStateChangedRequest {
14137 type Borrowed<'a> = &'a Self;
14138 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14139 value
14140 }
14141 }
14142
14143 unsafe impl fidl::encoding::TypeMarker for UsageWatcher2OnStateChangedRequest {
14144 type Owned = Self;
14145
14146 #[inline(always)]
14147 fn inline_align(_context: fidl::encoding::Context) -> usize {
14148 8
14149 }
14150
14151 #[inline(always)]
14152 fn inline_size(_context: fidl::encoding::Context) -> usize {
14153 32
14154 }
14155 }
14156
14157 unsafe impl<D: fidl::encoding::ResourceDialect>
14158 fidl::encoding::Encode<UsageWatcher2OnStateChangedRequest, D>
14159 for &UsageWatcher2OnStateChangedRequest
14160 {
14161 #[inline]
14162 unsafe fn encode(
14163 self,
14164 encoder: &mut fidl::encoding::Encoder<'_, D>,
14165 offset: usize,
14166 _depth: fidl::encoding::Depth,
14167 ) -> fidl::Result<()> {
14168 encoder.debug_check_bounds::<UsageWatcher2OnStateChangedRequest>(offset);
14169 fidl::encoding::Encode::<UsageWatcher2OnStateChangedRequest, D>::encode(
14171 (
14172 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
14173 <UsageState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
14174 ),
14175 encoder,
14176 offset,
14177 _depth,
14178 )
14179 }
14180 }
14181 unsafe impl<
14182 D: fidl::encoding::ResourceDialect,
14183 T0: fidl::encoding::Encode<Usage2, D>,
14184 T1: fidl::encoding::Encode<UsageState, D>,
14185 > fidl::encoding::Encode<UsageWatcher2OnStateChangedRequest, D> for (T0, T1)
14186 {
14187 #[inline]
14188 unsafe fn encode(
14189 self,
14190 encoder: &mut fidl::encoding::Encoder<'_, D>,
14191 offset: usize,
14192 depth: fidl::encoding::Depth,
14193 ) -> fidl::Result<()> {
14194 encoder.debug_check_bounds::<UsageWatcher2OnStateChangedRequest>(offset);
14195 self.0.encode(encoder, offset + 0, depth)?;
14199 self.1.encode(encoder, offset + 16, depth)?;
14200 Ok(())
14201 }
14202 }
14203
14204 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14205 for UsageWatcher2OnStateChangedRequest
14206 {
14207 #[inline(always)]
14208 fn new_empty() -> Self {
14209 Self { usage: fidl::new_empty!(Usage2, D), state: fidl::new_empty!(UsageState, D) }
14210 }
14211
14212 #[inline]
14213 unsafe fn decode(
14214 &mut self,
14215 decoder: &mut fidl::encoding::Decoder<'_, D>,
14216 offset: usize,
14217 _depth: fidl::encoding::Depth,
14218 ) -> fidl::Result<()> {
14219 decoder.debug_check_bounds::<Self>(offset);
14220 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
14222 fidl::decode!(UsageState, D, &mut self.state, decoder, offset + 16, _depth)?;
14223 Ok(())
14224 }
14225 }
14226
14227 impl fidl::encoding::ValueTypeMarker for UsageWatcherOnStateChangedRequest {
14228 type Borrowed<'a> = &'a Self;
14229 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14230 value
14231 }
14232 }
14233
14234 unsafe impl fidl::encoding::TypeMarker for UsageWatcherOnStateChangedRequest {
14235 type Owned = Self;
14236
14237 #[inline(always)]
14238 fn inline_align(_context: fidl::encoding::Context) -> usize {
14239 8
14240 }
14241
14242 #[inline(always)]
14243 fn inline_size(_context: fidl::encoding::Context) -> usize {
14244 32
14245 }
14246 }
14247
14248 unsafe impl<D: fidl::encoding::ResourceDialect>
14249 fidl::encoding::Encode<UsageWatcherOnStateChangedRequest, D>
14250 for &UsageWatcherOnStateChangedRequest
14251 {
14252 #[inline]
14253 unsafe fn encode(
14254 self,
14255 encoder: &mut fidl::encoding::Encoder<'_, D>,
14256 offset: usize,
14257 _depth: fidl::encoding::Depth,
14258 ) -> fidl::Result<()> {
14259 encoder.debug_check_bounds::<UsageWatcherOnStateChangedRequest>(offset);
14260 fidl::encoding::Encode::<UsageWatcherOnStateChangedRequest, D>::encode(
14262 (
14263 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
14264 <UsageState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
14265 ),
14266 encoder,
14267 offset,
14268 _depth,
14269 )
14270 }
14271 }
14272 unsafe impl<
14273 D: fidl::encoding::ResourceDialect,
14274 T0: fidl::encoding::Encode<Usage, D>,
14275 T1: fidl::encoding::Encode<UsageState, D>,
14276 > fidl::encoding::Encode<UsageWatcherOnStateChangedRequest, D> for (T0, T1)
14277 {
14278 #[inline]
14279 unsafe fn encode(
14280 self,
14281 encoder: &mut fidl::encoding::Encoder<'_, D>,
14282 offset: usize,
14283 depth: fidl::encoding::Depth,
14284 ) -> fidl::Result<()> {
14285 encoder.debug_check_bounds::<UsageWatcherOnStateChangedRequest>(offset);
14286 self.0.encode(encoder, offset + 0, depth)?;
14290 self.1.encode(encoder, offset + 16, depth)?;
14291 Ok(())
14292 }
14293 }
14294
14295 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14296 for UsageWatcherOnStateChangedRequest
14297 {
14298 #[inline(always)]
14299 fn new_empty() -> Self {
14300 Self { usage: fidl::new_empty!(Usage, D), state: fidl::new_empty!(UsageState, D) }
14301 }
14302
14303 #[inline]
14304 unsafe fn decode(
14305 &mut self,
14306 decoder: &mut fidl::encoding::Decoder<'_, D>,
14307 offset: usize,
14308 _depth: fidl::encoding::Depth,
14309 ) -> fidl::Result<()> {
14310 decoder.debug_check_bounds::<Self>(offset);
14311 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
14313 fidl::decode!(UsageState, D, &mut self.state, decoder, offset + 16, _depth)?;
14314 Ok(())
14315 }
14316 }
14317
14318 impl fidl::encoding::ValueTypeMarker for VideoStreamType {
14319 type Borrowed<'a> = &'a Self;
14320 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14321 value
14322 }
14323 }
14324
14325 unsafe impl fidl::encoding::TypeMarker for VideoStreamType {
14326 type Owned = Self;
14327
14328 #[inline(always)]
14329 fn inline_align(_context: fidl::encoding::Context) -> usize {
14330 4
14331 }
14332
14333 #[inline(always)]
14334 fn inline_size(_context: fidl::encoding::Context) -> usize {
14335 36
14336 }
14337 }
14338
14339 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoStreamType, D>
14340 for &VideoStreamType
14341 {
14342 #[inline]
14343 unsafe fn encode(
14344 self,
14345 encoder: &mut fidl::encoding::Encoder<'_, D>,
14346 offset: usize,
14347 _depth: fidl::encoding::Depth,
14348 ) -> fidl::Result<()> {
14349 encoder.debug_check_bounds::<VideoStreamType>(offset);
14350 fidl::encoding::Encode::<VideoStreamType, D>::encode(
14352 (
14353 <fidl_fuchsia_images__common::PixelFormat as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_format),
14354 <ColorSpace as fidl::encoding::ValueTypeMarker>::borrow(&self.color_space),
14355 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.width),
14356 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.height),
14357 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.coded_width),
14358 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.coded_height),
14359 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_width),
14360 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_height),
14361 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.stride),
14362 ),
14363 encoder, offset, _depth
14364 )
14365 }
14366 }
14367 unsafe impl<
14368 D: fidl::encoding::ResourceDialect,
14369 T0: fidl::encoding::Encode<fidl_fuchsia_images__common::PixelFormat, D>,
14370 T1: fidl::encoding::Encode<ColorSpace, D>,
14371 T2: fidl::encoding::Encode<u32, D>,
14372 T3: fidl::encoding::Encode<u32, D>,
14373 T4: fidl::encoding::Encode<u32, D>,
14374 T5: fidl::encoding::Encode<u32, D>,
14375 T6: fidl::encoding::Encode<u32, D>,
14376 T7: fidl::encoding::Encode<u32, D>,
14377 T8: fidl::encoding::Encode<u32, D>,
14378 > fidl::encoding::Encode<VideoStreamType, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
14379 {
14380 #[inline]
14381 unsafe fn encode(
14382 self,
14383 encoder: &mut fidl::encoding::Encoder<'_, D>,
14384 offset: usize,
14385 depth: fidl::encoding::Depth,
14386 ) -> fidl::Result<()> {
14387 encoder.debug_check_bounds::<VideoStreamType>(offset);
14388 self.0.encode(encoder, offset + 0, depth)?;
14392 self.1.encode(encoder, offset + 4, depth)?;
14393 self.2.encode(encoder, offset + 8, depth)?;
14394 self.3.encode(encoder, offset + 12, depth)?;
14395 self.4.encode(encoder, offset + 16, depth)?;
14396 self.5.encode(encoder, offset + 20, depth)?;
14397 self.6.encode(encoder, offset + 24, depth)?;
14398 self.7.encode(encoder, offset + 28, depth)?;
14399 self.8.encode(encoder, offset + 32, depth)?;
14400 Ok(())
14401 }
14402 }
14403
14404 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoStreamType {
14405 #[inline(always)]
14406 fn new_empty() -> Self {
14407 Self {
14408 pixel_format: fidl::new_empty!(fidl_fuchsia_images__common::PixelFormat, D),
14409 color_space: fidl::new_empty!(ColorSpace, D),
14410 width: fidl::new_empty!(u32, D),
14411 height: fidl::new_empty!(u32, D),
14412 coded_width: fidl::new_empty!(u32, D),
14413 coded_height: fidl::new_empty!(u32, D),
14414 pixel_aspect_ratio_width: fidl::new_empty!(u32, D),
14415 pixel_aspect_ratio_height: fidl::new_empty!(u32, D),
14416 stride: fidl::new_empty!(u32, D),
14417 }
14418 }
14419
14420 #[inline]
14421 unsafe fn decode(
14422 &mut self,
14423 decoder: &mut fidl::encoding::Decoder<'_, D>,
14424 offset: usize,
14425 _depth: fidl::encoding::Depth,
14426 ) -> fidl::Result<()> {
14427 decoder.debug_check_bounds::<Self>(offset);
14428 fidl::decode!(
14430 fidl_fuchsia_images__common::PixelFormat,
14431 D,
14432 &mut self.pixel_format,
14433 decoder,
14434 offset + 0,
14435 _depth
14436 )?;
14437 fidl::decode!(ColorSpace, D, &mut self.color_space, decoder, offset + 4, _depth)?;
14438 fidl::decode!(u32, D, &mut self.width, decoder, offset + 8, _depth)?;
14439 fidl::decode!(u32, D, &mut self.height, decoder, offset + 12, _depth)?;
14440 fidl::decode!(u32, D, &mut self.coded_width, decoder, offset + 16, _depth)?;
14441 fidl::decode!(u32, D, &mut self.coded_height, decoder, offset + 20, _depth)?;
14442 fidl::decode!(
14443 u32,
14444 D,
14445 &mut self.pixel_aspect_ratio_width,
14446 decoder,
14447 offset + 24,
14448 _depth
14449 )?;
14450 fidl::decode!(
14451 u32,
14452 D,
14453 &mut self.pixel_aspect_ratio_height,
14454 decoder,
14455 offset + 28,
14456 _depth
14457 )?;
14458 fidl::decode!(u32, D, &mut self.stride, decoder, offset + 32, _depth)?;
14459 Ok(())
14460 }
14461 }
14462
14463 impl fidl::encoding::ValueTypeMarker for VideoUncompressedFormat {
14464 type Borrowed<'a> = &'a Self;
14465 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14466 value
14467 }
14468 }
14469
14470 unsafe impl fidl::encoding::TypeMarker for VideoUncompressedFormat {
14471 type Owned = Self;
14472
14473 #[inline(always)]
14474 fn inline_align(_context: fidl::encoding::Context) -> usize {
14475 8
14476 }
14477
14478 #[inline(always)]
14479 fn inline_size(_context: fidl::encoding::Context) -> usize {
14480 128
14481 }
14482 }
14483
14484 unsafe impl<D: fidl::encoding::ResourceDialect>
14485 fidl::encoding::Encode<VideoUncompressedFormat, D> for &VideoUncompressedFormat
14486 {
14487 #[inline]
14488 unsafe fn encode(
14489 self,
14490 encoder: &mut fidl::encoding::Encoder<'_, D>,
14491 offset: usize,
14492 _depth: fidl::encoding::Depth,
14493 ) -> fidl::Result<()> {
14494 encoder.debug_check_bounds::<VideoUncompressedFormat>(offset);
14495 fidl::encoding::Encode::<VideoUncompressedFormat, D>::encode(
14497 (
14498 <fidl_fuchsia_sysmem__common::ImageFormat2 as fidl::encoding::ValueTypeMarker>::borrow(&self.image_format),
14499 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.fourcc),
14500 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_width_pixels),
14501 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_height_pixels),
14502 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_width_pixels),
14503 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_height_pixels),
14504 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.planar),
14505 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.swizzled),
14506 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_line_stride_bytes),
14507 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_line_stride_bytes),
14508 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_start_offset),
14509 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_start_offset),
14510 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.tertiary_start_offset),
14511 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_pixel_stride),
14512 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_pixel_stride),
14513 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_display_width_pixels),
14514 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_display_height_pixels),
14515 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_pixel_aspect_ratio),
14516 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_width),
14517 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.pixel_aspect_ratio_height),
14518 ),
14519 encoder, offset, _depth
14520 )
14521 }
14522 }
14523 unsafe impl<
14524 D: fidl::encoding::ResourceDialect,
14525 T0: fidl::encoding::Encode<fidl_fuchsia_sysmem__common::ImageFormat2, D>,
14526 T1: fidl::encoding::Encode<u32, D>,
14527 T2: fidl::encoding::Encode<u32, D>,
14528 T3: fidl::encoding::Encode<u32, D>,
14529 T4: fidl::encoding::Encode<u32, D>,
14530 T5: fidl::encoding::Encode<u32, D>,
14531 T6: fidl::encoding::Encode<bool, D>,
14532 T7: fidl::encoding::Encode<bool, D>,
14533 T8: fidl::encoding::Encode<u32, D>,
14534 T9: fidl::encoding::Encode<u32, D>,
14535 T10: fidl::encoding::Encode<u32, D>,
14536 T11: fidl::encoding::Encode<u32, D>,
14537 T12: fidl::encoding::Encode<u32, D>,
14538 T13: fidl::encoding::Encode<u32, D>,
14539 T14: fidl::encoding::Encode<u32, D>,
14540 T15: fidl::encoding::Encode<u32, D>,
14541 T16: fidl::encoding::Encode<u32, D>,
14542 T17: fidl::encoding::Encode<bool, D>,
14543 T18: fidl::encoding::Encode<u32, D>,
14544 T19: fidl::encoding::Encode<u32, D>,
14545 > fidl::encoding::Encode<VideoUncompressedFormat, D>
14546 for (
14547 T0,
14548 T1,
14549 T2,
14550 T3,
14551 T4,
14552 T5,
14553 T6,
14554 T7,
14555 T8,
14556 T9,
14557 T10,
14558 T11,
14559 T12,
14560 T13,
14561 T14,
14562 T15,
14563 T16,
14564 T17,
14565 T18,
14566 T19,
14567 )
14568 {
14569 #[inline]
14570 unsafe fn encode(
14571 self,
14572 encoder: &mut fidl::encoding::Encoder<'_, D>,
14573 offset: usize,
14574 depth: fidl::encoding::Depth,
14575 ) -> fidl::Result<()> {
14576 encoder.debug_check_bounds::<VideoUncompressedFormat>(offset);
14577 unsafe {
14580 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(72);
14581 (ptr as *mut u64).write_unaligned(0);
14582 }
14583 unsafe {
14584 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(112);
14585 (ptr as *mut u64).write_unaligned(0);
14586 }
14587 self.0.encode(encoder, offset + 0, depth)?;
14589 self.1.encode(encoder, offset + 56, depth)?;
14590 self.2.encode(encoder, offset + 60, depth)?;
14591 self.3.encode(encoder, offset + 64, depth)?;
14592 self.4.encode(encoder, offset + 68, depth)?;
14593 self.5.encode(encoder, offset + 72, depth)?;
14594 self.6.encode(encoder, offset + 76, depth)?;
14595 self.7.encode(encoder, offset + 77, depth)?;
14596 self.8.encode(encoder, offset + 80, depth)?;
14597 self.9.encode(encoder, offset + 84, depth)?;
14598 self.10.encode(encoder, offset + 88, depth)?;
14599 self.11.encode(encoder, offset + 92, depth)?;
14600 self.12.encode(encoder, offset + 96, depth)?;
14601 self.13.encode(encoder, offset + 100, depth)?;
14602 self.14.encode(encoder, offset + 104, depth)?;
14603 self.15.encode(encoder, offset + 108, depth)?;
14604 self.16.encode(encoder, offset + 112, depth)?;
14605 self.17.encode(encoder, offset + 116, depth)?;
14606 self.18.encode(encoder, offset + 120, depth)?;
14607 self.19.encode(encoder, offset + 124, depth)?;
14608 Ok(())
14609 }
14610 }
14611
14612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14613 for VideoUncompressedFormat
14614 {
14615 #[inline(always)]
14616 fn new_empty() -> Self {
14617 Self {
14618 image_format: fidl::new_empty!(fidl_fuchsia_sysmem__common::ImageFormat2, D),
14619 fourcc: fidl::new_empty!(u32, D),
14620 primary_width_pixels: fidl::new_empty!(u32, D),
14621 primary_height_pixels: fidl::new_empty!(u32, D),
14622 secondary_width_pixels: fidl::new_empty!(u32, D),
14623 secondary_height_pixels: fidl::new_empty!(u32, D),
14624 planar: fidl::new_empty!(bool, D),
14625 swizzled: fidl::new_empty!(bool, D),
14626 primary_line_stride_bytes: fidl::new_empty!(u32, D),
14627 secondary_line_stride_bytes: fidl::new_empty!(u32, D),
14628 primary_start_offset: fidl::new_empty!(u32, D),
14629 secondary_start_offset: fidl::new_empty!(u32, D),
14630 tertiary_start_offset: fidl::new_empty!(u32, D),
14631 primary_pixel_stride: fidl::new_empty!(u32, D),
14632 secondary_pixel_stride: fidl::new_empty!(u32, D),
14633 primary_display_width_pixels: fidl::new_empty!(u32, D),
14634 primary_display_height_pixels: fidl::new_empty!(u32, D),
14635 has_pixel_aspect_ratio: fidl::new_empty!(bool, D),
14636 pixel_aspect_ratio_width: fidl::new_empty!(u32, D),
14637 pixel_aspect_ratio_height: fidl::new_empty!(u32, D),
14638 }
14639 }
14640
14641 #[inline]
14642 unsafe fn decode(
14643 &mut self,
14644 decoder: &mut fidl::encoding::Decoder<'_, D>,
14645 offset: usize,
14646 _depth: fidl::encoding::Depth,
14647 ) -> fidl::Result<()> {
14648 decoder.debug_check_bounds::<Self>(offset);
14649 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(72) };
14651 let padval = unsafe { (ptr as *const u64).read_unaligned() };
14652 let mask = 0xffff000000000000u64;
14653 let maskedval = padval & mask;
14654 if maskedval != 0 {
14655 return Err(fidl::Error::NonZeroPadding {
14656 padding_start: offset + 72 + ((mask as u64).trailing_zeros() / 8) as usize,
14657 });
14658 }
14659 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(112) };
14660 let padval = unsafe { (ptr as *const u64).read_unaligned() };
14661 let mask = 0xffffff0000000000u64;
14662 let maskedval = padval & mask;
14663 if maskedval != 0 {
14664 return Err(fidl::Error::NonZeroPadding {
14665 padding_start: offset + 112 + ((mask as u64).trailing_zeros() / 8) as usize,
14666 });
14667 }
14668 fidl::decode!(
14669 fidl_fuchsia_sysmem__common::ImageFormat2,
14670 D,
14671 &mut self.image_format,
14672 decoder,
14673 offset + 0,
14674 _depth
14675 )?;
14676 fidl::decode!(u32, D, &mut self.fourcc, decoder, offset + 56, _depth)?;
14677 fidl::decode!(u32, D, &mut self.primary_width_pixels, decoder, offset + 60, _depth)?;
14678 fidl::decode!(u32, D, &mut self.primary_height_pixels, decoder, offset + 64, _depth)?;
14679 fidl::decode!(u32, D, &mut self.secondary_width_pixels, decoder, offset + 68, _depth)?;
14680 fidl::decode!(u32, D, &mut self.secondary_height_pixels, decoder, offset + 72, _depth)?;
14681 fidl::decode!(bool, D, &mut self.planar, decoder, offset + 76, _depth)?;
14682 fidl::decode!(bool, D, &mut self.swizzled, decoder, offset + 77, _depth)?;
14683 fidl::decode!(
14684 u32,
14685 D,
14686 &mut self.primary_line_stride_bytes,
14687 decoder,
14688 offset + 80,
14689 _depth
14690 )?;
14691 fidl::decode!(
14692 u32,
14693 D,
14694 &mut self.secondary_line_stride_bytes,
14695 decoder,
14696 offset + 84,
14697 _depth
14698 )?;
14699 fidl::decode!(u32, D, &mut self.primary_start_offset, decoder, offset + 88, _depth)?;
14700 fidl::decode!(u32, D, &mut self.secondary_start_offset, decoder, offset + 92, _depth)?;
14701 fidl::decode!(u32, D, &mut self.tertiary_start_offset, decoder, offset + 96, _depth)?;
14702 fidl::decode!(u32, D, &mut self.primary_pixel_stride, decoder, offset + 100, _depth)?;
14703 fidl::decode!(u32, D, &mut self.secondary_pixel_stride, decoder, offset + 104, _depth)?;
14704 fidl::decode!(
14705 u32,
14706 D,
14707 &mut self.primary_display_width_pixels,
14708 decoder,
14709 offset + 108,
14710 _depth
14711 )?;
14712 fidl::decode!(
14713 u32,
14714 D,
14715 &mut self.primary_display_height_pixels,
14716 decoder,
14717 offset + 112,
14718 _depth
14719 )?;
14720 fidl::decode!(
14721 bool,
14722 D,
14723 &mut self.has_pixel_aspect_ratio,
14724 decoder,
14725 offset + 116,
14726 _depth
14727 )?;
14728 fidl::decode!(
14729 u32,
14730 D,
14731 &mut self.pixel_aspect_ratio_width,
14732 decoder,
14733 offset + 120,
14734 _depth
14735 )?;
14736 fidl::decode!(
14737 u32,
14738 D,
14739 &mut self.pixel_aspect_ratio_height,
14740 decoder,
14741 offset + 124,
14742 _depth
14743 )?;
14744 Ok(())
14745 }
14746 }
14747
14748 impl fidl::encoding::ValueTypeMarker for Void {
14749 type Borrowed<'a> = &'a Self;
14750 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14751 value
14752 }
14753 }
14754
14755 unsafe impl fidl::encoding::TypeMarker for Void {
14756 type Owned = Self;
14757
14758 #[inline(always)]
14759 fn inline_align(_context: fidl::encoding::Context) -> usize {
14760 1
14761 }
14762
14763 #[inline(always)]
14764 fn inline_size(_context: fidl::encoding::Context) -> usize {
14765 1
14766 }
14767 }
14768
14769 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Void, D> for &Void {
14770 #[inline]
14771 unsafe fn encode(
14772 self,
14773 encoder: &mut fidl::encoding::Encoder<'_, D>,
14774 offset: usize,
14775 _depth: fidl::encoding::Depth,
14776 ) -> fidl::Result<()> {
14777 encoder.debug_check_bounds::<Void>(offset);
14778 encoder.write_num(0u8, offset);
14779 Ok(())
14780 }
14781 }
14782
14783 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Void {
14784 #[inline(always)]
14785 fn new_empty() -> Self {
14786 Self
14787 }
14788
14789 #[inline]
14790 unsafe fn decode(
14791 &mut self,
14792 decoder: &mut fidl::encoding::Decoder<'_, D>,
14793 offset: usize,
14794 _depth: fidl::encoding::Depth,
14795 ) -> fidl::Result<()> {
14796 decoder.debug_check_bounds::<Self>(offset);
14797 match decoder.read_num::<u8>(offset) {
14798 0 => Ok(()),
14799 _ => Err(fidl::Error::Invalid),
14800 }
14801 }
14802 }
14803
14804 impl AudioCompressedFormatCvsd {
14805 #[inline(always)]
14806 fn max_ordinal_present(&self) -> u64 {
14807 0
14808 }
14809 }
14810
14811 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatCvsd {
14812 type Borrowed<'a> = &'a Self;
14813 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14814 value
14815 }
14816 }
14817
14818 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatCvsd {
14819 type Owned = Self;
14820
14821 #[inline(always)]
14822 fn inline_align(_context: fidl::encoding::Context) -> usize {
14823 8
14824 }
14825
14826 #[inline(always)]
14827 fn inline_size(_context: fidl::encoding::Context) -> usize {
14828 16
14829 }
14830 }
14831
14832 unsafe impl<D: fidl::encoding::ResourceDialect>
14833 fidl::encoding::Encode<AudioCompressedFormatCvsd, D> for &AudioCompressedFormatCvsd
14834 {
14835 unsafe fn encode(
14836 self,
14837 encoder: &mut fidl::encoding::Encoder<'_, D>,
14838 offset: usize,
14839 mut depth: fidl::encoding::Depth,
14840 ) -> fidl::Result<()> {
14841 encoder.debug_check_bounds::<AudioCompressedFormatCvsd>(offset);
14842 let max_ordinal: u64 = self.max_ordinal_present();
14844 encoder.write_num(max_ordinal, offset);
14845 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14846 if max_ordinal == 0 {
14848 return Ok(());
14849 }
14850 depth.increment()?;
14851 let envelope_size = 8;
14852 let bytes_len = max_ordinal as usize * envelope_size;
14853 #[allow(unused_variables)]
14854 let offset = encoder.out_of_line_offset(bytes_len);
14855 let mut _prev_end_offset: usize = 0;
14856
14857 Ok(())
14858 }
14859 }
14860
14861 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14862 for AudioCompressedFormatCvsd
14863 {
14864 #[inline(always)]
14865 fn new_empty() -> Self {
14866 Self::default()
14867 }
14868
14869 unsafe fn decode(
14870 &mut self,
14871 decoder: &mut fidl::encoding::Decoder<'_, D>,
14872 offset: usize,
14873 mut depth: fidl::encoding::Depth,
14874 ) -> fidl::Result<()> {
14875 decoder.debug_check_bounds::<Self>(offset);
14876 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14877 None => return Err(fidl::Error::NotNullable),
14878 Some(len) => len,
14879 };
14880 if len == 0 {
14882 return Ok(());
14883 };
14884 depth.increment()?;
14885 let envelope_size = 8;
14886 let bytes_len = len * envelope_size;
14887 let offset = decoder.out_of_line_offset(bytes_len)?;
14888 let mut _next_ordinal_to_read = 0;
14890 let mut next_offset = offset;
14891 let end_offset = offset + bytes_len;
14892
14893 while next_offset < end_offset {
14895 _next_ordinal_to_read += 1;
14896 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14897 next_offset += envelope_size;
14898 }
14899
14900 Ok(())
14901 }
14902 }
14903
14904 impl AudioCompressedFormatLc3 {
14905 #[inline(always)]
14906 fn max_ordinal_present(&self) -> u64 {
14907 0
14908 }
14909 }
14910
14911 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatLc3 {
14912 type Borrowed<'a> = &'a Self;
14913 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14914 value
14915 }
14916 }
14917
14918 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatLc3 {
14919 type Owned = Self;
14920
14921 #[inline(always)]
14922 fn inline_align(_context: fidl::encoding::Context) -> usize {
14923 8
14924 }
14925
14926 #[inline(always)]
14927 fn inline_size(_context: fidl::encoding::Context) -> usize {
14928 16
14929 }
14930 }
14931
14932 unsafe impl<D: fidl::encoding::ResourceDialect>
14933 fidl::encoding::Encode<AudioCompressedFormatLc3, D> for &AudioCompressedFormatLc3
14934 {
14935 unsafe fn encode(
14936 self,
14937 encoder: &mut fidl::encoding::Encoder<'_, D>,
14938 offset: usize,
14939 mut depth: fidl::encoding::Depth,
14940 ) -> fidl::Result<()> {
14941 encoder.debug_check_bounds::<AudioCompressedFormatLc3>(offset);
14942 let max_ordinal: u64 = self.max_ordinal_present();
14944 encoder.write_num(max_ordinal, offset);
14945 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14946 if max_ordinal == 0 {
14948 return Ok(());
14949 }
14950 depth.increment()?;
14951 let envelope_size = 8;
14952 let bytes_len = max_ordinal as usize * envelope_size;
14953 #[allow(unused_variables)]
14954 let offset = encoder.out_of_line_offset(bytes_len);
14955 let mut _prev_end_offset: usize = 0;
14956
14957 Ok(())
14958 }
14959 }
14960
14961 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14962 for AudioCompressedFormatLc3
14963 {
14964 #[inline(always)]
14965 fn new_empty() -> Self {
14966 Self::default()
14967 }
14968
14969 unsafe fn decode(
14970 &mut self,
14971 decoder: &mut fidl::encoding::Decoder<'_, D>,
14972 offset: usize,
14973 mut depth: fidl::encoding::Depth,
14974 ) -> fidl::Result<()> {
14975 decoder.debug_check_bounds::<Self>(offset);
14976 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14977 None => return Err(fidl::Error::NotNullable),
14978 Some(len) => len,
14979 };
14980 if len == 0 {
14982 return Ok(());
14983 };
14984 depth.increment()?;
14985 let envelope_size = 8;
14986 let bytes_len = len * envelope_size;
14987 let offset = decoder.out_of_line_offset(bytes_len)?;
14988 let mut _next_ordinal_to_read = 0;
14990 let mut next_offset = offset;
14991 let end_offset = offset + bytes_len;
14992
14993 while next_offset < end_offset {
14995 _next_ordinal_to_read += 1;
14996 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14997 next_offset += envelope_size;
14998 }
14999
15000 Ok(())
15001 }
15002 }
15003
15004 impl AudioConsumerStatus {
15005 #[inline(always)]
15006 fn max_ordinal_present(&self) -> u64 {
15007 if let Some(_) = self.max_lead_time {
15008 return 4;
15009 }
15010 if let Some(_) = self.min_lead_time {
15011 return 3;
15012 }
15013 if let Some(_) = self.presentation_timeline {
15014 return 2;
15015 }
15016 if let Some(_) = self.error {
15017 return 1;
15018 }
15019 0
15020 }
15021 }
15022
15023 impl fidl::encoding::ValueTypeMarker for AudioConsumerStatus {
15024 type Borrowed<'a> = &'a Self;
15025 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15026 value
15027 }
15028 }
15029
15030 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStatus {
15031 type Owned = Self;
15032
15033 #[inline(always)]
15034 fn inline_align(_context: fidl::encoding::Context) -> usize {
15035 8
15036 }
15037
15038 #[inline(always)]
15039 fn inline_size(_context: fidl::encoding::Context) -> usize {
15040 16
15041 }
15042 }
15043
15044 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioConsumerStatus, D>
15045 for &AudioConsumerStatus
15046 {
15047 unsafe fn encode(
15048 self,
15049 encoder: &mut fidl::encoding::Encoder<'_, D>,
15050 offset: usize,
15051 mut depth: fidl::encoding::Depth,
15052 ) -> fidl::Result<()> {
15053 encoder.debug_check_bounds::<AudioConsumerStatus>(offset);
15054 let max_ordinal: u64 = self.max_ordinal_present();
15056 encoder.write_num(max_ordinal, offset);
15057 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15058 if max_ordinal == 0 {
15060 return Ok(());
15061 }
15062 depth.increment()?;
15063 let envelope_size = 8;
15064 let bytes_len = max_ordinal as usize * envelope_size;
15065 #[allow(unused_variables)]
15066 let offset = encoder.out_of_line_offset(bytes_len);
15067 let mut _prev_end_offset: usize = 0;
15068 if 1 > max_ordinal {
15069 return Ok(());
15070 }
15071
15072 let cur_offset: usize = (1 - 1) * envelope_size;
15075
15076 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15078
15079 fidl::encoding::encode_in_envelope_optional::<AudioConsumerError, D>(
15084 self.error
15085 .as_ref()
15086 .map(<AudioConsumerError as fidl::encoding::ValueTypeMarker>::borrow),
15087 encoder,
15088 offset + cur_offset,
15089 depth,
15090 )?;
15091
15092 _prev_end_offset = cur_offset + envelope_size;
15093 if 2 > max_ordinal {
15094 return Ok(());
15095 }
15096
15097 let cur_offset: usize = (2 - 1) * envelope_size;
15100
15101 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15103
15104 fidl::encoding::encode_in_envelope_optional::<TimelineFunction, D>(
15109 self.presentation_timeline
15110 .as_ref()
15111 .map(<TimelineFunction as fidl::encoding::ValueTypeMarker>::borrow),
15112 encoder,
15113 offset + cur_offset,
15114 depth,
15115 )?;
15116
15117 _prev_end_offset = cur_offset + envelope_size;
15118 if 3 > max_ordinal {
15119 return Ok(());
15120 }
15121
15122 let cur_offset: usize = (3 - 1) * envelope_size;
15125
15126 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15128
15129 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15134 self.min_lead_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15135 encoder,
15136 offset + cur_offset,
15137 depth,
15138 )?;
15139
15140 _prev_end_offset = cur_offset + envelope_size;
15141 if 4 > max_ordinal {
15142 return Ok(());
15143 }
15144
15145 let cur_offset: usize = (4 - 1) * envelope_size;
15148
15149 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15151
15152 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15157 self.max_lead_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15158 encoder,
15159 offset + cur_offset,
15160 depth,
15161 )?;
15162
15163 _prev_end_offset = cur_offset + envelope_size;
15164
15165 Ok(())
15166 }
15167 }
15168
15169 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioConsumerStatus {
15170 #[inline(always)]
15171 fn new_empty() -> Self {
15172 Self::default()
15173 }
15174
15175 unsafe fn decode(
15176 &mut self,
15177 decoder: &mut fidl::encoding::Decoder<'_, D>,
15178 offset: usize,
15179 mut depth: fidl::encoding::Depth,
15180 ) -> fidl::Result<()> {
15181 decoder.debug_check_bounds::<Self>(offset);
15182 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15183 None => return Err(fidl::Error::NotNullable),
15184 Some(len) => len,
15185 };
15186 if len == 0 {
15188 return Ok(());
15189 };
15190 depth.increment()?;
15191 let envelope_size = 8;
15192 let bytes_len = len * envelope_size;
15193 let offset = decoder.out_of_line_offset(bytes_len)?;
15194 let mut _next_ordinal_to_read = 0;
15196 let mut next_offset = offset;
15197 let end_offset = offset + bytes_len;
15198 _next_ordinal_to_read += 1;
15199 if next_offset >= end_offset {
15200 return Ok(());
15201 }
15202
15203 while _next_ordinal_to_read < 1 {
15205 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15206 _next_ordinal_to_read += 1;
15207 next_offset += envelope_size;
15208 }
15209
15210 let next_out_of_line = decoder.next_out_of_line();
15211 let handles_before = decoder.remaining_handles();
15212 if let Some((inlined, num_bytes, num_handles)) =
15213 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15214 {
15215 let member_inline_size =
15216 <AudioConsumerError as fidl::encoding::TypeMarker>::inline_size(
15217 decoder.context,
15218 );
15219 if inlined != (member_inline_size <= 4) {
15220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15221 }
15222 let inner_offset;
15223 let mut inner_depth = depth.clone();
15224 if inlined {
15225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15226 inner_offset = next_offset;
15227 } else {
15228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15229 inner_depth.increment()?;
15230 }
15231 let val_ref =
15232 self.error.get_or_insert_with(|| fidl::new_empty!(AudioConsumerError, D));
15233 fidl::decode!(AudioConsumerError, D, val_ref, decoder, inner_offset, inner_depth)?;
15234 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15235 {
15236 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15237 }
15238 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15239 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15240 }
15241 }
15242
15243 next_offset += envelope_size;
15244 _next_ordinal_to_read += 1;
15245 if next_offset >= end_offset {
15246 return Ok(());
15247 }
15248
15249 while _next_ordinal_to_read < 2 {
15251 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15252 _next_ordinal_to_read += 1;
15253 next_offset += envelope_size;
15254 }
15255
15256 let next_out_of_line = decoder.next_out_of_line();
15257 let handles_before = decoder.remaining_handles();
15258 if let Some((inlined, num_bytes, num_handles)) =
15259 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15260 {
15261 let member_inline_size =
15262 <TimelineFunction as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15263 if inlined != (member_inline_size <= 4) {
15264 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15265 }
15266 let inner_offset;
15267 let mut inner_depth = depth.clone();
15268 if inlined {
15269 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15270 inner_offset = next_offset;
15271 } else {
15272 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15273 inner_depth.increment()?;
15274 }
15275 let val_ref = self
15276 .presentation_timeline
15277 .get_or_insert_with(|| fidl::new_empty!(TimelineFunction, D));
15278 fidl::decode!(TimelineFunction, D, val_ref, decoder, inner_offset, inner_depth)?;
15279 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15280 {
15281 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15282 }
15283 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15284 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15285 }
15286 }
15287
15288 next_offset += envelope_size;
15289 _next_ordinal_to_read += 1;
15290 if next_offset >= end_offset {
15291 return Ok(());
15292 }
15293
15294 while _next_ordinal_to_read < 3 {
15296 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15297 _next_ordinal_to_read += 1;
15298 next_offset += envelope_size;
15299 }
15300
15301 let next_out_of_line = decoder.next_out_of_line();
15302 let handles_before = decoder.remaining_handles();
15303 if let Some((inlined, num_bytes, num_handles)) =
15304 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15305 {
15306 let member_inline_size =
15307 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15308 if inlined != (member_inline_size <= 4) {
15309 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15310 }
15311 let inner_offset;
15312 let mut inner_depth = depth.clone();
15313 if inlined {
15314 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15315 inner_offset = next_offset;
15316 } else {
15317 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15318 inner_depth.increment()?;
15319 }
15320 let val_ref = self.min_lead_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
15321 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15322 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15323 {
15324 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15325 }
15326 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15327 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15328 }
15329 }
15330
15331 next_offset += envelope_size;
15332 _next_ordinal_to_read += 1;
15333 if next_offset >= end_offset {
15334 return Ok(());
15335 }
15336
15337 while _next_ordinal_to_read < 4 {
15339 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15340 _next_ordinal_to_read += 1;
15341 next_offset += envelope_size;
15342 }
15343
15344 let next_out_of_line = decoder.next_out_of_line();
15345 let handles_before = decoder.remaining_handles();
15346 if let Some((inlined, num_bytes, num_handles)) =
15347 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15348 {
15349 let member_inline_size =
15350 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15351 if inlined != (member_inline_size <= 4) {
15352 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15353 }
15354 let inner_offset;
15355 let mut inner_depth = depth.clone();
15356 if inlined {
15357 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15358 inner_offset = next_offset;
15359 } else {
15360 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15361 inner_depth.increment()?;
15362 }
15363 let val_ref = self.max_lead_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
15364 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15365 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15366 {
15367 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15368 }
15369 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15370 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15371 }
15372 }
15373
15374 next_offset += envelope_size;
15375
15376 while next_offset < end_offset {
15378 _next_ordinal_to_read += 1;
15379 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15380 next_offset += envelope_size;
15381 }
15382
15383 Ok(())
15384 }
15385 }
15386
15387 impl CvsdEncoderSettings {
15388 #[inline(always)]
15389 fn max_ordinal_present(&self) -> u64 {
15390 0
15391 }
15392 }
15393
15394 impl fidl::encoding::ValueTypeMarker for CvsdEncoderSettings {
15395 type Borrowed<'a> = &'a Self;
15396 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15397 value
15398 }
15399 }
15400
15401 unsafe impl fidl::encoding::TypeMarker for CvsdEncoderSettings {
15402 type Owned = Self;
15403
15404 #[inline(always)]
15405 fn inline_align(_context: fidl::encoding::Context) -> usize {
15406 8
15407 }
15408
15409 #[inline(always)]
15410 fn inline_size(_context: fidl::encoding::Context) -> usize {
15411 16
15412 }
15413 }
15414
15415 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CvsdEncoderSettings, D>
15416 for &CvsdEncoderSettings
15417 {
15418 unsafe fn encode(
15419 self,
15420 encoder: &mut fidl::encoding::Encoder<'_, D>,
15421 offset: usize,
15422 mut depth: fidl::encoding::Depth,
15423 ) -> fidl::Result<()> {
15424 encoder.debug_check_bounds::<CvsdEncoderSettings>(offset);
15425 let max_ordinal: u64 = self.max_ordinal_present();
15427 encoder.write_num(max_ordinal, offset);
15428 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15429 if max_ordinal == 0 {
15431 return Ok(());
15432 }
15433 depth.increment()?;
15434 let envelope_size = 8;
15435 let bytes_len = max_ordinal as usize * envelope_size;
15436 #[allow(unused_variables)]
15437 let offset = encoder.out_of_line_offset(bytes_len);
15438 let mut _prev_end_offset: usize = 0;
15439
15440 Ok(())
15441 }
15442 }
15443
15444 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CvsdEncoderSettings {
15445 #[inline(always)]
15446 fn new_empty() -> Self {
15447 Self::default()
15448 }
15449
15450 unsafe fn decode(
15451 &mut self,
15452 decoder: &mut fidl::encoding::Decoder<'_, D>,
15453 offset: usize,
15454 mut depth: fidl::encoding::Depth,
15455 ) -> fidl::Result<()> {
15456 decoder.debug_check_bounds::<Self>(offset);
15457 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15458 None => return Err(fidl::Error::NotNullable),
15459 Some(len) => len,
15460 };
15461 if len == 0 {
15463 return Ok(());
15464 };
15465 depth.increment()?;
15466 let envelope_size = 8;
15467 let bytes_len = len * envelope_size;
15468 let offset = decoder.out_of_line_offset(bytes_len)?;
15469 let mut _next_ordinal_to_read = 0;
15471 let mut next_offset = offset;
15472 let end_offset = offset + bytes_len;
15473
15474 while next_offset < end_offset {
15476 _next_ordinal_to_read += 1;
15477 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15478 next_offset += envelope_size;
15479 }
15480
15481 Ok(())
15482 }
15483 }
15484
15485 impl DecryptedFormat {
15486 #[inline(always)]
15487 fn max_ordinal_present(&self) -> u64 {
15488 if let Some(_) = self.ignore_this_field {
15489 return 1;
15490 }
15491 0
15492 }
15493 }
15494
15495 impl fidl::encoding::ValueTypeMarker for DecryptedFormat {
15496 type Borrowed<'a> = &'a Self;
15497 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15498 value
15499 }
15500 }
15501
15502 unsafe impl fidl::encoding::TypeMarker for DecryptedFormat {
15503 type Owned = Self;
15504
15505 #[inline(always)]
15506 fn inline_align(_context: fidl::encoding::Context) -> usize {
15507 8
15508 }
15509
15510 #[inline(always)]
15511 fn inline_size(_context: fidl::encoding::Context) -> usize {
15512 16
15513 }
15514 }
15515
15516 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DecryptedFormat, D>
15517 for &DecryptedFormat
15518 {
15519 unsafe fn encode(
15520 self,
15521 encoder: &mut fidl::encoding::Encoder<'_, D>,
15522 offset: usize,
15523 mut depth: fidl::encoding::Depth,
15524 ) -> fidl::Result<()> {
15525 encoder.debug_check_bounds::<DecryptedFormat>(offset);
15526 let max_ordinal: u64 = self.max_ordinal_present();
15528 encoder.write_num(max_ordinal, offset);
15529 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15530 if max_ordinal == 0 {
15532 return Ok(());
15533 }
15534 depth.increment()?;
15535 let envelope_size = 8;
15536 let bytes_len = max_ordinal as usize * envelope_size;
15537 #[allow(unused_variables)]
15538 let offset = encoder.out_of_line_offset(bytes_len);
15539 let mut _prev_end_offset: usize = 0;
15540 if 1 > max_ordinal {
15541 return Ok(());
15542 }
15543
15544 let cur_offset: usize = (1 - 1) * envelope_size;
15547
15548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15550
15551 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15556 self.ignore_this_field
15557 .as_ref()
15558 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15559 encoder,
15560 offset + cur_offset,
15561 depth,
15562 )?;
15563
15564 _prev_end_offset = cur_offset + envelope_size;
15565
15566 Ok(())
15567 }
15568 }
15569
15570 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DecryptedFormat {
15571 #[inline(always)]
15572 fn new_empty() -> Self {
15573 Self::default()
15574 }
15575
15576 unsafe fn decode(
15577 &mut self,
15578 decoder: &mut fidl::encoding::Decoder<'_, D>,
15579 offset: usize,
15580 mut depth: fidl::encoding::Depth,
15581 ) -> fidl::Result<()> {
15582 decoder.debug_check_bounds::<Self>(offset);
15583 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15584 None => return Err(fidl::Error::NotNullable),
15585 Some(len) => len,
15586 };
15587 if len == 0 {
15589 return Ok(());
15590 };
15591 depth.increment()?;
15592 let envelope_size = 8;
15593 let bytes_len = len * envelope_size;
15594 let offset = decoder.out_of_line_offset(bytes_len)?;
15595 let mut _next_ordinal_to_read = 0;
15597 let mut next_offset = offset;
15598 let end_offset = offset + bytes_len;
15599 _next_ordinal_to_read += 1;
15600 if next_offset >= end_offset {
15601 return Ok(());
15602 }
15603
15604 while _next_ordinal_to_read < 1 {
15606 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15607 _next_ordinal_to_read += 1;
15608 next_offset += envelope_size;
15609 }
15610
15611 let next_out_of_line = decoder.next_out_of_line();
15612 let handles_before = decoder.remaining_handles();
15613 if let Some((inlined, num_bytes, num_handles)) =
15614 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15615 {
15616 let member_inline_size =
15617 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15618 if inlined != (member_inline_size <= 4) {
15619 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15620 }
15621 let inner_offset;
15622 let mut inner_depth = depth.clone();
15623 if inlined {
15624 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15625 inner_offset = next_offset;
15626 } else {
15627 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15628 inner_depth.increment()?;
15629 }
15630 let val_ref =
15631 self.ignore_this_field.get_or_insert_with(|| fidl::new_empty!(bool, D));
15632 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15633 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15634 {
15635 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15636 }
15637 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15638 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15639 }
15640 }
15641
15642 next_offset += envelope_size;
15643
15644 while next_offset < end_offset {
15646 _next_ordinal_to_read += 1;
15647 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15648 next_offset += envelope_size;
15649 }
15650
15651 Ok(())
15652 }
15653 }
15654
15655 impl EncryptedFormat {
15656 #[inline(always)]
15657 fn max_ordinal_present(&self) -> u64 {
15658 if let Some(_) = self.key_id {
15659 return 8;
15660 }
15661 if let Some(_) = self.scheme {
15662 return 6;
15663 }
15664 if let Some(_) = self.pattern {
15665 return 5;
15666 }
15667 if let Some(_) = self.subsamples {
15668 return 4;
15669 }
15670 if let Some(_) = self.init_vector {
15671 return 3;
15672 }
15673 0
15674 }
15675 }
15676
15677 impl fidl::encoding::ValueTypeMarker for EncryptedFormat {
15678 type Borrowed<'a> = &'a Self;
15679 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15680 value
15681 }
15682 }
15683
15684 unsafe impl fidl::encoding::TypeMarker for EncryptedFormat {
15685 type Owned = Self;
15686
15687 #[inline(always)]
15688 fn inline_align(_context: fidl::encoding::Context) -> usize {
15689 8
15690 }
15691
15692 #[inline(always)]
15693 fn inline_size(_context: fidl::encoding::Context) -> usize {
15694 16
15695 }
15696 }
15697
15698 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncryptedFormat, D>
15699 for &EncryptedFormat
15700 {
15701 unsafe fn encode(
15702 self,
15703 encoder: &mut fidl::encoding::Encoder<'_, D>,
15704 offset: usize,
15705 mut depth: fidl::encoding::Depth,
15706 ) -> fidl::Result<()> {
15707 encoder.debug_check_bounds::<EncryptedFormat>(offset);
15708 let max_ordinal: u64 = self.max_ordinal_present();
15710 encoder.write_num(max_ordinal, offset);
15711 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15712 if max_ordinal == 0 {
15714 return Ok(());
15715 }
15716 depth.increment()?;
15717 let envelope_size = 8;
15718 let bytes_len = max_ordinal as usize * envelope_size;
15719 #[allow(unused_variables)]
15720 let offset = encoder.out_of_line_offset(bytes_len);
15721 let mut _prev_end_offset: usize = 0;
15722 if 3 > max_ordinal {
15723 return Ok(());
15724 }
15725
15726 let cur_offset: usize = (3 - 1) * envelope_size;
15729
15730 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15732
15733 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 16>, D>(
15738 self.init_vector.as_ref().map(
15739 <fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
15740 ),
15741 encoder,
15742 offset + cur_offset,
15743 depth,
15744 )?;
15745
15746 _prev_end_offset = cur_offset + envelope_size;
15747 if 4 > max_ordinal {
15748 return Ok(());
15749 }
15750
15751 let cur_offset: usize = (4 - 1) * envelope_size;
15754
15755 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15757
15758 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SubsampleEntry>, D>(
15763 self.subsamples.as_ref().map(<fidl::encoding::UnboundedVector<SubsampleEntry> as fidl::encoding::ValueTypeMarker>::borrow),
15764 encoder, offset + cur_offset, depth
15765 )?;
15766
15767 _prev_end_offset = cur_offset + envelope_size;
15768 if 5 > max_ordinal {
15769 return Ok(());
15770 }
15771
15772 let cur_offset: usize = (5 - 1) * envelope_size;
15775
15776 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15778
15779 fidl::encoding::encode_in_envelope_optional::<EncryptionPattern, D>(
15784 self.pattern
15785 .as_ref()
15786 .map(<EncryptionPattern as fidl::encoding::ValueTypeMarker>::borrow),
15787 encoder,
15788 offset + cur_offset,
15789 depth,
15790 )?;
15791
15792 _prev_end_offset = cur_offset + envelope_size;
15793 if 6 > max_ordinal {
15794 return Ok(());
15795 }
15796
15797 let cur_offset: usize = (6 - 1) * envelope_size;
15800
15801 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15803
15804 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
15809 self.scheme.as_ref().map(
15810 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
15811 ),
15812 encoder,
15813 offset + cur_offset,
15814 depth,
15815 )?;
15816
15817 _prev_end_offset = cur_offset + envelope_size;
15818 if 8 > max_ordinal {
15819 return Ok(());
15820 }
15821
15822 let cur_offset: usize = (8 - 1) * envelope_size;
15825
15826 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15828
15829 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 16>, D>(
15834 self.key_id.as_ref().map(
15835 <fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
15836 ),
15837 encoder,
15838 offset + cur_offset,
15839 depth,
15840 )?;
15841
15842 _prev_end_offset = cur_offset + envelope_size;
15843
15844 Ok(())
15845 }
15846 }
15847
15848 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncryptedFormat {
15849 #[inline(always)]
15850 fn new_empty() -> Self {
15851 Self::default()
15852 }
15853
15854 unsafe fn decode(
15855 &mut self,
15856 decoder: &mut fidl::encoding::Decoder<'_, D>,
15857 offset: usize,
15858 mut depth: fidl::encoding::Depth,
15859 ) -> fidl::Result<()> {
15860 decoder.debug_check_bounds::<Self>(offset);
15861 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15862 None => return Err(fidl::Error::NotNullable),
15863 Some(len) => len,
15864 };
15865 if len == 0 {
15867 return Ok(());
15868 };
15869 depth.increment()?;
15870 let envelope_size = 8;
15871 let bytes_len = len * envelope_size;
15872 let offset = decoder.out_of_line_offset(bytes_len)?;
15873 let mut _next_ordinal_to_read = 0;
15875 let mut next_offset = offset;
15876 let end_offset = offset + bytes_len;
15877 _next_ordinal_to_read += 1;
15878 if next_offset >= end_offset {
15879 return Ok(());
15880 }
15881
15882 while _next_ordinal_to_read < 3 {
15884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15885 _next_ordinal_to_read += 1;
15886 next_offset += envelope_size;
15887 }
15888
15889 let next_out_of_line = decoder.next_out_of_line();
15890 let handles_before = decoder.remaining_handles();
15891 if let Some((inlined, num_bytes, num_handles)) =
15892 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15893 {
15894 let member_inline_size =
15895 <fidl::encoding::Vector<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
15896 decoder.context,
15897 );
15898 if inlined != (member_inline_size <= 4) {
15899 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15900 }
15901 let inner_offset;
15902 let mut inner_depth = depth.clone();
15903 if inlined {
15904 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15905 inner_offset = next_offset;
15906 } else {
15907 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15908 inner_depth.increment()?;
15909 }
15910 let val_ref = self
15911 .init_vector
15912 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D));
15913 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
15914 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15915 {
15916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15917 }
15918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15920 }
15921 }
15922
15923 next_offset += envelope_size;
15924 _next_ordinal_to_read += 1;
15925 if next_offset >= end_offset {
15926 return Ok(());
15927 }
15928
15929 while _next_ordinal_to_read < 4 {
15931 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15932 _next_ordinal_to_read += 1;
15933 next_offset += envelope_size;
15934 }
15935
15936 let next_out_of_line = decoder.next_out_of_line();
15937 let handles_before = decoder.remaining_handles();
15938 if let Some((inlined, num_bytes, num_handles)) =
15939 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15940 {
15941 let member_inline_size = <fidl::encoding::UnboundedVector<SubsampleEntry> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15942 if inlined != (member_inline_size <= 4) {
15943 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15944 }
15945 let inner_offset;
15946 let mut inner_depth = depth.clone();
15947 if inlined {
15948 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15949 inner_offset = next_offset;
15950 } else {
15951 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15952 inner_depth.increment()?;
15953 }
15954 let val_ref = self.subsamples.get_or_insert_with(|| {
15955 fidl::new_empty!(fidl::encoding::UnboundedVector<SubsampleEntry>, D)
15956 });
15957 fidl::decode!(
15958 fidl::encoding::UnboundedVector<SubsampleEntry>,
15959 D,
15960 val_ref,
15961 decoder,
15962 inner_offset,
15963 inner_depth
15964 )?;
15965 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15966 {
15967 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15968 }
15969 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15970 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15971 }
15972 }
15973
15974 next_offset += envelope_size;
15975 _next_ordinal_to_read += 1;
15976 if next_offset >= end_offset {
15977 return Ok(());
15978 }
15979
15980 while _next_ordinal_to_read < 5 {
15982 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15983 _next_ordinal_to_read += 1;
15984 next_offset += envelope_size;
15985 }
15986
15987 let next_out_of_line = decoder.next_out_of_line();
15988 let handles_before = decoder.remaining_handles();
15989 if let Some((inlined, num_bytes, num_handles)) =
15990 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15991 {
15992 let member_inline_size =
15993 <EncryptionPattern as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15994 if inlined != (member_inline_size <= 4) {
15995 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15996 }
15997 let inner_offset;
15998 let mut inner_depth = depth.clone();
15999 if inlined {
16000 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16001 inner_offset = next_offset;
16002 } else {
16003 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16004 inner_depth.increment()?;
16005 }
16006 let val_ref =
16007 self.pattern.get_or_insert_with(|| fidl::new_empty!(EncryptionPattern, D));
16008 fidl::decode!(EncryptionPattern, D, val_ref, decoder, inner_offset, inner_depth)?;
16009 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16010 {
16011 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16012 }
16013 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16014 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16015 }
16016 }
16017
16018 next_offset += envelope_size;
16019 _next_ordinal_to_read += 1;
16020 if next_offset >= end_offset {
16021 return Ok(());
16022 }
16023
16024 while _next_ordinal_to_read < 6 {
16026 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16027 _next_ordinal_to_read += 1;
16028 next_offset += envelope_size;
16029 }
16030
16031 let next_out_of_line = decoder.next_out_of_line();
16032 let handles_before = decoder.remaining_handles();
16033 if let Some((inlined, num_bytes, num_handles)) =
16034 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16035 {
16036 let member_inline_size =
16037 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
16038 decoder.context,
16039 );
16040 if inlined != (member_inline_size <= 4) {
16041 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16042 }
16043 let inner_offset;
16044 let mut inner_depth = depth.clone();
16045 if inlined {
16046 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16047 inner_offset = next_offset;
16048 } else {
16049 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16050 inner_depth.increment()?;
16051 }
16052 let val_ref = self
16053 .scheme
16054 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
16055 fidl::decode!(
16056 fidl::encoding::UnboundedString,
16057 D,
16058 val_ref,
16059 decoder,
16060 inner_offset,
16061 inner_depth
16062 )?;
16063 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16064 {
16065 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16066 }
16067 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16068 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16069 }
16070 }
16071
16072 next_offset += envelope_size;
16073 _next_ordinal_to_read += 1;
16074 if next_offset >= end_offset {
16075 return Ok(());
16076 }
16077
16078 while _next_ordinal_to_read < 8 {
16080 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16081 _next_ordinal_to_read += 1;
16082 next_offset += envelope_size;
16083 }
16084
16085 let next_out_of_line = decoder.next_out_of_line();
16086 let handles_before = decoder.remaining_handles();
16087 if let Some((inlined, num_bytes, num_handles)) =
16088 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16089 {
16090 let member_inline_size =
16091 <fidl::encoding::Vector<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
16092 decoder.context,
16093 );
16094 if inlined != (member_inline_size <= 4) {
16095 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16096 }
16097 let inner_offset;
16098 let mut inner_depth = depth.clone();
16099 if inlined {
16100 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16101 inner_offset = next_offset;
16102 } else {
16103 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16104 inner_depth.increment()?;
16105 }
16106 let val_ref = self
16107 .key_id
16108 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D));
16109 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16110 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16111 {
16112 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16113 }
16114 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16115 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16116 }
16117 }
16118
16119 next_offset += envelope_size;
16120
16121 while next_offset < end_offset {
16123 _next_ordinal_to_read += 1;
16124 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16125 next_offset += envelope_size;
16126 }
16127
16128 Ok(())
16129 }
16130 }
16131
16132 impl FormatDetails {
16133 #[inline(always)]
16134 fn max_ordinal_present(&self) -> u64 {
16135 if let Some(_) = self.profile {
16136 return 8;
16137 }
16138 if let Some(_) = self.timebase {
16139 return 7;
16140 }
16141 if let Some(_) = self.encoder_settings {
16142 return 6;
16143 }
16144 if let Some(_) = self.pass_through_parameters {
16145 return 5;
16146 }
16147 if let Some(_) = self.domain {
16148 return 4;
16149 }
16150 if let Some(_) = self.oob_bytes {
16151 return 3;
16152 }
16153 if let Some(_) = self.mime_type {
16154 return 2;
16155 }
16156 if let Some(_) = self.format_details_version_ordinal {
16157 return 1;
16158 }
16159 0
16160 }
16161 }
16162
16163 impl fidl::encoding::ValueTypeMarker for FormatDetails {
16164 type Borrowed<'a> = &'a Self;
16165 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16166 value
16167 }
16168 }
16169
16170 unsafe impl fidl::encoding::TypeMarker for FormatDetails {
16171 type Owned = Self;
16172
16173 #[inline(always)]
16174 fn inline_align(_context: fidl::encoding::Context) -> usize {
16175 8
16176 }
16177
16178 #[inline(always)]
16179 fn inline_size(_context: fidl::encoding::Context) -> usize {
16180 16
16181 }
16182 }
16183
16184 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FormatDetails, D>
16185 for &FormatDetails
16186 {
16187 unsafe fn encode(
16188 self,
16189 encoder: &mut fidl::encoding::Encoder<'_, D>,
16190 offset: usize,
16191 mut depth: fidl::encoding::Depth,
16192 ) -> fidl::Result<()> {
16193 encoder.debug_check_bounds::<FormatDetails>(offset);
16194 let max_ordinal: u64 = self.max_ordinal_present();
16196 encoder.write_num(max_ordinal, offset);
16197 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16198 if max_ordinal == 0 {
16200 return Ok(());
16201 }
16202 depth.increment()?;
16203 let envelope_size = 8;
16204 let bytes_len = max_ordinal as usize * envelope_size;
16205 #[allow(unused_variables)]
16206 let offset = encoder.out_of_line_offset(bytes_len);
16207 let mut _prev_end_offset: usize = 0;
16208 if 1 > max_ordinal {
16209 return Ok(());
16210 }
16211
16212 let cur_offset: usize = (1 - 1) * envelope_size;
16215
16216 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16218
16219 fidl::encoding::encode_in_envelope_optional::<u64, D>(
16224 self.format_details_version_ordinal
16225 .as_ref()
16226 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
16227 encoder,
16228 offset + cur_offset,
16229 depth,
16230 )?;
16231
16232 _prev_end_offset = cur_offset + envelope_size;
16233 if 2 > max_ordinal {
16234 return Ok(());
16235 }
16236
16237 let cur_offset: usize = (2 - 1) * envelope_size;
16240
16241 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16243
16244 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
16249 self.mime_type.as_ref().map(
16250 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
16251 ),
16252 encoder,
16253 offset + cur_offset,
16254 depth,
16255 )?;
16256
16257 _prev_end_offset = cur_offset + envelope_size;
16258 if 3 > max_ordinal {
16259 return Ok(());
16260 }
16261
16262 let cur_offset: usize = (3 - 1) * envelope_size;
16265
16266 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16268
16269 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16274 self.oob_bytes.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16275 encoder, offset + cur_offset, depth
16276 )?;
16277
16278 _prev_end_offset = cur_offset + envelope_size;
16279 if 4 > max_ordinal {
16280 return Ok(());
16281 }
16282
16283 let cur_offset: usize = (4 - 1) * envelope_size;
16286
16287 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16289
16290 fidl::encoding::encode_in_envelope_optional::<DomainFormat, D>(
16295 self.domain.as_ref().map(<DomainFormat as fidl::encoding::ValueTypeMarker>::borrow),
16296 encoder,
16297 offset + cur_offset,
16298 depth,
16299 )?;
16300
16301 _prev_end_offset = cur_offset + envelope_size;
16302 if 5 > max_ordinal {
16303 return Ok(());
16304 }
16305
16306 let cur_offset: usize = (5 - 1) * envelope_size;
16309
16310 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16312
16313 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Parameter>, D>(
16318 self.pass_through_parameters.as_ref().map(<fidl::encoding::UnboundedVector<Parameter> as fidl::encoding::ValueTypeMarker>::borrow),
16319 encoder, offset + cur_offset, depth
16320 )?;
16321
16322 _prev_end_offset = cur_offset + envelope_size;
16323 if 6 > max_ordinal {
16324 return Ok(());
16325 }
16326
16327 let cur_offset: usize = (6 - 1) * envelope_size;
16330
16331 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16333
16334 fidl::encoding::encode_in_envelope_optional::<EncoderSettings, D>(
16339 self.encoder_settings
16340 .as_ref()
16341 .map(<EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow),
16342 encoder,
16343 offset + cur_offset,
16344 depth,
16345 )?;
16346
16347 _prev_end_offset = cur_offset + envelope_size;
16348 if 7 > max_ordinal {
16349 return Ok(());
16350 }
16351
16352 let cur_offset: usize = (7 - 1) * envelope_size;
16355
16356 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16358
16359 fidl::encoding::encode_in_envelope_optional::<u64, D>(
16364 self.timebase.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
16365 encoder,
16366 offset + cur_offset,
16367 depth,
16368 )?;
16369
16370 _prev_end_offset = cur_offset + envelope_size;
16371 if 8 > max_ordinal {
16372 return Ok(());
16373 }
16374
16375 let cur_offset: usize = (8 - 1) * envelope_size;
16378
16379 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16381
16382 fidl::encoding::encode_in_envelope_optional::<CodecProfile, D>(
16387 self.profile
16388 .as_ref()
16389 .map(<CodecProfile as fidl::encoding::ValueTypeMarker>::borrow),
16390 encoder,
16391 offset + cur_offset,
16392 depth,
16393 )?;
16394
16395 _prev_end_offset = cur_offset + envelope_size;
16396
16397 Ok(())
16398 }
16399 }
16400
16401 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FormatDetails {
16402 #[inline(always)]
16403 fn new_empty() -> Self {
16404 Self::default()
16405 }
16406
16407 unsafe fn decode(
16408 &mut self,
16409 decoder: &mut fidl::encoding::Decoder<'_, D>,
16410 offset: usize,
16411 mut depth: fidl::encoding::Depth,
16412 ) -> fidl::Result<()> {
16413 decoder.debug_check_bounds::<Self>(offset);
16414 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16415 None => return Err(fidl::Error::NotNullable),
16416 Some(len) => len,
16417 };
16418 if len == 0 {
16420 return Ok(());
16421 };
16422 depth.increment()?;
16423 let envelope_size = 8;
16424 let bytes_len = len * envelope_size;
16425 let offset = decoder.out_of_line_offset(bytes_len)?;
16426 let mut _next_ordinal_to_read = 0;
16428 let mut next_offset = offset;
16429 let end_offset = offset + bytes_len;
16430 _next_ordinal_to_read += 1;
16431 if next_offset >= end_offset {
16432 return Ok(());
16433 }
16434
16435 while _next_ordinal_to_read < 1 {
16437 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16438 _next_ordinal_to_read += 1;
16439 next_offset += envelope_size;
16440 }
16441
16442 let next_out_of_line = decoder.next_out_of_line();
16443 let handles_before = decoder.remaining_handles();
16444 if let Some((inlined, num_bytes, num_handles)) =
16445 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16446 {
16447 let member_inline_size =
16448 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16449 if inlined != (member_inline_size <= 4) {
16450 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16451 }
16452 let inner_offset;
16453 let mut inner_depth = depth.clone();
16454 if inlined {
16455 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16456 inner_offset = next_offset;
16457 } else {
16458 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16459 inner_depth.increment()?;
16460 }
16461 let val_ref = self
16462 .format_details_version_ordinal
16463 .get_or_insert_with(|| fidl::new_empty!(u64, D));
16464 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
16465 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16466 {
16467 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16468 }
16469 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16470 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16471 }
16472 }
16473
16474 next_offset += envelope_size;
16475 _next_ordinal_to_read += 1;
16476 if next_offset >= end_offset {
16477 return Ok(());
16478 }
16479
16480 while _next_ordinal_to_read < 2 {
16482 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16483 _next_ordinal_to_read += 1;
16484 next_offset += envelope_size;
16485 }
16486
16487 let next_out_of_line = decoder.next_out_of_line();
16488 let handles_before = decoder.remaining_handles();
16489 if let Some((inlined, num_bytes, num_handles)) =
16490 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16491 {
16492 let member_inline_size =
16493 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
16494 decoder.context,
16495 );
16496 if inlined != (member_inline_size <= 4) {
16497 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16498 }
16499 let inner_offset;
16500 let mut inner_depth = depth.clone();
16501 if inlined {
16502 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16503 inner_offset = next_offset;
16504 } else {
16505 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16506 inner_depth.increment()?;
16507 }
16508 let val_ref = self
16509 .mime_type
16510 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
16511 fidl::decode!(
16512 fidl::encoding::UnboundedString,
16513 D,
16514 val_ref,
16515 decoder,
16516 inner_offset,
16517 inner_depth
16518 )?;
16519 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16520 {
16521 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16522 }
16523 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16524 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16525 }
16526 }
16527
16528 next_offset += envelope_size;
16529 _next_ordinal_to_read += 1;
16530 if next_offset >= end_offset {
16531 return Ok(());
16532 }
16533
16534 while _next_ordinal_to_read < 3 {
16536 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16537 _next_ordinal_to_read += 1;
16538 next_offset += envelope_size;
16539 }
16540
16541 let next_out_of_line = decoder.next_out_of_line();
16542 let handles_before = decoder.remaining_handles();
16543 if let Some((inlined, num_bytes, num_handles)) =
16544 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16545 {
16546 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16547 if inlined != (member_inline_size <= 4) {
16548 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16549 }
16550 let inner_offset;
16551 let mut inner_depth = depth.clone();
16552 if inlined {
16553 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16554 inner_offset = next_offset;
16555 } else {
16556 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16557 inner_depth.increment()?;
16558 }
16559 let val_ref = self.oob_bytes.get_or_insert_with(|| {
16560 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16561 });
16562 fidl::decode!(
16563 fidl::encoding::UnboundedVector<u8>,
16564 D,
16565 val_ref,
16566 decoder,
16567 inner_offset,
16568 inner_depth
16569 )?;
16570 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16571 {
16572 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16573 }
16574 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16575 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16576 }
16577 }
16578
16579 next_offset += envelope_size;
16580 _next_ordinal_to_read += 1;
16581 if next_offset >= end_offset {
16582 return Ok(());
16583 }
16584
16585 while _next_ordinal_to_read < 4 {
16587 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16588 _next_ordinal_to_read += 1;
16589 next_offset += envelope_size;
16590 }
16591
16592 let next_out_of_line = decoder.next_out_of_line();
16593 let handles_before = decoder.remaining_handles();
16594 if let Some((inlined, num_bytes, num_handles)) =
16595 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16596 {
16597 let member_inline_size =
16598 <DomainFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16599 if inlined != (member_inline_size <= 4) {
16600 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16601 }
16602 let inner_offset;
16603 let mut inner_depth = depth.clone();
16604 if inlined {
16605 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16606 inner_offset = next_offset;
16607 } else {
16608 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16609 inner_depth.increment()?;
16610 }
16611 let val_ref = self.domain.get_or_insert_with(|| fidl::new_empty!(DomainFormat, D));
16612 fidl::decode!(DomainFormat, D, val_ref, decoder, inner_offset, inner_depth)?;
16613 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16614 {
16615 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16616 }
16617 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16618 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16619 }
16620 }
16621
16622 next_offset += envelope_size;
16623 _next_ordinal_to_read += 1;
16624 if next_offset >= end_offset {
16625 return Ok(());
16626 }
16627
16628 while _next_ordinal_to_read < 5 {
16630 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16631 _next_ordinal_to_read += 1;
16632 next_offset += envelope_size;
16633 }
16634
16635 let next_out_of_line = decoder.next_out_of_line();
16636 let handles_before = decoder.remaining_handles();
16637 if let Some((inlined, num_bytes, num_handles)) =
16638 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16639 {
16640 let member_inline_size = <fidl::encoding::UnboundedVector<Parameter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16641 if inlined != (member_inline_size <= 4) {
16642 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16643 }
16644 let inner_offset;
16645 let mut inner_depth = depth.clone();
16646 if inlined {
16647 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16648 inner_offset = next_offset;
16649 } else {
16650 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16651 inner_depth.increment()?;
16652 }
16653 let val_ref = self.pass_through_parameters.get_or_insert_with(|| {
16654 fidl::new_empty!(fidl::encoding::UnboundedVector<Parameter>, D)
16655 });
16656 fidl::decode!(
16657 fidl::encoding::UnboundedVector<Parameter>,
16658 D,
16659 val_ref,
16660 decoder,
16661 inner_offset,
16662 inner_depth
16663 )?;
16664 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16665 {
16666 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16667 }
16668 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16669 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16670 }
16671 }
16672
16673 next_offset += envelope_size;
16674 _next_ordinal_to_read += 1;
16675 if next_offset >= end_offset {
16676 return Ok(());
16677 }
16678
16679 while _next_ordinal_to_read < 6 {
16681 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16682 _next_ordinal_to_read += 1;
16683 next_offset += envelope_size;
16684 }
16685
16686 let next_out_of_line = decoder.next_out_of_line();
16687 let handles_before = decoder.remaining_handles();
16688 if let Some((inlined, num_bytes, num_handles)) =
16689 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16690 {
16691 let member_inline_size =
16692 <EncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16693 if inlined != (member_inline_size <= 4) {
16694 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16695 }
16696 let inner_offset;
16697 let mut inner_depth = depth.clone();
16698 if inlined {
16699 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16700 inner_offset = next_offset;
16701 } else {
16702 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16703 inner_depth.increment()?;
16704 }
16705 let val_ref = self
16706 .encoder_settings
16707 .get_or_insert_with(|| fidl::new_empty!(EncoderSettings, D));
16708 fidl::decode!(EncoderSettings, D, val_ref, decoder, inner_offset, inner_depth)?;
16709 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16710 {
16711 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16712 }
16713 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16714 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16715 }
16716 }
16717
16718 next_offset += envelope_size;
16719 _next_ordinal_to_read += 1;
16720 if next_offset >= end_offset {
16721 return Ok(());
16722 }
16723
16724 while _next_ordinal_to_read < 7 {
16726 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16727 _next_ordinal_to_read += 1;
16728 next_offset += envelope_size;
16729 }
16730
16731 let next_out_of_line = decoder.next_out_of_line();
16732 let handles_before = decoder.remaining_handles();
16733 if let Some((inlined, num_bytes, num_handles)) =
16734 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16735 {
16736 let member_inline_size =
16737 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16738 if inlined != (member_inline_size <= 4) {
16739 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16740 }
16741 let inner_offset;
16742 let mut inner_depth = depth.clone();
16743 if inlined {
16744 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16745 inner_offset = next_offset;
16746 } else {
16747 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16748 inner_depth.increment()?;
16749 }
16750 let val_ref = self.timebase.get_or_insert_with(|| fidl::new_empty!(u64, D));
16751 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
16752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16753 {
16754 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16755 }
16756 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16757 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16758 }
16759 }
16760
16761 next_offset += envelope_size;
16762 _next_ordinal_to_read += 1;
16763 if next_offset >= end_offset {
16764 return Ok(());
16765 }
16766
16767 while _next_ordinal_to_read < 8 {
16769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16770 _next_ordinal_to_read += 1;
16771 next_offset += envelope_size;
16772 }
16773
16774 let next_out_of_line = decoder.next_out_of_line();
16775 let handles_before = decoder.remaining_handles();
16776 if let Some((inlined, num_bytes, num_handles)) =
16777 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16778 {
16779 let member_inline_size =
16780 <CodecProfile as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16781 if inlined != (member_inline_size <= 4) {
16782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16783 }
16784 let inner_offset;
16785 let mut inner_depth = depth.clone();
16786 if inlined {
16787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16788 inner_offset = next_offset;
16789 } else {
16790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16791 inner_depth.increment()?;
16792 }
16793 let val_ref = self.profile.get_or_insert_with(|| fidl::new_empty!(CodecProfile, D));
16794 fidl::decode!(CodecProfile, D, val_ref, decoder, inner_offset, inner_depth)?;
16795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16796 {
16797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16798 }
16799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16801 }
16802 }
16803
16804 next_offset += envelope_size;
16805
16806 while next_offset < end_offset {
16808 _next_ordinal_to_read += 1;
16809 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16810 next_offset += envelope_size;
16811 }
16812
16813 Ok(())
16814 }
16815 }
16816
16817 impl H264EncoderSettings {
16818 #[inline(always)]
16819 fn max_ordinal_present(&self) -> u64 {
16820 if let Some(_) = self.quantization_params {
16821 return 7;
16822 }
16823 if let Some(_) = self.force_key_frame {
16824 return 6;
16825 }
16826 if let Some(_) = self.min_frame_rate {
16827 return 5;
16828 }
16829 if let Some(_) = self.variable_frame_rate {
16830 return 4;
16831 }
16832 if let Some(_) = self.gop_size {
16833 return 3;
16834 }
16835 if let Some(_) = self.frame_rate {
16836 return 2;
16837 }
16838 if let Some(_) = self.bit_rate {
16839 return 1;
16840 }
16841 0
16842 }
16843 }
16844
16845 impl fidl::encoding::ValueTypeMarker for H264EncoderSettings {
16846 type Borrowed<'a> = &'a Self;
16847 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16848 value
16849 }
16850 }
16851
16852 unsafe impl fidl::encoding::TypeMarker for H264EncoderSettings {
16853 type Owned = Self;
16854
16855 #[inline(always)]
16856 fn inline_align(_context: fidl::encoding::Context) -> usize {
16857 8
16858 }
16859
16860 #[inline(always)]
16861 fn inline_size(_context: fidl::encoding::Context) -> usize {
16862 16
16863 }
16864 }
16865
16866 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<H264EncoderSettings, D>
16867 for &H264EncoderSettings
16868 {
16869 unsafe fn encode(
16870 self,
16871 encoder: &mut fidl::encoding::Encoder<'_, D>,
16872 offset: usize,
16873 mut depth: fidl::encoding::Depth,
16874 ) -> fidl::Result<()> {
16875 encoder.debug_check_bounds::<H264EncoderSettings>(offset);
16876 let max_ordinal: u64 = self.max_ordinal_present();
16878 encoder.write_num(max_ordinal, offset);
16879 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16880 if max_ordinal == 0 {
16882 return Ok(());
16883 }
16884 depth.increment()?;
16885 let envelope_size = 8;
16886 let bytes_len = max_ordinal as usize * envelope_size;
16887 #[allow(unused_variables)]
16888 let offset = encoder.out_of_line_offset(bytes_len);
16889 let mut _prev_end_offset: usize = 0;
16890 if 1 > max_ordinal {
16891 return Ok(());
16892 }
16893
16894 let cur_offset: usize = (1 - 1) * envelope_size;
16897
16898 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16900
16901 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16906 self.bit_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16907 encoder,
16908 offset + cur_offset,
16909 depth,
16910 )?;
16911
16912 _prev_end_offset = cur_offset + envelope_size;
16913 if 2 > max_ordinal {
16914 return Ok(());
16915 }
16916
16917 let cur_offset: usize = (2 - 1) * envelope_size;
16920
16921 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16923
16924 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16929 self.frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16930 encoder,
16931 offset + cur_offset,
16932 depth,
16933 )?;
16934
16935 _prev_end_offset = cur_offset + envelope_size;
16936 if 3 > max_ordinal {
16937 return Ok(());
16938 }
16939
16940 let cur_offset: usize = (3 - 1) * envelope_size;
16943
16944 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16946
16947 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16952 self.gop_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16953 encoder,
16954 offset + cur_offset,
16955 depth,
16956 )?;
16957
16958 _prev_end_offset = cur_offset + envelope_size;
16959 if 4 > max_ordinal {
16960 return Ok(());
16961 }
16962
16963 let cur_offset: usize = (4 - 1) * envelope_size;
16966
16967 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16969
16970 fidl::encoding::encode_in_envelope_optional::<bool, D>(
16975 self.variable_frame_rate
16976 .as_ref()
16977 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
16978 encoder,
16979 offset + cur_offset,
16980 depth,
16981 )?;
16982
16983 _prev_end_offset = cur_offset + envelope_size;
16984 if 5 > max_ordinal {
16985 return Ok(());
16986 }
16987
16988 let cur_offset: usize = (5 - 1) * envelope_size;
16991
16992 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16994
16995 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17000 self.min_frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17001 encoder,
17002 offset + cur_offset,
17003 depth,
17004 )?;
17005
17006 _prev_end_offset = cur_offset + envelope_size;
17007 if 6 > max_ordinal {
17008 return Ok(());
17009 }
17010
17011 let cur_offset: usize = (6 - 1) * envelope_size;
17014
17015 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17017
17018 fidl::encoding::encode_in_envelope_optional::<bool, D>(
17023 self.force_key_frame
17024 .as_ref()
17025 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
17026 encoder,
17027 offset + cur_offset,
17028 depth,
17029 )?;
17030
17031 _prev_end_offset = cur_offset + envelope_size;
17032 if 7 > max_ordinal {
17033 return Ok(());
17034 }
17035
17036 let cur_offset: usize = (7 - 1) * envelope_size;
17039
17040 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17042
17043 fidl::encoding::encode_in_envelope_optional::<H264QuantizationParameters, D>(
17048 self.quantization_params
17049 .as_ref()
17050 .map(<H264QuantizationParameters as fidl::encoding::ValueTypeMarker>::borrow),
17051 encoder,
17052 offset + cur_offset,
17053 depth,
17054 )?;
17055
17056 _prev_end_offset = cur_offset + envelope_size;
17057
17058 Ok(())
17059 }
17060 }
17061
17062 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for H264EncoderSettings {
17063 #[inline(always)]
17064 fn new_empty() -> Self {
17065 Self::default()
17066 }
17067
17068 unsafe fn decode(
17069 &mut self,
17070 decoder: &mut fidl::encoding::Decoder<'_, D>,
17071 offset: usize,
17072 mut depth: fidl::encoding::Depth,
17073 ) -> fidl::Result<()> {
17074 decoder.debug_check_bounds::<Self>(offset);
17075 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17076 None => return Err(fidl::Error::NotNullable),
17077 Some(len) => len,
17078 };
17079 if len == 0 {
17081 return Ok(());
17082 };
17083 depth.increment()?;
17084 let envelope_size = 8;
17085 let bytes_len = len * envelope_size;
17086 let offset = decoder.out_of_line_offset(bytes_len)?;
17087 let mut _next_ordinal_to_read = 0;
17089 let mut next_offset = offset;
17090 let end_offset = offset + bytes_len;
17091 _next_ordinal_to_read += 1;
17092 if next_offset >= end_offset {
17093 return Ok(());
17094 }
17095
17096 while _next_ordinal_to_read < 1 {
17098 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17099 _next_ordinal_to_read += 1;
17100 next_offset += envelope_size;
17101 }
17102
17103 let next_out_of_line = decoder.next_out_of_line();
17104 let handles_before = decoder.remaining_handles();
17105 if let Some((inlined, num_bytes, num_handles)) =
17106 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17107 {
17108 let member_inline_size =
17109 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17110 if inlined != (member_inline_size <= 4) {
17111 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17112 }
17113 let inner_offset;
17114 let mut inner_depth = depth.clone();
17115 if inlined {
17116 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17117 inner_offset = next_offset;
17118 } else {
17119 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17120 inner_depth.increment()?;
17121 }
17122 let val_ref = self.bit_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17123 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17124 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17125 {
17126 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17127 }
17128 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17129 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17130 }
17131 }
17132
17133 next_offset += envelope_size;
17134 _next_ordinal_to_read += 1;
17135 if next_offset >= end_offset {
17136 return Ok(());
17137 }
17138
17139 while _next_ordinal_to_read < 2 {
17141 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17142 _next_ordinal_to_read += 1;
17143 next_offset += envelope_size;
17144 }
17145
17146 let next_out_of_line = decoder.next_out_of_line();
17147 let handles_before = decoder.remaining_handles();
17148 if let Some((inlined, num_bytes, num_handles)) =
17149 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17150 {
17151 let member_inline_size =
17152 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17153 if inlined != (member_inline_size <= 4) {
17154 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17155 }
17156 let inner_offset;
17157 let mut inner_depth = depth.clone();
17158 if inlined {
17159 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17160 inner_offset = next_offset;
17161 } else {
17162 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17163 inner_depth.increment()?;
17164 }
17165 let val_ref = self.frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17166 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17167 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17168 {
17169 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17170 }
17171 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17172 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17173 }
17174 }
17175
17176 next_offset += envelope_size;
17177 _next_ordinal_to_read += 1;
17178 if next_offset >= end_offset {
17179 return Ok(());
17180 }
17181
17182 while _next_ordinal_to_read < 3 {
17184 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17185 _next_ordinal_to_read += 1;
17186 next_offset += envelope_size;
17187 }
17188
17189 let next_out_of_line = decoder.next_out_of_line();
17190 let handles_before = decoder.remaining_handles();
17191 if let Some((inlined, num_bytes, num_handles)) =
17192 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17193 {
17194 let member_inline_size =
17195 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17196 if inlined != (member_inline_size <= 4) {
17197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17198 }
17199 let inner_offset;
17200 let mut inner_depth = depth.clone();
17201 if inlined {
17202 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17203 inner_offset = next_offset;
17204 } else {
17205 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17206 inner_depth.increment()?;
17207 }
17208 let val_ref = self.gop_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
17209 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17210 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17211 {
17212 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17213 }
17214 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17215 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17216 }
17217 }
17218
17219 next_offset += envelope_size;
17220 _next_ordinal_to_read += 1;
17221 if next_offset >= end_offset {
17222 return Ok(());
17223 }
17224
17225 while _next_ordinal_to_read < 4 {
17227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17228 _next_ordinal_to_read += 1;
17229 next_offset += envelope_size;
17230 }
17231
17232 let next_out_of_line = decoder.next_out_of_line();
17233 let handles_before = decoder.remaining_handles();
17234 if let Some((inlined, num_bytes, num_handles)) =
17235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17236 {
17237 let member_inline_size =
17238 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17239 if inlined != (member_inline_size <= 4) {
17240 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17241 }
17242 let inner_offset;
17243 let mut inner_depth = depth.clone();
17244 if inlined {
17245 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17246 inner_offset = next_offset;
17247 } else {
17248 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17249 inner_depth.increment()?;
17250 }
17251 let val_ref =
17252 self.variable_frame_rate.get_or_insert_with(|| fidl::new_empty!(bool, D));
17253 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
17254 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17255 {
17256 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17257 }
17258 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17259 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17260 }
17261 }
17262
17263 next_offset += envelope_size;
17264 _next_ordinal_to_read += 1;
17265 if next_offset >= end_offset {
17266 return Ok(());
17267 }
17268
17269 while _next_ordinal_to_read < 5 {
17271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17272 _next_ordinal_to_read += 1;
17273 next_offset += envelope_size;
17274 }
17275
17276 let next_out_of_line = decoder.next_out_of_line();
17277 let handles_before = decoder.remaining_handles();
17278 if let Some((inlined, num_bytes, num_handles)) =
17279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17280 {
17281 let member_inline_size =
17282 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17283 if inlined != (member_inline_size <= 4) {
17284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17285 }
17286 let inner_offset;
17287 let mut inner_depth = depth.clone();
17288 if inlined {
17289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17290 inner_offset = next_offset;
17291 } else {
17292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17293 inner_depth.increment()?;
17294 }
17295 let val_ref = self.min_frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17296 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17297 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17298 {
17299 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17300 }
17301 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17302 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17303 }
17304 }
17305
17306 next_offset += envelope_size;
17307 _next_ordinal_to_read += 1;
17308 if next_offset >= end_offset {
17309 return Ok(());
17310 }
17311
17312 while _next_ordinal_to_read < 6 {
17314 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17315 _next_ordinal_to_read += 1;
17316 next_offset += envelope_size;
17317 }
17318
17319 let next_out_of_line = decoder.next_out_of_line();
17320 let handles_before = decoder.remaining_handles();
17321 if let Some((inlined, num_bytes, num_handles)) =
17322 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17323 {
17324 let member_inline_size =
17325 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17326 if inlined != (member_inline_size <= 4) {
17327 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17328 }
17329 let inner_offset;
17330 let mut inner_depth = depth.clone();
17331 if inlined {
17332 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17333 inner_offset = next_offset;
17334 } else {
17335 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17336 inner_depth.increment()?;
17337 }
17338 let val_ref = self.force_key_frame.get_or_insert_with(|| fidl::new_empty!(bool, D));
17339 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
17340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17341 {
17342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17343 }
17344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17346 }
17347 }
17348
17349 next_offset += envelope_size;
17350 _next_ordinal_to_read += 1;
17351 if next_offset >= end_offset {
17352 return Ok(());
17353 }
17354
17355 while _next_ordinal_to_read < 7 {
17357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17358 _next_ordinal_to_read += 1;
17359 next_offset += envelope_size;
17360 }
17361
17362 let next_out_of_line = decoder.next_out_of_line();
17363 let handles_before = decoder.remaining_handles();
17364 if let Some((inlined, num_bytes, num_handles)) =
17365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17366 {
17367 let member_inline_size =
17368 <H264QuantizationParameters as fidl::encoding::TypeMarker>::inline_size(
17369 decoder.context,
17370 );
17371 if inlined != (member_inline_size <= 4) {
17372 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17373 }
17374 let inner_offset;
17375 let mut inner_depth = depth.clone();
17376 if inlined {
17377 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17378 inner_offset = next_offset;
17379 } else {
17380 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17381 inner_depth.increment()?;
17382 }
17383 let val_ref = self
17384 .quantization_params
17385 .get_or_insert_with(|| fidl::new_empty!(H264QuantizationParameters, D));
17386 fidl::decode!(
17387 H264QuantizationParameters,
17388 D,
17389 val_ref,
17390 decoder,
17391 inner_offset,
17392 inner_depth
17393 )?;
17394 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17395 {
17396 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17397 }
17398 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17399 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17400 }
17401 }
17402
17403 next_offset += envelope_size;
17404
17405 while next_offset < end_offset {
17407 _next_ordinal_to_read += 1;
17408 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17409 next_offset += envelope_size;
17410 }
17411
17412 Ok(())
17413 }
17414 }
17415
17416 impl H264QuantizationParameters {
17417 #[inline(always)]
17418 fn max_ordinal_present(&self) -> u64 {
17419 if let Some(_) = self.p_max {
17420 return 6;
17421 }
17422 if let Some(_) = self.p_min {
17423 return 5;
17424 }
17425 if let Some(_) = self.p_base {
17426 return 4;
17427 }
17428 if let Some(_) = self.i_max {
17429 return 3;
17430 }
17431 if let Some(_) = self.i_min {
17432 return 2;
17433 }
17434 if let Some(_) = self.i_base {
17435 return 1;
17436 }
17437 0
17438 }
17439 }
17440
17441 impl fidl::encoding::ValueTypeMarker for H264QuantizationParameters {
17442 type Borrowed<'a> = &'a Self;
17443 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17444 value
17445 }
17446 }
17447
17448 unsafe impl fidl::encoding::TypeMarker for H264QuantizationParameters {
17449 type Owned = Self;
17450
17451 #[inline(always)]
17452 fn inline_align(_context: fidl::encoding::Context) -> usize {
17453 8
17454 }
17455
17456 #[inline(always)]
17457 fn inline_size(_context: fidl::encoding::Context) -> usize {
17458 16
17459 }
17460 }
17461
17462 unsafe impl<D: fidl::encoding::ResourceDialect>
17463 fidl::encoding::Encode<H264QuantizationParameters, D> for &H264QuantizationParameters
17464 {
17465 unsafe fn encode(
17466 self,
17467 encoder: &mut fidl::encoding::Encoder<'_, D>,
17468 offset: usize,
17469 mut depth: fidl::encoding::Depth,
17470 ) -> fidl::Result<()> {
17471 encoder.debug_check_bounds::<H264QuantizationParameters>(offset);
17472 let max_ordinal: u64 = self.max_ordinal_present();
17474 encoder.write_num(max_ordinal, offset);
17475 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17476 if max_ordinal == 0 {
17478 return Ok(());
17479 }
17480 depth.increment()?;
17481 let envelope_size = 8;
17482 let bytes_len = max_ordinal as usize * envelope_size;
17483 #[allow(unused_variables)]
17484 let offset = encoder.out_of_line_offset(bytes_len);
17485 let mut _prev_end_offset: usize = 0;
17486 if 1 > max_ordinal {
17487 return Ok(());
17488 }
17489
17490 let cur_offset: usize = (1 - 1) * envelope_size;
17493
17494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17496
17497 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17502 self.i_base.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17503 encoder,
17504 offset + cur_offset,
17505 depth,
17506 )?;
17507
17508 _prev_end_offset = cur_offset + envelope_size;
17509 if 2 > max_ordinal {
17510 return Ok(());
17511 }
17512
17513 let cur_offset: usize = (2 - 1) * envelope_size;
17516
17517 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17519
17520 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17525 self.i_min.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17526 encoder,
17527 offset + cur_offset,
17528 depth,
17529 )?;
17530
17531 _prev_end_offset = cur_offset + envelope_size;
17532 if 3 > max_ordinal {
17533 return Ok(());
17534 }
17535
17536 let cur_offset: usize = (3 - 1) * envelope_size;
17539
17540 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17542
17543 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17548 self.i_max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17549 encoder,
17550 offset + cur_offset,
17551 depth,
17552 )?;
17553
17554 _prev_end_offset = cur_offset + envelope_size;
17555 if 4 > max_ordinal {
17556 return Ok(());
17557 }
17558
17559 let cur_offset: usize = (4 - 1) * envelope_size;
17562
17563 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17565
17566 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17571 self.p_base.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17572 encoder,
17573 offset + cur_offset,
17574 depth,
17575 )?;
17576
17577 _prev_end_offset = cur_offset + envelope_size;
17578 if 5 > max_ordinal {
17579 return Ok(());
17580 }
17581
17582 let cur_offset: usize = (5 - 1) * envelope_size;
17585
17586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17588
17589 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17594 self.p_min.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17595 encoder,
17596 offset + cur_offset,
17597 depth,
17598 )?;
17599
17600 _prev_end_offset = cur_offset + envelope_size;
17601 if 6 > max_ordinal {
17602 return Ok(());
17603 }
17604
17605 let cur_offset: usize = (6 - 1) * envelope_size;
17608
17609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17611
17612 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17617 self.p_max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17618 encoder,
17619 offset + cur_offset,
17620 depth,
17621 )?;
17622
17623 _prev_end_offset = cur_offset + envelope_size;
17624
17625 Ok(())
17626 }
17627 }
17628
17629 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17630 for H264QuantizationParameters
17631 {
17632 #[inline(always)]
17633 fn new_empty() -> Self {
17634 Self::default()
17635 }
17636
17637 unsafe fn decode(
17638 &mut self,
17639 decoder: &mut fidl::encoding::Decoder<'_, D>,
17640 offset: usize,
17641 mut depth: fidl::encoding::Depth,
17642 ) -> fidl::Result<()> {
17643 decoder.debug_check_bounds::<Self>(offset);
17644 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17645 None => return Err(fidl::Error::NotNullable),
17646 Some(len) => len,
17647 };
17648 if len == 0 {
17650 return Ok(());
17651 };
17652 depth.increment()?;
17653 let envelope_size = 8;
17654 let bytes_len = len * envelope_size;
17655 let offset = decoder.out_of_line_offset(bytes_len)?;
17656 let mut _next_ordinal_to_read = 0;
17658 let mut next_offset = offset;
17659 let end_offset = offset + bytes_len;
17660 _next_ordinal_to_read += 1;
17661 if next_offset >= end_offset {
17662 return Ok(());
17663 }
17664
17665 while _next_ordinal_to_read < 1 {
17667 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17668 _next_ordinal_to_read += 1;
17669 next_offset += envelope_size;
17670 }
17671
17672 let next_out_of_line = decoder.next_out_of_line();
17673 let handles_before = decoder.remaining_handles();
17674 if let Some((inlined, num_bytes, num_handles)) =
17675 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17676 {
17677 let member_inline_size =
17678 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17679 if inlined != (member_inline_size <= 4) {
17680 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17681 }
17682 let inner_offset;
17683 let mut inner_depth = depth.clone();
17684 if inlined {
17685 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17686 inner_offset = next_offset;
17687 } else {
17688 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17689 inner_depth.increment()?;
17690 }
17691 let val_ref = self.i_base.get_or_insert_with(|| fidl::new_empty!(u32, D));
17692 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17693 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17694 {
17695 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17696 }
17697 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17698 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17699 }
17700 }
17701
17702 next_offset += envelope_size;
17703 _next_ordinal_to_read += 1;
17704 if next_offset >= end_offset {
17705 return Ok(());
17706 }
17707
17708 while _next_ordinal_to_read < 2 {
17710 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17711 _next_ordinal_to_read += 1;
17712 next_offset += envelope_size;
17713 }
17714
17715 let next_out_of_line = decoder.next_out_of_line();
17716 let handles_before = decoder.remaining_handles();
17717 if let Some((inlined, num_bytes, num_handles)) =
17718 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17719 {
17720 let member_inline_size =
17721 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17722 if inlined != (member_inline_size <= 4) {
17723 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17724 }
17725 let inner_offset;
17726 let mut inner_depth = depth.clone();
17727 if inlined {
17728 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17729 inner_offset = next_offset;
17730 } else {
17731 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17732 inner_depth.increment()?;
17733 }
17734 let val_ref = self.i_min.get_or_insert_with(|| fidl::new_empty!(u32, D));
17735 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17736 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17737 {
17738 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17739 }
17740 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17741 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17742 }
17743 }
17744
17745 next_offset += envelope_size;
17746 _next_ordinal_to_read += 1;
17747 if next_offset >= end_offset {
17748 return Ok(());
17749 }
17750
17751 while _next_ordinal_to_read < 3 {
17753 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17754 _next_ordinal_to_read += 1;
17755 next_offset += envelope_size;
17756 }
17757
17758 let next_out_of_line = decoder.next_out_of_line();
17759 let handles_before = decoder.remaining_handles();
17760 if let Some((inlined, num_bytes, num_handles)) =
17761 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17762 {
17763 let member_inline_size =
17764 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17765 if inlined != (member_inline_size <= 4) {
17766 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17767 }
17768 let inner_offset;
17769 let mut inner_depth = depth.clone();
17770 if inlined {
17771 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17772 inner_offset = next_offset;
17773 } else {
17774 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17775 inner_depth.increment()?;
17776 }
17777 let val_ref = self.i_max.get_or_insert_with(|| fidl::new_empty!(u32, D));
17778 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17779 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17780 {
17781 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17782 }
17783 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17784 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17785 }
17786 }
17787
17788 next_offset += envelope_size;
17789 _next_ordinal_to_read += 1;
17790 if next_offset >= end_offset {
17791 return Ok(());
17792 }
17793
17794 while _next_ordinal_to_read < 4 {
17796 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17797 _next_ordinal_to_read += 1;
17798 next_offset += envelope_size;
17799 }
17800
17801 let next_out_of_line = decoder.next_out_of_line();
17802 let handles_before = decoder.remaining_handles();
17803 if let Some((inlined, num_bytes, num_handles)) =
17804 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17805 {
17806 let member_inline_size =
17807 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17808 if inlined != (member_inline_size <= 4) {
17809 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17810 }
17811 let inner_offset;
17812 let mut inner_depth = depth.clone();
17813 if inlined {
17814 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17815 inner_offset = next_offset;
17816 } else {
17817 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17818 inner_depth.increment()?;
17819 }
17820 let val_ref = self.p_base.get_or_insert_with(|| fidl::new_empty!(u32, D));
17821 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17822 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17823 {
17824 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17825 }
17826 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17827 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17828 }
17829 }
17830
17831 next_offset += envelope_size;
17832 _next_ordinal_to_read += 1;
17833 if next_offset >= end_offset {
17834 return Ok(());
17835 }
17836
17837 while _next_ordinal_to_read < 5 {
17839 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17840 _next_ordinal_to_read += 1;
17841 next_offset += envelope_size;
17842 }
17843
17844 let next_out_of_line = decoder.next_out_of_line();
17845 let handles_before = decoder.remaining_handles();
17846 if let Some((inlined, num_bytes, num_handles)) =
17847 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17848 {
17849 let member_inline_size =
17850 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17851 if inlined != (member_inline_size <= 4) {
17852 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17853 }
17854 let inner_offset;
17855 let mut inner_depth = depth.clone();
17856 if inlined {
17857 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17858 inner_offset = next_offset;
17859 } else {
17860 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17861 inner_depth.increment()?;
17862 }
17863 let val_ref = self.p_min.get_or_insert_with(|| fidl::new_empty!(u32, D));
17864 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17865 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17866 {
17867 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17868 }
17869 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17870 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17871 }
17872 }
17873
17874 next_offset += envelope_size;
17875 _next_ordinal_to_read += 1;
17876 if next_offset >= end_offset {
17877 return Ok(());
17878 }
17879
17880 while _next_ordinal_to_read < 6 {
17882 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17883 _next_ordinal_to_read += 1;
17884 next_offset += envelope_size;
17885 }
17886
17887 let next_out_of_line = decoder.next_out_of_line();
17888 let handles_before = decoder.remaining_handles();
17889 if let Some((inlined, num_bytes, num_handles)) =
17890 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17891 {
17892 let member_inline_size =
17893 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17894 if inlined != (member_inline_size <= 4) {
17895 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17896 }
17897 let inner_offset;
17898 let mut inner_depth = depth.clone();
17899 if inlined {
17900 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17901 inner_offset = next_offset;
17902 } else {
17903 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17904 inner_depth.increment()?;
17905 }
17906 let val_ref = self.p_max.get_or_insert_with(|| fidl::new_empty!(u32, D));
17907 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17908 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17909 {
17910 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17911 }
17912 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17913 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17914 }
17915 }
17916
17917 next_offset += envelope_size;
17918
17919 while next_offset < end_offset {
17921 _next_ordinal_to_read += 1;
17922 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17923 next_offset += envelope_size;
17924 }
17925
17926 Ok(())
17927 }
17928 }
17929
17930 impl HevcEncoderSettings {
17931 #[inline(always)]
17932 fn max_ordinal_present(&self) -> u64 {
17933 if let Some(_) = self.gop_size {
17934 return 3;
17935 }
17936 if let Some(_) = self.frame_rate {
17937 return 2;
17938 }
17939 if let Some(_) = self.bit_rate {
17940 return 1;
17941 }
17942 0
17943 }
17944 }
17945
17946 impl fidl::encoding::ValueTypeMarker for HevcEncoderSettings {
17947 type Borrowed<'a> = &'a Self;
17948 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17949 value
17950 }
17951 }
17952
17953 unsafe impl fidl::encoding::TypeMarker for HevcEncoderSettings {
17954 type Owned = Self;
17955
17956 #[inline(always)]
17957 fn inline_align(_context: fidl::encoding::Context) -> usize {
17958 8
17959 }
17960
17961 #[inline(always)]
17962 fn inline_size(_context: fidl::encoding::Context) -> usize {
17963 16
17964 }
17965 }
17966
17967 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HevcEncoderSettings, D>
17968 for &HevcEncoderSettings
17969 {
17970 unsafe fn encode(
17971 self,
17972 encoder: &mut fidl::encoding::Encoder<'_, D>,
17973 offset: usize,
17974 mut depth: fidl::encoding::Depth,
17975 ) -> fidl::Result<()> {
17976 encoder.debug_check_bounds::<HevcEncoderSettings>(offset);
17977 let max_ordinal: u64 = self.max_ordinal_present();
17979 encoder.write_num(max_ordinal, offset);
17980 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17981 if max_ordinal == 0 {
17983 return Ok(());
17984 }
17985 depth.increment()?;
17986 let envelope_size = 8;
17987 let bytes_len = max_ordinal as usize * envelope_size;
17988 #[allow(unused_variables)]
17989 let offset = encoder.out_of_line_offset(bytes_len);
17990 let mut _prev_end_offset: usize = 0;
17991 if 1 > max_ordinal {
17992 return Ok(());
17993 }
17994
17995 let cur_offset: usize = (1 - 1) * envelope_size;
17998
17999 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18001
18002 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18007 self.bit_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18008 encoder,
18009 offset + cur_offset,
18010 depth,
18011 )?;
18012
18013 _prev_end_offset = cur_offset + envelope_size;
18014 if 2 > max_ordinal {
18015 return Ok(());
18016 }
18017
18018 let cur_offset: usize = (2 - 1) * envelope_size;
18021
18022 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18024
18025 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18030 self.frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18031 encoder,
18032 offset + cur_offset,
18033 depth,
18034 )?;
18035
18036 _prev_end_offset = cur_offset + envelope_size;
18037 if 3 > max_ordinal {
18038 return Ok(());
18039 }
18040
18041 let cur_offset: usize = (3 - 1) * envelope_size;
18044
18045 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18047
18048 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18053 self.gop_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18054 encoder,
18055 offset + cur_offset,
18056 depth,
18057 )?;
18058
18059 _prev_end_offset = cur_offset + envelope_size;
18060
18061 Ok(())
18062 }
18063 }
18064
18065 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HevcEncoderSettings {
18066 #[inline(always)]
18067 fn new_empty() -> Self {
18068 Self::default()
18069 }
18070
18071 unsafe fn decode(
18072 &mut self,
18073 decoder: &mut fidl::encoding::Decoder<'_, D>,
18074 offset: usize,
18075 mut depth: fidl::encoding::Depth,
18076 ) -> fidl::Result<()> {
18077 decoder.debug_check_bounds::<Self>(offset);
18078 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18079 None => return Err(fidl::Error::NotNullable),
18080 Some(len) => len,
18081 };
18082 if len == 0 {
18084 return Ok(());
18085 };
18086 depth.increment()?;
18087 let envelope_size = 8;
18088 let bytes_len = len * envelope_size;
18089 let offset = decoder.out_of_line_offset(bytes_len)?;
18090 let mut _next_ordinal_to_read = 0;
18092 let mut next_offset = offset;
18093 let end_offset = offset + bytes_len;
18094 _next_ordinal_to_read += 1;
18095 if next_offset >= end_offset {
18096 return Ok(());
18097 }
18098
18099 while _next_ordinal_to_read < 1 {
18101 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18102 _next_ordinal_to_read += 1;
18103 next_offset += envelope_size;
18104 }
18105
18106 let next_out_of_line = decoder.next_out_of_line();
18107 let handles_before = decoder.remaining_handles();
18108 if let Some((inlined, num_bytes, num_handles)) =
18109 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18110 {
18111 let member_inline_size =
18112 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18113 if inlined != (member_inline_size <= 4) {
18114 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18115 }
18116 let inner_offset;
18117 let mut inner_depth = depth.clone();
18118 if inlined {
18119 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18120 inner_offset = next_offset;
18121 } else {
18122 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18123 inner_depth.increment()?;
18124 }
18125 let val_ref = self.bit_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
18126 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18127 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18128 {
18129 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18130 }
18131 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18132 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18133 }
18134 }
18135
18136 next_offset += envelope_size;
18137 _next_ordinal_to_read += 1;
18138 if next_offset >= end_offset {
18139 return Ok(());
18140 }
18141
18142 while _next_ordinal_to_read < 2 {
18144 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18145 _next_ordinal_to_read += 1;
18146 next_offset += envelope_size;
18147 }
18148
18149 let next_out_of_line = decoder.next_out_of_line();
18150 let handles_before = decoder.remaining_handles();
18151 if let Some((inlined, num_bytes, num_handles)) =
18152 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18153 {
18154 let member_inline_size =
18155 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18156 if inlined != (member_inline_size <= 4) {
18157 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18158 }
18159 let inner_offset;
18160 let mut inner_depth = depth.clone();
18161 if inlined {
18162 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18163 inner_offset = next_offset;
18164 } else {
18165 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18166 inner_depth.increment()?;
18167 }
18168 let val_ref = self.frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
18169 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18170 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18171 {
18172 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18173 }
18174 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18175 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18176 }
18177 }
18178
18179 next_offset += envelope_size;
18180 _next_ordinal_to_read += 1;
18181 if next_offset >= end_offset {
18182 return Ok(());
18183 }
18184
18185 while _next_ordinal_to_read < 3 {
18187 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18188 _next_ordinal_to_read += 1;
18189 next_offset += envelope_size;
18190 }
18191
18192 let next_out_of_line = decoder.next_out_of_line();
18193 let handles_before = decoder.remaining_handles();
18194 if let Some((inlined, num_bytes, num_handles)) =
18195 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18196 {
18197 let member_inline_size =
18198 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18199 if inlined != (member_inline_size <= 4) {
18200 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18201 }
18202 let inner_offset;
18203 let mut inner_depth = depth.clone();
18204 if inlined {
18205 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18206 inner_offset = next_offset;
18207 } else {
18208 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18209 inner_depth.increment()?;
18210 }
18211 let val_ref = self.gop_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
18212 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18213 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18214 {
18215 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18216 }
18217 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18218 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18219 }
18220 }
18221
18222 next_offset += envelope_size;
18223
18224 while next_offset < end_offset {
18226 _next_ordinal_to_read += 1;
18227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18228 next_offset += envelope_size;
18229 }
18230
18231 Ok(())
18232 }
18233 }
18234
18235 impl InputAudioCapturerConfiguration {
18236 #[inline(always)]
18237 fn max_ordinal_present(&self) -> u64 {
18238 if let Some(_) = self.usage2 {
18239 return 2;
18240 }
18241 if let Some(_) = self.usage {
18242 return 1;
18243 }
18244 0
18245 }
18246 }
18247
18248 impl fidl::encoding::ValueTypeMarker for InputAudioCapturerConfiguration {
18249 type Borrowed<'a> = &'a Self;
18250 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18251 value
18252 }
18253 }
18254
18255 unsafe impl fidl::encoding::TypeMarker for InputAudioCapturerConfiguration {
18256 type Owned = Self;
18257
18258 #[inline(always)]
18259 fn inline_align(_context: fidl::encoding::Context) -> usize {
18260 8
18261 }
18262
18263 #[inline(always)]
18264 fn inline_size(_context: fidl::encoding::Context) -> usize {
18265 16
18266 }
18267 }
18268
18269 unsafe impl<D: fidl::encoding::ResourceDialect>
18270 fidl::encoding::Encode<InputAudioCapturerConfiguration, D>
18271 for &InputAudioCapturerConfiguration
18272 {
18273 unsafe fn encode(
18274 self,
18275 encoder: &mut fidl::encoding::Encoder<'_, D>,
18276 offset: usize,
18277 mut depth: fidl::encoding::Depth,
18278 ) -> fidl::Result<()> {
18279 encoder.debug_check_bounds::<InputAudioCapturerConfiguration>(offset);
18280 let max_ordinal: u64 = self.max_ordinal_present();
18282 encoder.write_num(max_ordinal, offset);
18283 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18284 if max_ordinal == 0 {
18286 return Ok(());
18287 }
18288 depth.increment()?;
18289 let envelope_size = 8;
18290 let bytes_len = max_ordinal as usize * envelope_size;
18291 #[allow(unused_variables)]
18292 let offset = encoder.out_of_line_offset(bytes_len);
18293 let mut _prev_end_offset: usize = 0;
18294 if 1 > max_ordinal {
18295 return Ok(());
18296 }
18297
18298 let cur_offset: usize = (1 - 1) * envelope_size;
18301
18302 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18304
18305 fidl::encoding::encode_in_envelope_optional::<AudioCaptureUsage, D>(
18310 self.usage
18311 .as_ref()
18312 .map(<AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow),
18313 encoder,
18314 offset + cur_offset,
18315 depth,
18316 )?;
18317
18318 _prev_end_offset = cur_offset + envelope_size;
18319 if 2 > max_ordinal {
18320 return Ok(());
18321 }
18322
18323 let cur_offset: usize = (2 - 1) * envelope_size;
18326
18327 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18329
18330 fidl::encoding::encode_in_envelope_optional::<AudioCaptureUsage2, D>(
18335 self.usage2
18336 .as_ref()
18337 .map(<AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow),
18338 encoder,
18339 offset + cur_offset,
18340 depth,
18341 )?;
18342
18343 _prev_end_offset = cur_offset + envelope_size;
18344
18345 Ok(())
18346 }
18347 }
18348
18349 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
18350 for InputAudioCapturerConfiguration
18351 {
18352 #[inline(always)]
18353 fn new_empty() -> Self {
18354 Self::default()
18355 }
18356
18357 unsafe fn decode(
18358 &mut self,
18359 decoder: &mut fidl::encoding::Decoder<'_, D>,
18360 offset: usize,
18361 mut depth: fidl::encoding::Depth,
18362 ) -> fidl::Result<()> {
18363 decoder.debug_check_bounds::<Self>(offset);
18364 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18365 None => return Err(fidl::Error::NotNullable),
18366 Some(len) => len,
18367 };
18368 if len == 0 {
18370 return Ok(());
18371 };
18372 depth.increment()?;
18373 let envelope_size = 8;
18374 let bytes_len = len * envelope_size;
18375 let offset = decoder.out_of_line_offset(bytes_len)?;
18376 let mut _next_ordinal_to_read = 0;
18378 let mut next_offset = offset;
18379 let end_offset = offset + bytes_len;
18380 _next_ordinal_to_read += 1;
18381 if next_offset >= end_offset {
18382 return Ok(());
18383 }
18384
18385 while _next_ordinal_to_read < 1 {
18387 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18388 _next_ordinal_to_read += 1;
18389 next_offset += envelope_size;
18390 }
18391
18392 let next_out_of_line = decoder.next_out_of_line();
18393 let handles_before = decoder.remaining_handles();
18394 if let Some((inlined, num_bytes, num_handles)) =
18395 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18396 {
18397 let member_inline_size =
18398 <AudioCaptureUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18399 if inlined != (member_inline_size <= 4) {
18400 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18401 }
18402 let inner_offset;
18403 let mut inner_depth = depth.clone();
18404 if inlined {
18405 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18406 inner_offset = next_offset;
18407 } else {
18408 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18409 inner_depth.increment()?;
18410 }
18411 let val_ref =
18412 self.usage.get_or_insert_with(|| fidl::new_empty!(AudioCaptureUsage, D));
18413 fidl::decode!(AudioCaptureUsage, D, val_ref, decoder, inner_offset, inner_depth)?;
18414 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18415 {
18416 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18417 }
18418 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18419 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18420 }
18421 }
18422
18423 next_offset += envelope_size;
18424 _next_ordinal_to_read += 1;
18425 if next_offset >= end_offset {
18426 return Ok(());
18427 }
18428
18429 while _next_ordinal_to_read < 2 {
18431 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18432 _next_ordinal_to_read += 1;
18433 next_offset += envelope_size;
18434 }
18435
18436 let next_out_of_line = decoder.next_out_of_line();
18437 let handles_before = decoder.remaining_handles();
18438 if let Some((inlined, num_bytes, num_handles)) =
18439 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18440 {
18441 let member_inline_size =
18442 <AudioCaptureUsage2 as fidl::encoding::TypeMarker>::inline_size(
18443 decoder.context,
18444 );
18445 if inlined != (member_inline_size <= 4) {
18446 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18447 }
18448 let inner_offset;
18449 let mut inner_depth = depth.clone();
18450 if inlined {
18451 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18452 inner_offset = next_offset;
18453 } else {
18454 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18455 inner_depth.increment()?;
18456 }
18457 let val_ref =
18458 self.usage2.get_or_insert_with(|| fidl::new_empty!(AudioCaptureUsage2, D));
18459 fidl::decode!(AudioCaptureUsage2, D, val_ref, decoder, inner_offset, inner_depth)?;
18460 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18461 {
18462 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18463 }
18464 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18465 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18466 }
18467 }
18468
18469 next_offset += envelope_size;
18470
18471 while next_offset < end_offset {
18473 _next_ordinal_to_read += 1;
18474 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18475 next_offset += envelope_size;
18476 }
18477
18478 Ok(())
18479 }
18480 }
18481
18482 impl Lc3EncoderSettings {
18483 #[inline(always)]
18484 fn max_ordinal_present(&self) -> u64 {
18485 if let Some(_) = self.frame_duration {
18486 return 2;
18487 }
18488 if let Some(_) = self.nbytes {
18489 return 1;
18490 }
18491 0
18492 }
18493 }
18494
18495 impl fidl::encoding::ValueTypeMarker for Lc3EncoderSettings {
18496 type Borrowed<'a> = &'a Self;
18497 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18498 value
18499 }
18500 }
18501
18502 unsafe impl fidl::encoding::TypeMarker for Lc3EncoderSettings {
18503 type Owned = Self;
18504
18505 #[inline(always)]
18506 fn inline_align(_context: fidl::encoding::Context) -> usize {
18507 8
18508 }
18509
18510 #[inline(always)]
18511 fn inline_size(_context: fidl::encoding::Context) -> usize {
18512 16
18513 }
18514 }
18515
18516 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Lc3EncoderSettings, D>
18517 for &Lc3EncoderSettings
18518 {
18519 unsafe fn encode(
18520 self,
18521 encoder: &mut fidl::encoding::Encoder<'_, D>,
18522 offset: usize,
18523 mut depth: fidl::encoding::Depth,
18524 ) -> fidl::Result<()> {
18525 encoder.debug_check_bounds::<Lc3EncoderSettings>(offset);
18526 let max_ordinal: u64 = self.max_ordinal_present();
18528 encoder.write_num(max_ordinal, offset);
18529 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18530 if max_ordinal == 0 {
18532 return Ok(());
18533 }
18534 depth.increment()?;
18535 let envelope_size = 8;
18536 let bytes_len = max_ordinal as usize * envelope_size;
18537 #[allow(unused_variables)]
18538 let offset = encoder.out_of_line_offset(bytes_len);
18539 let mut _prev_end_offset: usize = 0;
18540 if 1 > max_ordinal {
18541 return Ok(());
18542 }
18543
18544 let cur_offset: usize = (1 - 1) * envelope_size;
18547
18548 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18550
18551 fidl::encoding::encode_in_envelope_optional::<u16, D>(
18556 self.nbytes.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
18557 encoder,
18558 offset + cur_offset,
18559 depth,
18560 )?;
18561
18562 _prev_end_offset = cur_offset + envelope_size;
18563 if 2 > max_ordinal {
18564 return Ok(());
18565 }
18566
18567 let cur_offset: usize = (2 - 1) * envelope_size;
18570
18571 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18573
18574 fidl::encoding::encode_in_envelope_optional::<Lc3FrameDuration, D>(
18579 self.frame_duration
18580 .as_ref()
18581 .map(<Lc3FrameDuration as fidl::encoding::ValueTypeMarker>::borrow),
18582 encoder,
18583 offset + cur_offset,
18584 depth,
18585 )?;
18586
18587 _prev_end_offset = cur_offset + envelope_size;
18588
18589 Ok(())
18590 }
18591 }
18592
18593 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Lc3EncoderSettings {
18594 #[inline(always)]
18595 fn new_empty() -> Self {
18596 Self::default()
18597 }
18598
18599 unsafe fn decode(
18600 &mut self,
18601 decoder: &mut fidl::encoding::Decoder<'_, D>,
18602 offset: usize,
18603 mut depth: fidl::encoding::Depth,
18604 ) -> fidl::Result<()> {
18605 decoder.debug_check_bounds::<Self>(offset);
18606 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18607 None => return Err(fidl::Error::NotNullable),
18608 Some(len) => len,
18609 };
18610 if len == 0 {
18612 return Ok(());
18613 };
18614 depth.increment()?;
18615 let envelope_size = 8;
18616 let bytes_len = len * envelope_size;
18617 let offset = decoder.out_of_line_offset(bytes_len)?;
18618 let mut _next_ordinal_to_read = 0;
18620 let mut next_offset = offset;
18621 let end_offset = offset + bytes_len;
18622 _next_ordinal_to_read += 1;
18623 if next_offset >= end_offset {
18624 return Ok(());
18625 }
18626
18627 while _next_ordinal_to_read < 1 {
18629 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18630 _next_ordinal_to_read += 1;
18631 next_offset += envelope_size;
18632 }
18633
18634 let next_out_of_line = decoder.next_out_of_line();
18635 let handles_before = decoder.remaining_handles();
18636 if let Some((inlined, num_bytes, num_handles)) =
18637 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18638 {
18639 let member_inline_size =
18640 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18641 if inlined != (member_inline_size <= 4) {
18642 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18643 }
18644 let inner_offset;
18645 let mut inner_depth = depth.clone();
18646 if inlined {
18647 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18648 inner_offset = next_offset;
18649 } else {
18650 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18651 inner_depth.increment()?;
18652 }
18653 let val_ref = self.nbytes.get_or_insert_with(|| fidl::new_empty!(u16, D));
18654 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
18655 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18656 {
18657 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18658 }
18659 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18660 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18661 }
18662 }
18663
18664 next_offset += envelope_size;
18665 _next_ordinal_to_read += 1;
18666 if next_offset >= end_offset {
18667 return Ok(());
18668 }
18669
18670 while _next_ordinal_to_read < 2 {
18672 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18673 _next_ordinal_to_read += 1;
18674 next_offset += envelope_size;
18675 }
18676
18677 let next_out_of_line = decoder.next_out_of_line();
18678 let handles_before = decoder.remaining_handles();
18679 if let Some((inlined, num_bytes, num_handles)) =
18680 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18681 {
18682 let member_inline_size =
18683 <Lc3FrameDuration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18684 if inlined != (member_inline_size <= 4) {
18685 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18686 }
18687 let inner_offset;
18688 let mut inner_depth = depth.clone();
18689 if inlined {
18690 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18691 inner_offset = next_offset;
18692 } else {
18693 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18694 inner_depth.increment()?;
18695 }
18696 let val_ref = self
18697 .frame_duration
18698 .get_or_insert_with(|| fidl::new_empty!(Lc3FrameDuration, D));
18699 fidl::decode!(Lc3FrameDuration, D, val_ref, decoder, inner_offset, inner_depth)?;
18700 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18701 {
18702 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18703 }
18704 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18705 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18706 }
18707 }
18708
18709 next_offset += envelope_size;
18710
18711 while next_offset < end_offset {
18713 _next_ordinal_to_read += 1;
18714 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18715 next_offset += envelope_size;
18716 }
18717
18718 Ok(())
18719 }
18720 }
18721
18722 impl LoopbackAudioCapturerConfiguration {
18723 #[inline(always)]
18724 fn max_ordinal_present(&self) -> u64 {
18725 0
18726 }
18727 }
18728
18729 impl fidl::encoding::ValueTypeMarker for LoopbackAudioCapturerConfiguration {
18730 type Borrowed<'a> = &'a Self;
18731 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18732 value
18733 }
18734 }
18735
18736 unsafe impl fidl::encoding::TypeMarker for LoopbackAudioCapturerConfiguration {
18737 type Owned = Self;
18738
18739 #[inline(always)]
18740 fn inline_align(_context: fidl::encoding::Context) -> usize {
18741 8
18742 }
18743
18744 #[inline(always)]
18745 fn inline_size(_context: fidl::encoding::Context) -> usize {
18746 16
18747 }
18748 }
18749
18750 unsafe impl<D: fidl::encoding::ResourceDialect>
18751 fidl::encoding::Encode<LoopbackAudioCapturerConfiguration, D>
18752 for &LoopbackAudioCapturerConfiguration
18753 {
18754 unsafe fn encode(
18755 self,
18756 encoder: &mut fidl::encoding::Encoder<'_, D>,
18757 offset: usize,
18758 mut depth: fidl::encoding::Depth,
18759 ) -> fidl::Result<()> {
18760 encoder.debug_check_bounds::<LoopbackAudioCapturerConfiguration>(offset);
18761 let max_ordinal: u64 = self.max_ordinal_present();
18763 encoder.write_num(max_ordinal, offset);
18764 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18765 if max_ordinal == 0 {
18767 return Ok(());
18768 }
18769 depth.increment()?;
18770 let envelope_size = 8;
18771 let bytes_len = max_ordinal as usize * envelope_size;
18772 #[allow(unused_variables)]
18773 let offset = encoder.out_of_line_offset(bytes_len);
18774 let mut _prev_end_offset: usize = 0;
18775
18776 Ok(())
18777 }
18778 }
18779
18780 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
18781 for LoopbackAudioCapturerConfiguration
18782 {
18783 #[inline(always)]
18784 fn new_empty() -> Self {
18785 Self::default()
18786 }
18787
18788 unsafe fn decode(
18789 &mut self,
18790 decoder: &mut fidl::encoding::Decoder<'_, D>,
18791 offset: usize,
18792 mut depth: fidl::encoding::Depth,
18793 ) -> fidl::Result<()> {
18794 decoder.debug_check_bounds::<Self>(offset);
18795 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18796 None => return Err(fidl::Error::NotNullable),
18797 Some(len) => len,
18798 };
18799 if len == 0 {
18801 return Ok(());
18802 };
18803 depth.increment()?;
18804 let envelope_size = 8;
18805 let bytes_len = len * envelope_size;
18806 let offset = decoder.out_of_line_offset(bytes_len)?;
18807 let mut _next_ordinal_to_read = 0;
18809 let mut next_offset = offset;
18810 let end_offset = offset + bytes_len;
18811
18812 while next_offset < end_offset {
18814 _next_ordinal_to_read += 1;
18815 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18816 next_offset += envelope_size;
18817 }
18818
18819 Ok(())
18820 }
18821 }
18822
18823 impl MSbcEncoderSettings {
18824 #[inline(always)]
18825 fn max_ordinal_present(&self) -> u64 {
18826 0
18827 }
18828 }
18829
18830 impl fidl::encoding::ValueTypeMarker for MSbcEncoderSettings {
18831 type Borrowed<'a> = &'a Self;
18832 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18833 value
18834 }
18835 }
18836
18837 unsafe impl fidl::encoding::TypeMarker for MSbcEncoderSettings {
18838 type Owned = Self;
18839
18840 #[inline(always)]
18841 fn inline_align(_context: fidl::encoding::Context) -> usize {
18842 8
18843 }
18844
18845 #[inline(always)]
18846 fn inline_size(_context: fidl::encoding::Context) -> usize {
18847 16
18848 }
18849 }
18850
18851 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MSbcEncoderSettings, D>
18852 for &MSbcEncoderSettings
18853 {
18854 unsafe fn encode(
18855 self,
18856 encoder: &mut fidl::encoding::Encoder<'_, D>,
18857 offset: usize,
18858 mut depth: fidl::encoding::Depth,
18859 ) -> fidl::Result<()> {
18860 encoder.debug_check_bounds::<MSbcEncoderSettings>(offset);
18861 let max_ordinal: u64 = self.max_ordinal_present();
18863 encoder.write_num(max_ordinal, offset);
18864 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18865 if max_ordinal == 0 {
18867 return Ok(());
18868 }
18869 depth.increment()?;
18870 let envelope_size = 8;
18871 let bytes_len = max_ordinal as usize * envelope_size;
18872 #[allow(unused_variables)]
18873 let offset = encoder.out_of_line_offset(bytes_len);
18874 let mut _prev_end_offset: usize = 0;
18875
18876 Ok(())
18877 }
18878 }
18879
18880 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MSbcEncoderSettings {
18881 #[inline(always)]
18882 fn new_empty() -> Self {
18883 Self::default()
18884 }
18885
18886 unsafe fn decode(
18887 &mut self,
18888 decoder: &mut fidl::encoding::Decoder<'_, D>,
18889 offset: usize,
18890 mut depth: fidl::encoding::Depth,
18891 ) -> fidl::Result<()> {
18892 decoder.debug_check_bounds::<Self>(offset);
18893 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18894 None => return Err(fidl::Error::NotNullable),
18895 Some(len) => len,
18896 };
18897 if len == 0 {
18899 return Ok(());
18900 };
18901 depth.increment()?;
18902 let envelope_size = 8;
18903 let bytes_len = len * envelope_size;
18904 let offset = decoder.out_of_line_offset(bytes_len)?;
18905 let mut _next_ordinal_to_read = 0;
18907 let mut next_offset = offset;
18908 let end_offset = offset + bytes_len;
18909
18910 while next_offset < end_offset {
18912 _next_ordinal_to_read += 1;
18913 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18914 next_offset += envelope_size;
18915 }
18916
18917 Ok(())
18918 }
18919 }
18920
18921 impl Packet {
18922 #[inline(always)]
18923 fn max_ordinal_present(&self) -> u64 {
18924 if let Some(_) = self.key_frame {
18925 return 9;
18926 }
18927 if let Some(_) = self.known_end_access_unit {
18928 return 8;
18929 }
18930 if let Some(_) = self.start_access_unit {
18931 return 7;
18932 }
18933 if let Some(_) = self.timestamp_ish {
18934 return 6;
18935 }
18936 if let Some(_) = self.valid_length_bytes {
18937 return 5;
18938 }
18939 if let Some(_) = self.start_offset {
18940 return 4;
18941 }
18942 if let Some(_) = self.stream_lifetime_ordinal {
18943 return 3;
18944 }
18945 if let Some(_) = self.buffer_index {
18946 return 2;
18947 }
18948 if let Some(_) = self.header {
18949 return 1;
18950 }
18951 0
18952 }
18953 }
18954
18955 impl fidl::encoding::ValueTypeMarker for Packet {
18956 type Borrowed<'a> = &'a Self;
18957 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18958 value
18959 }
18960 }
18961
18962 unsafe impl fidl::encoding::TypeMarker for Packet {
18963 type Owned = Self;
18964
18965 #[inline(always)]
18966 fn inline_align(_context: fidl::encoding::Context) -> usize {
18967 8
18968 }
18969
18970 #[inline(always)]
18971 fn inline_size(_context: fidl::encoding::Context) -> usize {
18972 16
18973 }
18974 }
18975
18976 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Packet, D> for &Packet {
18977 unsafe fn encode(
18978 self,
18979 encoder: &mut fidl::encoding::Encoder<'_, D>,
18980 offset: usize,
18981 mut depth: fidl::encoding::Depth,
18982 ) -> fidl::Result<()> {
18983 encoder.debug_check_bounds::<Packet>(offset);
18984 let max_ordinal: u64 = self.max_ordinal_present();
18986 encoder.write_num(max_ordinal, offset);
18987 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18988 if max_ordinal == 0 {
18990 return Ok(());
18991 }
18992 depth.increment()?;
18993 let envelope_size = 8;
18994 let bytes_len = max_ordinal as usize * envelope_size;
18995 #[allow(unused_variables)]
18996 let offset = encoder.out_of_line_offset(bytes_len);
18997 let mut _prev_end_offset: usize = 0;
18998 if 1 > max_ordinal {
18999 return Ok(());
19000 }
19001
19002 let cur_offset: usize = (1 - 1) * envelope_size;
19005
19006 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19008
19009 fidl::encoding::encode_in_envelope_optional::<PacketHeader, D>(
19014 self.header.as_ref().map(<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow),
19015 encoder,
19016 offset + cur_offset,
19017 depth,
19018 )?;
19019
19020 _prev_end_offset = cur_offset + envelope_size;
19021 if 2 > max_ordinal {
19022 return Ok(());
19023 }
19024
19025 let cur_offset: usize = (2 - 1) * envelope_size;
19028
19029 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19031
19032 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19037 self.buffer_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19038 encoder,
19039 offset + cur_offset,
19040 depth,
19041 )?;
19042
19043 _prev_end_offset = cur_offset + envelope_size;
19044 if 3 > max_ordinal {
19045 return Ok(());
19046 }
19047
19048 let cur_offset: usize = (3 - 1) * envelope_size;
19051
19052 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19054
19055 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19060 self.stream_lifetime_ordinal
19061 .as_ref()
19062 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19063 encoder,
19064 offset + cur_offset,
19065 depth,
19066 )?;
19067
19068 _prev_end_offset = cur_offset + envelope_size;
19069 if 4 > max_ordinal {
19070 return Ok(());
19071 }
19072
19073 let cur_offset: usize = (4 - 1) * envelope_size;
19076
19077 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19079
19080 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19085 self.start_offset.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19086 encoder,
19087 offset + cur_offset,
19088 depth,
19089 )?;
19090
19091 _prev_end_offset = cur_offset + envelope_size;
19092 if 5 > max_ordinal {
19093 return Ok(());
19094 }
19095
19096 let cur_offset: usize = (5 - 1) * envelope_size;
19099
19100 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19102
19103 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19108 self.valid_length_bytes
19109 .as_ref()
19110 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19111 encoder,
19112 offset + cur_offset,
19113 depth,
19114 )?;
19115
19116 _prev_end_offset = cur_offset + envelope_size;
19117 if 6 > max_ordinal {
19118 return Ok(());
19119 }
19120
19121 let cur_offset: usize = (6 - 1) * envelope_size;
19124
19125 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19127
19128 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19133 self.timestamp_ish.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19134 encoder,
19135 offset + cur_offset,
19136 depth,
19137 )?;
19138
19139 _prev_end_offset = cur_offset + envelope_size;
19140 if 7 > max_ordinal {
19141 return Ok(());
19142 }
19143
19144 let cur_offset: usize = (7 - 1) * envelope_size;
19147
19148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19150
19151 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19156 self.start_access_unit
19157 .as_ref()
19158 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19159 encoder,
19160 offset + cur_offset,
19161 depth,
19162 )?;
19163
19164 _prev_end_offset = cur_offset + envelope_size;
19165 if 8 > max_ordinal {
19166 return Ok(());
19167 }
19168
19169 let cur_offset: usize = (8 - 1) * envelope_size;
19172
19173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19175
19176 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19181 self.known_end_access_unit
19182 .as_ref()
19183 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19184 encoder,
19185 offset + cur_offset,
19186 depth,
19187 )?;
19188
19189 _prev_end_offset = cur_offset + envelope_size;
19190 if 9 > max_ordinal {
19191 return Ok(());
19192 }
19193
19194 let cur_offset: usize = (9 - 1) * envelope_size;
19197
19198 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19200
19201 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19206 self.key_frame.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19207 encoder,
19208 offset + cur_offset,
19209 depth,
19210 )?;
19211
19212 _prev_end_offset = cur_offset + envelope_size;
19213
19214 Ok(())
19215 }
19216 }
19217
19218 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Packet {
19219 #[inline(always)]
19220 fn new_empty() -> Self {
19221 Self::default()
19222 }
19223
19224 unsafe fn decode(
19225 &mut self,
19226 decoder: &mut fidl::encoding::Decoder<'_, D>,
19227 offset: usize,
19228 mut depth: fidl::encoding::Depth,
19229 ) -> fidl::Result<()> {
19230 decoder.debug_check_bounds::<Self>(offset);
19231 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19232 None => return Err(fidl::Error::NotNullable),
19233 Some(len) => len,
19234 };
19235 if len == 0 {
19237 return Ok(());
19238 };
19239 depth.increment()?;
19240 let envelope_size = 8;
19241 let bytes_len = len * envelope_size;
19242 let offset = decoder.out_of_line_offset(bytes_len)?;
19243 let mut _next_ordinal_to_read = 0;
19245 let mut next_offset = offset;
19246 let end_offset = offset + bytes_len;
19247 _next_ordinal_to_read += 1;
19248 if next_offset >= end_offset {
19249 return Ok(());
19250 }
19251
19252 while _next_ordinal_to_read < 1 {
19254 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19255 _next_ordinal_to_read += 1;
19256 next_offset += envelope_size;
19257 }
19258
19259 let next_out_of_line = decoder.next_out_of_line();
19260 let handles_before = decoder.remaining_handles();
19261 if let Some((inlined, num_bytes, num_handles)) =
19262 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19263 {
19264 let member_inline_size =
19265 <PacketHeader as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19266 if inlined != (member_inline_size <= 4) {
19267 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19268 }
19269 let inner_offset;
19270 let mut inner_depth = depth.clone();
19271 if inlined {
19272 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19273 inner_offset = next_offset;
19274 } else {
19275 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19276 inner_depth.increment()?;
19277 }
19278 let val_ref = self.header.get_or_insert_with(|| fidl::new_empty!(PacketHeader, D));
19279 fidl::decode!(PacketHeader, D, val_ref, decoder, inner_offset, inner_depth)?;
19280 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19281 {
19282 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19283 }
19284 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19285 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19286 }
19287 }
19288
19289 next_offset += envelope_size;
19290 _next_ordinal_to_read += 1;
19291 if next_offset >= end_offset {
19292 return Ok(());
19293 }
19294
19295 while _next_ordinal_to_read < 2 {
19297 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19298 _next_ordinal_to_read += 1;
19299 next_offset += envelope_size;
19300 }
19301
19302 let next_out_of_line = decoder.next_out_of_line();
19303 let handles_before = decoder.remaining_handles();
19304 if let Some((inlined, num_bytes, num_handles)) =
19305 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19306 {
19307 let member_inline_size =
19308 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19309 if inlined != (member_inline_size <= 4) {
19310 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19311 }
19312 let inner_offset;
19313 let mut inner_depth = depth.clone();
19314 if inlined {
19315 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19316 inner_offset = next_offset;
19317 } else {
19318 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19319 inner_depth.increment()?;
19320 }
19321 let val_ref = self.buffer_index.get_or_insert_with(|| fidl::new_empty!(u32, D));
19322 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19323 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19324 {
19325 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19326 }
19327 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19328 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19329 }
19330 }
19331
19332 next_offset += envelope_size;
19333 _next_ordinal_to_read += 1;
19334 if next_offset >= end_offset {
19335 return Ok(());
19336 }
19337
19338 while _next_ordinal_to_read < 3 {
19340 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19341 _next_ordinal_to_read += 1;
19342 next_offset += envelope_size;
19343 }
19344
19345 let next_out_of_line = decoder.next_out_of_line();
19346 let handles_before = decoder.remaining_handles();
19347 if let Some((inlined, num_bytes, num_handles)) =
19348 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19349 {
19350 let member_inline_size =
19351 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19352 if inlined != (member_inline_size <= 4) {
19353 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19354 }
19355 let inner_offset;
19356 let mut inner_depth = depth.clone();
19357 if inlined {
19358 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19359 inner_offset = next_offset;
19360 } else {
19361 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19362 inner_depth.increment()?;
19363 }
19364 let val_ref =
19365 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
19366 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19367 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19368 {
19369 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19370 }
19371 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19372 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19373 }
19374 }
19375
19376 next_offset += envelope_size;
19377 _next_ordinal_to_read += 1;
19378 if next_offset >= end_offset {
19379 return Ok(());
19380 }
19381
19382 while _next_ordinal_to_read < 4 {
19384 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19385 _next_ordinal_to_read += 1;
19386 next_offset += envelope_size;
19387 }
19388
19389 let next_out_of_line = decoder.next_out_of_line();
19390 let handles_before = decoder.remaining_handles();
19391 if let Some((inlined, num_bytes, num_handles)) =
19392 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19393 {
19394 let member_inline_size =
19395 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19396 if inlined != (member_inline_size <= 4) {
19397 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19398 }
19399 let inner_offset;
19400 let mut inner_depth = depth.clone();
19401 if inlined {
19402 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19403 inner_offset = next_offset;
19404 } else {
19405 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19406 inner_depth.increment()?;
19407 }
19408 let val_ref = self.start_offset.get_or_insert_with(|| fidl::new_empty!(u32, D));
19409 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19410 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19411 {
19412 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19413 }
19414 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19415 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19416 }
19417 }
19418
19419 next_offset += envelope_size;
19420 _next_ordinal_to_read += 1;
19421 if next_offset >= end_offset {
19422 return Ok(());
19423 }
19424
19425 while _next_ordinal_to_read < 5 {
19427 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19428 _next_ordinal_to_read += 1;
19429 next_offset += envelope_size;
19430 }
19431
19432 let next_out_of_line = decoder.next_out_of_line();
19433 let handles_before = decoder.remaining_handles();
19434 if let Some((inlined, num_bytes, num_handles)) =
19435 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19436 {
19437 let member_inline_size =
19438 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19439 if inlined != (member_inline_size <= 4) {
19440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19441 }
19442 let inner_offset;
19443 let mut inner_depth = depth.clone();
19444 if inlined {
19445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19446 inner_offset = next_offset;
19447 } else {
19448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19449 inner_depth.increment()?;
19450 }
19451 let val_ref =
19452 self.valid_length_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
19453 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19454 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19455 {
19456 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19457 }
19458 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19459 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19460 }
19461 }
19462
19463 next_offset += envelope_size;
19464 _next_ordinal_to_read += 1;
19465 if next_offset >= end_offset {
19466 return Ok(());
19467 }
19468
19469 while _next_ordinal_to_read < 6 {
19471 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19472 _next_ordinal_to_read += 1;
19473 next_offset += envelope_size;
19474 }
19475
19476 let next_out_of_line = decoder.next_out_of_line();
19477 let handles_before = decoder.remaining_handles();
19478 if let Some((inlined, num_bytes, num_handles)) =
19479 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19480 {
19481 let member_inline_size =
19482 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19483 if inlined != (member_inline_size <= 4) {
19484 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19485 }
19486 let inner_offset;
19487 let mut inner_depth = depth.clone();
19488 if inlined {
19489 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19490 inner_offset = next_offset;
19491 } else {
19492 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19493 inner_depth.increment()?;
19494 }
19495 let val_ref = self.timestamp_ish.get_or_insert_with(|| fidl::new_empty!(u64, D));
19496 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19497 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19498 {
19499 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19500 }
19501 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19502 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19503 }
19504 }
19505
19506 next_offset += envelope_size;
19507 _next_ordinal_to_read += 1;
19508 if next_offset >= end_offset {
19509 return Ok(());
19510 }
19511
19512 while _next_ordinal_to_read < 7 {
19514 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19515 _next_ordinal_to_read += 1;
19516 next_offset += envelope_size;
19517 }
19518
19519 let next_out_of_line = decoder.next_out_of_line();
19520 let handles_before = decoder.remaining_handles();
19521 if let Some((inlined, num_bytes, num_handles)) =
19522 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19523 {
19524 let member_inline_size =
19525 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19526 if inlined != (member_inline_size <= 4) {
19527 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19528 }
19529 let inner_offset;
19530 let mut inner_depth = depth.clone();
19531 if inlined {
19532 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19533 inner_offset = next_offset;
19534 } else {
19535 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19536 inner_depth.increment()?;
19537 }
19538 let val_ref =
19539 self.start_access_unit.get_or_insert_with(|| fidl::new_empty!(bool, D));
19540 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19542 {
19543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19544 }
19545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19547 }
19548 }
19549
19550 next_offset += envelope_size;
19551 _next_ordinal_to_read += 1;
19552 if next_offset >= end_offset {
19553 return Ok(());
19554 }
19555
19556 while _next_ordinal_to_read < 8 {
19558 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19559 _next_ordinal_to_read += 1;
19560 next_offset += envelope_size;
19561 }
19562
19563 let next_out_of_line = decoder.next_out_of_line();
19564 let handles_before = decoder.remaining_handles();
19565 if let Some((inlined, num_bytes, num_handles)) =
19566 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19567 {
19568 let member_inline_size =
19569 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19570 if inlined != (member_inline_size <= 4) {
19571 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19572 }
19573 let inner_offset;
19574 let mut inner_depth = depth.clone();
19575 if inlined {
19576 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19577 inner_offset = next_offset;
19578 } else {
19579 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19580 inner_depth.increment()?;
19581 }
19582 let val_ref =
19583 self.known_end_access_unit.get_or_insert_with(|| fidl::new_empty!(bool, D));
19584 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19586 {
19587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19588 }
19589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19591 }
19592 }
19593
19594 next_offset += envelope_size;
19595 _next_ordinal_to_read += 1;
19596 if next_offset >= end_offset {
19597 return Ok(());
19598 }
19599
19600 while _next_ordinal_to_read < 9 {
19602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19603 _next_ordinal_to_read += 1;
19604 next_offset += envelope_size;
19605 }
19606
19607 let next_out_of_line = decoder.next_out_of_line();
19608 let handles_before = decoder.remaining_handles();
19609 if let Some((inlined, num_bytes, num_handles)) =
19610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19611 {
19612 let member_inline_size =
19613 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19614 if inlined != (member_inline_size <= 4) {
19615 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19616 }
19617 let inner_offset;
19618 let mut inner_depth = depth.clone();
19619 if inlined {
19620 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19621 inner_offset = next_offset;
19622 } else {
19623 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19624 inner_depth.increment()?;
19625 }
19626 let val_ref = self.key_frame.get_or_insert_with(|| fidl::new_empty!(bool, D));
19627 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19628 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19629 {
19630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19631 }
19632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19634 }
19635 }
19636
19637 next_offset += envelope_size;
19638
19639 while next_offset < end_offset {
19641 _next_ordinal_to_read += 1;
19642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19643 next_offset += envelope_size;
19644 }
19645
19646 Ok(())
19647 }
19648 }
19649
19650 impl PacketHeader {
19651 #[inline(always)]
19652 fn max_ordinal_present(&self) -> u64 {
19653 if let Some(_) = self.packet_index {
19654 return 2;
19655 }
19656 if let Some(_) = self.buffer_lifetime_ordinal {
19657 return 1;
19658 }
19659 0
19660 }
19661 }
19662
19663 impl fidl::encoding::ValueTypeMarker for PacketHeader {
19664 type Borrowed<'a> = &'a Self;
19665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19666 value
19667 }
19668 }
19669
19670 unsafe impl fidl::encoding::TypeMarker for PacketHeader {
19671 type Owned = Self;
19672
19673 #[inline(always)]
19674 fn inline_align(_context: fidl::encoding::Context) -> usize {
19675 8
19676 }
19677
19678 #[inline(always)]
19679 fn inline_size(_context: fidl::encoding::Context) -> usize {
19680 16
19681 }
19682 }
19683
19684 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PacketHeader, D>
19685 for &PacketHeader
19686 {
19687 unsafe fn encode(
19688 self,
19689 encoder: &mut fidl::encoding::Encoder<'_, D>,
19690 offset: usize,
19691 mut depth: fidl::encoding::Depth,
19692 ) -> fidl::Result<()> {
19693 encoder.debug_check_bounds::<PacketHeader>(offset);
19694 let max_ordinal: u64 = self.max_ordinal_present();
19696 encoder.write_num(max_ordinal, offset);
19697 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19698 if max_ordinal == 0 {
19700 return Ok(());
19701 }
19702 depth.increment()?;
19703 let envelope_size = 8;
19704 let bytes_len = max_ordinal as usize * envelope_size;
19705 #[allow(unused_variables)]
19706 let offset = encoder.out_of_line_offset(bytes_len);
19707 let mut _prev_end_offset: usize = 0;
19708 if 1 > max_ordinal {
19709 return Ok(());
19710 }
19711
19712 let cur_offset: usize = (1 - 1) * envelope_size;
19715
19716 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19718
19719 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19724 self.buffer_lifetime_ordinal
19725 .as_ref()
19726 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19727 encoder,
19728 offset + cur_offset,
19729 depth,
19730 )?;
19731
19732 _prev_end_offset = cur_offset + envelope_size;
19733 if 2 > max_ordinal {
19734 return Ok(());
19735 }
19736
19737 let cur_offset: usize = (2 - 1) * envelope_size;
19740
19741 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19743
19744 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19749 self.packet_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19750 encoder,
19751 offset + cur_offset,
19752 depth,
19753 )?;
19754
19755 _prev_end_offset = cur_offset + envelope_size;
19756
19757 Ok(())
19758 }
19759 }
19760
19761 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PacketHeader {
19762 #[inline(always)]
19763 fn new_empty() -> Self {
19764 Self::default()
19765 }
19766
19767 unsafe fn decode(
19768 &mut self,
19769 decoder: &mut fidl::encoding::Decoder<'_, D>,
19770 offset: usize,
19771 mut depth: fidl::encoding::Depth,
19772 ) -> fidl::Result<()> {
19773 decoder.debug_check_bounds::<Self>(offset);
19774 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19775 None => return Err(fidl::Error::NotNullable),
19776 Some(len) => len,
19777 };
19778 if len == 0 {
19780 return Ok(());
19781 };
19782 depth.increment()?;
19783 let envelope_size = 8;
19784 let bytes_len = len * envelope_size;
19785 let offset = decoder.out_of_line_offset(bytes_len)?;
19786 let mut _next_ordinal_to_read = 0;
19788 let mut next_offset = offset;
19789 let end_offset = offset + bytes_len;
19790 _next_ordinal_to_read += 1;
19791 if next_offset >= end_offset {
19792 return Ok(());
19793 }
19794
19795 while _next_ordinal_to_read < 1 {
19797 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19798 _next_ordinal_to_read += 1;
19799 next_offset += envelope_size;
19800 }
19801
19802 let next_out_of_line = decoder.next_out_of_line();
19803 let handles_before = decoder.remaining_handles();
19804 if let Some((inlined, num_bytes, num_handles)) =
19805 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19806 {
19807 let member_inline_size =
19808 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19809 if inlined != (member_inline_size <= 4) {
19810 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19811 }
19812 let inner_offset;
19813 let mut inner_depth = depth.clone();
19814 if inlined {
19815 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19816 inner_offset = next_offset;
19817 } else {
19818 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19819 inner_depth.increment()?;
19820 }
19821 let val_ref =
19822 self.buffer_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
19823 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19824 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19825 {
19826 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19827 }
19828 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19829 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19830 }
19831 }
19832
19833 next_offset += envelope_size;
19834 _next_ordinal_to_read += 1;
19835 if next_offset >= end_offset {
19836 return Ok(());
19837 }
19838
19839 while _next_ordinal_to_read < 2 {
19841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19842 _next_ordinal_to_read += 1;
19843 next_offset += envelope_size;
19844 }
19845
19846 let next_out_of_line = decoder.next_out_of_line();
19847 let handles_before = decoder.remaining_handles();
19848 if let Some((inlined, num_bytes, num_handles)) =
19849 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19850 {
19851 let member_inline_size =
19852 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19853 if inlined != (member_inline_size <= 4) {
19854 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19855 }
19856 let inner_offset;
19857 let mut inner_depth = depth.clone();
19858 if inlined {
19859 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19860 inner_offset = next_offset;
19861 } else {
19862 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19863 inner_depth.increment()?;
19864 }
19865 let val_ref = self.packet_index.get_or_insert_with(|| fidl::new_empty!(u32, D));
19866 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19867 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19868 {
19869 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19870 }
19871 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19872 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19873 }
19874 }
19875
19876 next_offset += envelope_size;
19877
19878 while next_offset < end_offset {
19880 _next_ordinal_to_read += 1;
19881 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19882 next_offset += envelope_size;
19883 }
19884
19885 Ok(())
19886 }
19887 }
19888
19889 impl StreamBufferConstraints {
19890 #[inline(always)]
19891 fn max_ordinal_present(&self) -> u64 {
19892 if let Some(_) = self.is_physically_contiguous_required {
19893 return 13;
19894 }
19895 if let Some(_) = self.single_buffer_mode_allowed {
19896 return 12;
19897 }
19898 if let Some(_) = self.packet_count_for_client_max {
19899 return 11;
19900 }
19901 if let Some(_) = self.packet_count_for_client_min {
19902 return 10;
19903 }
19904 if let Some(_) = self.packet_count_for_server_max {
19905 return 9;
19906 }
19907 if let Some(_) = self.packet_count_for_server_recommended_max {
19908 return 8;
19909 }
19910 if let Some(_) = self.packet_count_for_server_recommended {
19911 return 7;
19912 }
19913 if let Some(_) = self.packet_count_for_server_min {
19914 return 6;
19915 }
19916 if let Some(_) = self.per_packet_buffer_bytes_max {
19917 return 5;
19918 }
19919 if let Some(_) = self.per_packet_buffer_bytes_recommended {
19920 return 4;
19921 }
19922 if let Some(_) = self.per_packet_buffer_bytes_min {
19923 return 3;
19924 }
19925 if let Some(_) = self.default_settings {
19926 return 2;
19927 }
19928 if let Some(_) = self.buffer_constraints_version_ordinal {
19929 return 1;
19930 }
19931 0
19932 }
19933 }
19934
19935 impl fidl::encoding::ValueTypeMarker for StreamBufferConstraints {
19936 type Borrowed<'a> = &'a Self;
19937 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19938 value
19939 }
19940 }
19941
19942 unsafe impl fidl::encoding::TypeMarker for StreamBufferConstraints {
19943 type Owned = Self;
19944
19945 #[inline(always)]
19946 fn inline_align(_context: fidl::encoding::Context) -> usize {
19947 8
19948 }
19949
19950 #[inline(always)]
19951 fn inline_size(_context: fidl::encoding::Context) -> usize {
19952 16
19953 }
19954 }
19955
19956 unsafe impl<D: fidl::encoding::ResourceDialect>
19957 fidl::encoding::Encode<StreamBufferConstraints, D> for &StreamBufferConstraints
19958 {
19959 unsafe fn encode(
19960 self,
19961 encoder: &mut fidl::encoding::Encoder<'_, D>,
19962 offset: usize,
19963 mut depth: fidl::encoding::Depth,
19964 ) -> fidl::Result<()> {
19965 encoder.debug_check_bounds::<StreamBufferConstraints>(offset);
19966 let max_ordinal: u64 = self.max_ordinal_present();
19968 encoder.write_num(max_ordinal, offset);
19969 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19970 if max_ordinal == 0 {
19972 return Ok(());
19973 }
19974 depth.increment()?;
19975 let envelope_size = 8;
19976 let bytes_len = max_ordinal as usize * envelope_size;
19977 #[allow(unused_variables)]
19978 let offset = encoder.out_of_line_offset(bytes_len);
19979 let mut _prev_end_offset: usize = 0;
19980 if 1 > max_ordinal {
19981 return Ok(());
19982 }
19983
19984 let cur_offset: usize = (1 - 1) * envelope_size;
19987
19988 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19990
19991 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19996 self.buffer_constraints_version_ordinal
19997 .as_ref()
19998 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19999 encoder,
20000 offset + cur_offset,
20001 depth,
20002 )?;
20003
20004 _prev_end_offset = cur_offset + envelope_size;
20005 if 2 > max_ordinal {
20006 return Ok(());
20007 }
20008
20009 let cur_offset: usize = (2 - 1) * envelope_size;
20012
20013 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20015
20016 fidl::encoding::encode_in_envelope_optional::<StreamBufferSettings, D>(
20021 self.default_settings
20022 .as_ref()
20023 .map(<StreamBufferSettings as fidl::encoding::ValueTypeMarker>::borrow),
20024 encoder,
20025 offset + cur_offset,
20026 depth,
20027 )?;
20028
20029 _prev_end_offset = cur_offset + envelope_size;
20030 if 3 > max_ordinal {
20031 return Ok(());
20032 }
20033
20034 let cur_offset: usize = (3 - 1) * envelope_size;
20037
20038 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20040
20041 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20046 self.per_packet_buffer_bytes_min
20047 .as_ref()
20048 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20049 encoder,
20050 offset + cur_offset,
20051 depth,
20052 )?;
20053
20054 _prev_end_offset = cur_offset + envelope_size;
20055 if 4 > max_ordinal {
20056 return Ok(());
20057 }
20058
20059 let cur_offset: usize = (4 - 1) * envelope_size;
20062
20063 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20065
20066 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20071 self.per_packet_buffer_bytes_recommended
20072 .as_ref()
20073 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20074 encoder,
20075 offset + cur_offset,
20076 depth,
20077 )?;
20078
20079 _prev_end_offset = cur_offset + envelope_size;
20080 if 5 > max_ordinal {
20081 return Ok(());
20082 }
20083
20084 let cur_offset: usize = (5 - 1) * envelope_size;
20087
20088 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20090
20091 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20096 self.per_packet_buffer_bytes_max
20097 .as_ref()
20098 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20099 encoder,
20100 offset + cur_offset,
20101 depth,
20102 )?;
20103
20104 _prev_end_offset = cur_offset + envelope_size;
20105 if 6 > max_ordinal {
20106 return Ok(());
20107 }
20108
20109 let cur_offset: usize = (6 - 1) * envelope_size;
20112
20113 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20115
20116 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20121 self.packet_count_for_server_min
20122 .as_ref()
20123 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20124 encoder,
20125 offset + cur_offset,
20126 depth,
20127 )?;
20128
20129 _prev_end_offset = cur_offset + envelope_size;
20130 if 7 > max_ordinal {
20131 return Ok(());
20132 }
20133
20134 let cur_offset: usize = (7 - 1) * envelope_size;
20137
20138 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20140
20141 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20146 self.packet_count_for_server_recommended
20147 .as_ref()
20148 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20149 encoder,
20150 offset + cur_offset,
20151 depth,
20152 )?;
20153
20154 _prev_end_offset = cur_offset + envelope_size;
20155 if 8 > max_ordinal {
20156 return Ok(());
20157 }
20158
20159 let cur_offset: usize = (8 - 1) * envelope_size;
20162
20163 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20165
20166 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20171 self.packet_count_for_server_recommended_max
20172 .as_ref()
20173 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20174 encoder,
20175 offset + cur_offset,
20176 depth,
20177 )?;
20178
20179 _prev_end_offset = cur_offset + envelope_size;
20180 if 9 > max_ordinal {
20181 return Ok(());
20182 }
20183
20184 let cur_offset: usize = (9 - 1) * envelope_size;
20187
20188 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20190
20191 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20196 self.packet_count_for_server_max
20197 .as_ref()
20198 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20199 encoder,
20200 offset + cur_offset,
20201 depth,
20202 )?;
20203
20204 _prev_end_offset = cur_offset + envelope_size;
20205 if 10 > max_ordinal {
20206 return Ok(());
20207 }
20208
20209 let cur_offset: usize = (10 - 1) * envelope_size;
20212
20213 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20215
20216 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20221 self.packet_count_for_client_min
20222 .as_ref()
20223 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20224 encoder,
20225 offset + cur_offset,
20226 depth,
20227 )?;
20228
20229 _prev_end_offset = cur_offset + envelope_size;
20230 if 11 > max_ordinal {
20231 return Ok(());
20232 }
20233
20234 let cur_offset: usize = (11 - 1) * envelope_size;
20237
20238 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20240
20241 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20246 self.packet_count_for_client_max
20247 .as_ref()
20248 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20249 encoder,
20250 offset + cur_offset,
20251 depth,
20252 )?;
20253
20254 _prev_end_offset = cur_offset + envelope_size;
20255 if 12 > max_ordinal {
20256 return Ok(());
20257 }
20258
20259 let cur_offset: usize = (12 - 1) * envelope_size;
20262
20263 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20265
20266 fidl::encoding::encode_in_envelope_optional::<bool, D>(
20271 self.single_buffer_mode_allowed
20272 .as_ref()
20273 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
20274 encoder,
20275 offset + cur_offset,
20276 depth,
20277 )?;
20278
20279 _prev_end_offset = cur_offset + envelope_size;
20280 if 13 > max_ordinal {
20281 return Ok(());
20282 }
20283
20284 let cur_offset: usize = (13 - 1) * envelope_size;
20287
20288 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20290
20291 fidl::encoding::encode_in_envelope_optional::<bool, D>(
20296 self.is_physically_contiguous_required
20297 .as_ref()
20298 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
20299 encoder,
20300 offset + cur_offset,
20301 depth,
20302 )?;
20303
20304 _prev_end_offset = cur_offset + envelope_size;
20305
20306 Ok(())
20307 }
20308 }
20309
20310 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
20311 for StreamBufferConstraints
20312 {
20313 #[inline(always)]
20314 fn new_empty() -> Self {
20315 Self::default()
20316 }
20317
20318 unsafe fn decode(
20319 &mut self,
20320 decoder: &mut fidl::encoding::Decoder<'_, D>,
20321 offset: usize,
20322 mut depth: fidl::encoding::Depth,
20323 ) -> fidl::Result<()> {
20324 decoder.debug_check_bounds::<Self>(offset);
20325 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20326 None => return Err(fidl::Error::NotNullable),
20327 Some(len) => len,
20328 };
20329 if len == 0 {
20331 return Ok(());
20332 };
20333 depth.increment()?;
20334 let envelope_size = 8;
20335 let bytes_len = len * envelope_size;
20336 let offset = decoder.out_of_line_offset(bytes_len)?;
20337 let mut _next_ordinal_to_read = 0;
20339 let mut next_offset = offset;
20340 let end_offset = offset + bytes_len;
20341 _next_ordinal_to_read += 1;
20342 if next_offset >= end_offset {
20343 return Ok(());
20344 }
20345
20346 while _next_ordinal_to_read < 1 {
20348 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20349 _next_ordinal_to_read += 1;
20350 next_offset += envelope_size;
20351 }
20352
20353 let next_out_of_line = decoder.next_out_of_line();
20354 let handles_before = decoder.remaining_handles();
20355 if let Some((inlined, num_bytes, num_handles)) =
20356 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20357 {
20358 let member_inline_size =
20359 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20360 if inlined != (member_inline_size <= 4) {
20361 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20362 }
20363 let inner_offset;
20364 let mut inner_depth = depth.clone();
20365 if inlined {
20366 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20367 inner_offset = next_offset;
20368 } else {
20369 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20370 inner_depth.increment()?;
20371 }
20372 let val_ref = self
20373 .buffer_constraints_version_ordinal
20374 .get_or_insert_with(|| fidl::new_empty!(u64, D));
20375 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
20376 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20377 {
20378 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20379 }
20380 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20381 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20382 }
20383 }
20384
20385 next_offset += envelope_size;
20386 _next_ordinal_to_read += 1;
20387 if next_offset >= end_offset {
20388 return Ok(());
20389 }
20390
20391 while _next_ordinal_to_read < 2 {
20393 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20394 _next_ordinal_to_read += 1;
20395 next_offset += envelope_size;
20396 }
20397
20398 let next_out_of_line = decoder.next_out_of_line();
20399 let handles_before = decoder.remaining_handles();
20400 if let Some((inlined, num_bytes, num_handles)) =
20401 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20402 {
20403 let member_inline_size =
20404 <StreamBufferSettings as fidl::encoding::TypeMarker>::inline_size(
20405 decoder.context,
20406 );
20407 if inlined != (member_inline_size <= 4) {
20408 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20409 }
20410 let inner_offset;
20411 let mut inner_depth = depth.clone();
20412 if inlined {
20413 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20414 inner_offset = next_offset;
20415 } else {
20416 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20417 inner_depth.increment()?;
20418 }
20419 let val_ref = self
20420 .default_settings
20421 .get_or_insert_with(|| fidl::new_empty!(StreamBufferSettings, D));
20422 fidl::decode!(
20423 StreamBufferSettings,
20424 D,
20425 val_ref,
20426 decoder,
20427 inner_offset,
20428 inner_depth
20429 )?;
20430 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20431 {
20432 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20433 }
20434 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20435 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20436 }
20437 }
20438
20439 next_offset += envelope_size;
20440 _next_ordinal_to_read += 1;
20441 if next_offset >= end_offset {
20442 return Ok(());
20443 }
20444
20445 while _next_ordinal_to_read < 3 {
20447 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20448 _next_ordinal_to_read += 1;
20449 next_offset += envelope_size;
20450 }
20451
20452 let next_out_of_line = decoder.next_out_of_line();
20453 let handles_before = decoder.remaining_handles();
20454 if let Some((inlined, num_bytes, num_handles)) =
20455 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20456 {
20457 let member_inline_size =
20458 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20459 if inlined != (member_inline_size <= 4) {
20460 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20461 }
20462 let inner_offset;
20463 let mut inner_depth = depth.clone();
20464 if inlined {
20465 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20466 inner_offset = next_offset;
20467 } else {
20468 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20469 inner_depth.increment()?;
20470 }
20471 let val_ref = self
20472 .per_packet_buffer_bytes_min
20473 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20474 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20475 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20476 {
20477 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20478 }
20479 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20480 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20481 }
20482 }
20483
20484 next_offset += envelope_size;
20485 _next_ordinal_to_read += 1;
20486 if next_offset >= end_offset {
20487 return Ok(());
20488 }
20489
20490 while _next_ordinal_to_read < 4 {
20492 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20493 _next_ordinal_to_read += 1;
20494 next_offset += envelope_size;
20495 }
20496
20497 let next_out_of_line = decoder.next_out_of_line();
20498 let handles_before = decoder.remaining_handles();
20499 if let Some((inlined, num_bytes, num_handles)) =
20500 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20501 {
20502 let member_inline_size =
20503 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20504 if inlined != (member_inline_size <= 4) {
20505 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20506 }
20507 let inner_offset;
20508 let mut inner_depth = depth.clone();
20509 if inlined {
20510 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20511 inner_offset = next_offset;
20512 } else {
20513 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20514 inner_depth.increment()?;
20515 }
20516 let val_ref = self
20517 .per_packet_buffer_bytes_recommended
20518 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20519 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20520 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20521 {
20522 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20523 }
20524 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20525 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20526 }
20527 }
20528
20529 next_offset += envelope_size;
20530 _next_ordinal_to_read += 1;
20531 if next_offset >= end_offset {
20532 return Ok(());
20533 }
20534
20535 while _next_ordinal_to_read < 5 {
20537 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20538 _next_ordinal_to_read += 1;
20539 next_offset += envelope_size;
20540 }
20541
20542 let next_out_of_line = decoder.next_out_of_line();
20543 let handles_before = decoder.remaining_handles();
20544 if let Some((inlined, num_bytes, num_handles)) =
20545 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20546 {
20547 let member_inline_size =
20548 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20549 if inlined != (member_inline_size <= 4) {
20550 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20551 }
20552 let inner_offset;
20553 let mut inner_depth = depth.clone();
20554 if inlined {
20555 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20556 inner_offset = next_offset;
20557 } else {
20558 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20559 inner_depth.increment()?;
20560 }
20561 let val_ref = self
20562 .per_packet_buffer_bytes_max
20563 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20564 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20565 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20566 {
20567 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20568 }
20569 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20570 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20571 }
20572 }
20573
20574 next_offset += envelope_size;
20575 _next_ordinal_to_read += 1;
20576 if next_offset >= end_offset {
20577 return Ok(());
20578 }
20579
20580 while _next_ordinal_to_read < 6 {
20582 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20583 _next_ordinal_to_read += 1;
20584 next_offset += envelope_size;
20585 }
20586
20587 let next_out_of_line = decoder.next_out_of_line();
20588 let handles_before = decoder.remaining_handles();
20589 if let Some((inlined, num_bytes, num_handles)) =
20590 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20591 {
20592 let member_inline_size =
20593 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20594 if inlined != (member_inline_size <= 4) {
20595 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20596 }
20597 let inner_offset;
20598 let mut inner_depth = depth.clone();
20599 if inlined {
20600 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20601 inner_offset = next_offset;
20602 } else {
20603 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20604 inner_depth.increment()?;
20605 }
20606 let val_ref = self
20607 .packet_count_for_server_min
20608 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20609 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20610 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20611 {
20612 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20613 }
20614 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20615 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20616 }
20617 }
20618
20619 next_offset += envelope_size;
20620 _next_ordinal_to_read += 1;
20621 if next_offset >= end_offset {
20622 return Ok(());
20623 }
20624
20625 while _next_ordinal_to_read < 7 {
20627 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20628 _next_ordinal_to_read += 1;
20629 next_offset += envelope_size;
20630 }
20631
20632 let next_out_of_line = decoder.next_out_of_line();
20633 let handles_before = decoder.remaining_handles();
20634 if let Some((inlined, num_bytes, num_handles)) =
20635 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20636 {
20637 let member_inline_size =
20638 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20639 if inlined != (member_inline_size <= 4) {
20640 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20641 }
20642 let inner_offset;
20643 let mut inner_depth = depth.clone();
20644 if inlined {
20645 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20646 inner_offset = next_offset;
20647 } else {
20648 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20649 inner_depth.increment()?;
20650 }
20651 let val_ref = self
20652 .packet_count_for_server_recommended
20653 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20654 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20655 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20656 {
20657 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20658 }
20659 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20660 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20661 }
20662 }
20663
20664 next_offset += envelope_size;
20665 _next_ordinal_to_read += 1;
20666 if next_offset >= end_offset {
20667 return Ok(());
20668 }
20669
20670 while _next_ordinal_to_read < 8 {
20672 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20673 _next_ordinal_to_read += 1;
20674 next_offset += envelope_size;
20675 }
20676
20677 let next_out_of_line = decoder.next_out_of_line();
20678 let handles_before = decoder.remaining_handles();
20679 if let Some((inlined, num_bytes, num_handles)) =
20680 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20681 {
20682 let member_inline_size =
20683 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20684 if inlined != (member_inline_size <= 4) {
20685 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20686 }
20687 let inner_offset;
20688 let mut inner_depth = depth.clone();
20689 if inlined {
20690 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20691 inner_offset = next_offset;
20692 } else {
20693 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20694 inner_depth.increment()?;
20695 }
20696 let val_ref = self
20697 .packet_count_for_server_recommended_max
20698 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20699 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20700 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20701 {
20702 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20703 }
20704 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20705 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20706 }
20707 }
20708
20709 next_offset += envelope_size;
20710 _next_ordinal_to_read += 1;
20711 if next_offset >= end_offset {
20712 return Ok(());
20713 }
20714
20715 while _next_ordinal_to_read < 9 {
20717 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20718 _next_ordinal_to_read += 1;
20719 next_offset += envelope_size;
20720 }
20721
20722 let next_out_of_line = decoder.next_out_of_line();
20723 let handles_before = decoder.remaining_handles();
20724 if let Some((inlined, num_bytes, num_handles)) =
20725 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20726 {
20727 let member_inline_size =
20728 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20729 if inlined != (member_inline_size <= 4) {
20730 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20731 }
20732 let inner_offset;
20733 let mut inner_depth = depth.clone();
20734 if inlined {
20735 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20736 inner_offset = next_offset;
20737 } else {
20738 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20739 inner_depth.increment()?;
20740 }
20741 let val_ref = self
20742 .packet_count_for_server_max
20743 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20744 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20745 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20746 {
20747 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20748 }
20749 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20750 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20751 }
20752 }
20753
20754 next_offset += envelope_size;
20755 _next_ordinal_to_read += 1;
20756 if next_offset >= end_offset {
20757 return Ok(());
20758 }
20759
20760 while _next_ordinal_to_read < 10 {
20762 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20763 _next_ordinal_to_read += 1;
20764 next_offset += envelope_size;
20765 }
20766
20767 let next_out_of_line = decoder.next_out_of_line();
20768 let handles_before = decoder.remaining_handles();
20769 if let Some((inlined, num_bytes, num_handles)) =
20770 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20771 {
20772 let member_inline_size =
20773 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20774 if inlined != (member_inline_size <= 4) {
20775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20776 }
20777 let inner_offset;
20778 let mut inner_depth = depth.clone();
20779 if inlined {
20780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20781 inner_offset = next_offset;
20782 } else {
20783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20784 inner_depth.increment()?;
20785 }
20786 let val_ref = self
20787 .packet_count_for_client_min
20788 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20789 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20791 {
20792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20793 }
20794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20796 }
20797 }
20798
20799 next_offset += envelope_size;
20800 _next_ordinal_to_read += 1;
20801 if next_offset >= end_offset {
20802 return Ok(());
20803 }
20804
20805 while _next_ordinal_to_read < 11 {
20807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20808 _next_ordinal_to_read += 1;
20809 next_offset += envelope_size;
20810 }
20811
20812 let next_out_of_line = decoder.next_out_of_line();
20813 let handles_before = decoder.remaining_handles();
20814 if let Some((inlined, num_bytes, num_handles)) =
20815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20816 {
20817 let member_inline_size =
20818 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20819 if inlined != (member_inline_size <= 4) {
20820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20821 }
20822 let inner_offset;
20823 let mut inner_depth = depth.clone();
20824 if inlined {
20825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20826 inner_offset = next_offset;
20827 } else {
20828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20829 inner_depth.increment()?;
20830 }
20831 let val_ref = self
20832 .packet_count_for_client_max
20833 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20834 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20835 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20836 {
20837 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20838 }
20839 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20840 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20841 }
20842 }
20843
20844 next_offset += envelope_size;
20845 _next_ordinal_to_read += 1;
20846 if next_offset >= end_offset {
20847 return Ok(());
20848 }
20849
20850 while _next_ordinal_to_read < 12 {
20852 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20853 _next_ordinal_to_read += 1;
20854 next_offset += envelope_size;
20855 }
20856
20857 let next_out_of_line = decoder.next_out_of_line();
20858 let handles_before = decoder.remaining_handles();
20859 if let Some((inlined, num_bytes, num_handles)) =
20860 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20861 {
20862 let member_inline_size =
20863 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20864 if inlined != (member_inline_size <= 4) {
20865 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20866 }
20867 let inner_offset;
20868 let mut inner_depth = depth.clone();
20869 if inlined {
20870 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20871 inner_offset = next_offset;
20872 } else {
20873 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20874 inner_depth.increment()?;
20875 }
20876 let val_ref = self
20877 .single_buffer_mode_allowed
20878 .get_or_insert_with(|| fidl::new_empty!(bool, D));
20879 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
20880 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20881 {
20882 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20883 }
20884 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20885 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20886 }
20887 }
20888
20889 next_offset += envelope_size;
20890 _next_ordinal_to_read += 1;
20891 if next_offset >= end_offset {
20892 return Ok(());
20893 }
20894
20895 while _next_ordinal_to_read < 13 {
20897 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20898 _next_ordinal_to_read += 1;
20899 next_offset += envelope_size;
20900 }
20901
20902 let next_out_of_line = decoder.next_out_of_line();
20903 let handles_before = decoder.remaining_handles();
20904 if let Some((inlined, num_bytes, num_handles)) =
20905 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20906 {
20907 let member_inline_size =
20908 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20909 if inlined != (member_inline_size <= 4) {
20910 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20911 }
20912 let inner_offset;
20913 let mut inner_depth = depth.clone();
20914 if inlined {
20915 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20916 inner_offset = next_offset;
20917 } else {
20918 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20919 inner_depth.increment()?;
20920 }
20921 let val_ref = self
20922 .is_physically_contiguous_required
20923 .get_or_insert_with(|| fidl::new_empty!(bool, D));
20924 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
20925 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20926 {
20927 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20928 }
20929 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20930 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20931 }
20932 }
20933
20934 next_offset += envelope_size;
20935
20936 while next_offset < end_offset {
20938 _next_ordinal_to_read += 1;
20939 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20940 next_offset += envelope_size;
20941 }
20942
20943 Ok(())
20944 }
20945 }
20946
20947 impl StreamBufferSettings {
20948 #[inline(always)]
20949 fn max_ordinal_present(&self) -> u64 {
20950 if let Some(_) = self.single_buffer_mode {
20951 return 6;
20952 }
20953 if let Some(_) = self.per_packet_buffer_bytes {
20954 return 5;
20955 }
20956 if let Some(_) = self.packet_count_for_client {
20957 return 4;
20958 }
20959 if let Some(_) = self.packet_count_for_server {
20960 return 3;
20961 }
20962 if let Some(_) = self.buffer_constraints_version_ordinal {
20963 return 2;
20964 }
20965 if let Some(_) = self.buffer_lifetime_ordinal {
20966 return 1;
20967 }
20968 0
20969 }
20970 }
20971
20972 impl fidl::encoding::ValueTypeMarker for StreamBufferSettings {
20973 type Borrowed<'a> = &'a Self;
20974 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20975 value
20976 }
20977 }
20978
20979 unsafe impl fidl::encoding::TypeMarker for StreamBufferSettings {
20980 type Owned = Self;
20981
20982 #[inline(always)]
20983 fn inline_align(_context: fidl::encoding::Context) -> usize {
20984 8
20985 }
20986
20987 #[inline(always)]
20988 fn inline_size(_context: fidl::encoding::Context) -> usize {
20989 16
20990 }
20991 }
20992
20993 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamBufferSettings, D>
20994 for &StreamBufferSettings
20995 {
20996 unsafe fn encode(
20997 self,
20998 encoder: &mut fidl::encoding::Encoder<'_, D>,
20999 offset: usize,
21000 mut depth: fidl::encoding::Depth,
21001 ) -> fidl::Result<()> {
21002 encoder.debug_check_bounds::<StreamBufferSettings>(offset);
21003 let max_ordinal: u64 = self.max_ordinal_present();
21005 encoder.write_num(max_ordinal, offset);
21006 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21007 if max_ordinal == 0 {
21009 return Ok(());
21010 }
21011 depth.increment()?;
21012 let envelope_size = 8;
21013 let bytes_len = max_ordinal as usize * envelope_size;
21014 #[allow(unused_variables)]
21015 let offset = encoder.out_of_line_offset(bytes_len);
21016 let mut _prev_end_offset: usize = 0;
21017 if 1 > max_ordinal {
21018 return Ok(());
21019 }
21020
21021 let cur_offset: usize = (1 - 1) * envelope_size;
21024
21025 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21027
21028 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21033 self.buffer_lifetime_ordinal
21034 .as_ref()
21035 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21036 encoder,
21037 offset + cur_offset,
21038 depth,
21039 )?;
21040
21041 _prev_end_offset = cur_offset + envelope_size;
21042 if 2 > max_ordinal {
21043 return Ok(());
21044 }
21045
21046 let cur_offset: usize = (2 - 1) * envelope_size;
21049
21050 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21052
21053 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21058 self.buffer_constraints_version_ordinal
21059 .as_ref()
21060 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21061 encoder,
21062 offset + cur_offset,
21063 depth,
21064 )?;
21065
21066 _prev_end_offset = cur_offset + envelope_size;
21067 if 3 > max_ordinal {
21068 return Ok(());
21069 }
21070
21071 let cur_offset: usize = (3 - 1) * envelope_size;
21074
21075 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21077
21078 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21083 self.packet_count_for_server
21084 .as_ref()
21085 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21086 encoder,
21087 offset + cur_offset,
21088 depth,
21089 )?;
21090
21091 _prev_end_offset = cur_offset + envelope_size;
21092 if 4 > max_ordinal {
21093 return Ok(());
21094 }
21095
21096 let cur_offset: usize = (4 - 1) * envelope_size;
21099
21100 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21102
21103 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21108 self.packet_count_for_client
21109 .as_ref()
21110 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21111 encoder,
21112 offset + cur_offset,
21113 depth,
21114 )?;
21115
21116 _prev_end_offset = cur_offset + envelope_size;
21117 if 5 > max_ordinal {
21118 return Ok(());
21119 }
21120
21121 let cur_offset: usize = (5 - 1) * envelope_size;
21124
21125 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21127
21128 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21133 self.per_packet_buffer_bytes
21134 .as_ref()
21135 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21136 encoder,
21137 offset + cur_offset,
21138 depth,
21139 )?;
21140
21141 _prev_end_offset = cur_offset + envelope_size;
21142 if 6 > max_ordinal {
21143 return Ok(());
21144 }
21145
21146 let cur_offset: usize = (6 - 1) * envelope_size;
21149
21150 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21152
21153 fidl::encoding::encode_in_envelope_optional::<bool, D>(
21158 self.single_buffer_mode
21159 .as_ref()
21160 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
21161 encoder,
21162 offset + cur_offset,
21163 depth,
21164 )?;
21165
21166 _prev_end_offset = cur_offset + envelope_size;
21167
21168 Ok(())
21169 }
21170 }
21171
21172 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamBufferSettings {
21173 #[inline(always)]
21174 fn new_empty() -> Self {
21175 Self::default()
21176 }
21177
21178 unsafe fn decode(
21179 &mut self,
21180 decoder: &mut fidl::encoding::Decoder<'_, D>,
21181 offset: usize,
21182 mut depth: fidl::encoding::Depth,
21183 ) -> fidl::Result<()> {
21184 decoder.debug_check_bounds::<Self>(offset);
21185 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21186 None => return Err(fidl::Error::NotNullable),
21187 Some(len) => len,
21188 };
21189 if len == 0 {
21191 return Ok(());
21192 };
21193 depth.increment()?;
21194 let envelope_size = 8;
21195 let bytes_len = len * envelope_size;
21196 let offset = decoder.out_of_line_offset(bytes_len)?;
21197 let mut _next_ordinal_to_read = 0;
21199 let mut next_offset = offset;
21200 let end_offset = offset + bytes_len;
21201 _next_ordinal_to_read += 1;
21202 if next_offset >= end_offset {
21203 return Ok(());
21204 }
21205
21206 while _next_ordinal_to_read < 1 {
21208 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21209 _next_ordinal_to_read += 1;
21210 next_offset += envelope_size;
21211 }
21212
21213 let next_out_of_line = decoder.next_out_of_line();
21214 let handles_before = decoder.remaining_handles();
21215 if let Some((inlined, num_bytes, num_handles)) =
21216 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21217 {
21218 let member_inline_size =
21219 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21220 if inlined != (member_inline_size <= 4) {
21221 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21222 }
21223 let inner_offset;
21224 let mut inner_depth = depth.clone();
21225 if inlined {
21226 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21227 inner_offset = next_offset;
21228 } else {
21229 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21230 inner_depth.increment()?;
21231 }
21232 let val_ref =
21233 self.buffer_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21234 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21235 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21236 {
21237 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21238 }
21239 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21240 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21241 }
21242 }
21243
21244 next_offset += envelope_size;
21245 _next_ordinal_to_read += 1;
21246 if next_offset >= end_offset {
21247 return Ok(());
21248 }
21249
21250 while _next_ordinal_to_read < 2 {
21252 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21253 _next_ordinal_to_read += 1;
21254 next_offset += envelope_size;
21255 }
21256
21257 let next_out_of_line = decoder.next_out_of_line();
21258 let handles_before = decoder.remaining_handles();
21259 if let Some((inlined, num_bytes, num_handles)) =
21260 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21261 {
21262 let member_inline_size =
21263 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21264 if inlined != (member_inline_size <= 4) {
21265 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21266 }
21267 let inner_offset;
21268 let mut inner_depth = depth.clone();
21269 if inlined {
21270 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21271 inner_offset = next_offset;
21272 } else {
21273 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21274 inner_depth.increment()?;
21275 }
21276 let val_ref = self
21277 .buffer_constraints_version_ordinal
21278 .get_or_insert_with(|| fidl::new_empty!(u64, D));
21279 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21280 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21281 {
21282 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21283 }
21284 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21285 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21286 }
21287 }
21288
21289 next_offset += envelope_size;
21290 _next_ordinal_to_read += 1;
21291 if next_offset >= end_offset {
21292 return Ok(());
21293 }
21294
21295 while _next_ordinal_to_read < 3 {
21297 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21298 _next_ordinal_to_read += 1;
21299 next_offset += envelope_size;
21300 }
21301
21302 let next_out_of_line = decoder.next_out_of_line();
21303 let handles_before = decoder.remaining_handles();
21304 if let Some((inlined, num_bytes, num_handles)) =
21305 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21306 {
21307 let member_inline_size =
21308 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21309 if inlined != (member_inline_size <= 4) {
21310 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21311 }
21312 let inner_offset;
21313 let mut inner_depth = depth.clone();
21314 if inlined {
21315 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21316 inner_offset = next_offset;
21317 } else {
21318 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21319 inner_depth.increment()?;
21320 }
21321 let val_ref =
21322 self.packet_count_for_server.get_or_insert_with(|| fidl::new_empty!(u32, D));
21323 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21324 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21325 {
21326 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21327 }
21328 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21329 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21330 }
21331 }
21332
21333 next_offset += envelope_size;
21334 _next_ordinal_to_read += 1;
21335 if next_offset >= end_offset {
21336 return Ok(());
21337 }
21338
21339 while _next_ordinal_to_read < 4 {
21341 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21342 _next_ordinal_to_read += 1;
21343 next_offset += envelope_size;
21344 }
21345
21346 let next_out_of_line = decoder.next_out_of_line();
21347 let handles_before = decoder.remaining_handles();
21348 if let Some((inlined, num_bytes, num_handles)) =
21349 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21350 {
21351 let member_inline_size =
21352 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21353 if inlined != (member_inline_size <= 4) {
21354 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21355 }
21356 let inner_offset;
21357 let mut inner_depth = depth.clone();
21358 if inlined {
21359 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21360 inner_offset = next_offset;
21361 } else {
21362 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21363 inner_depth.increment()?;
21364 }
21365 let val_ref =
21366 self.packet_count_for_client.get_or_insert_with(|| fidl::new_empty!(u32, D));
21367 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21368 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21369 {
21370 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21371 }
21372 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21373 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21374 }
21375 }
21376
21377 next_offset += envelope_size;
21378 _next_ordinal_to_read += 1;
21379 if next_offset >= end_offset {
21380 return Ok(());
21381 }
21382
21383 while _next_ordinal_to_read < 5 {
21385 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21386 _next_ordinal_to_read += 1;
21387 next_offset += envelope_size;
21388 }
21389
21390 let next_out_of_line = decoder.next_out_of_line();
21391 let handles_before = decoder.remaining_handles();
21392 if let Some((inlined, num_bytes, num_handles)) =
21393 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21394 {
21395 let member_inline_size =
21396 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21397 if inlined != (member_inline_size <= 4) {
21398 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21399 }
21400 let inner_offset;
21401 let mut inner_depth = depth.clone();
21402 if inlined {
21403 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21404 inner_offset = next_offset;
21405 } else {
21406 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21407 inner_depth.increment()?;
21408 }
21409 let val_ref =
21410 self.per_packet_buffer_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
21411 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21412 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21413 {
21414 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21415 }
21416 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21417 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21418 }
21419 }
21420
21421 next_offset += envelope_size;
21422 _next_ordinal_to_read += 1;
21423 if next_offset >= end_offset {
21424 return Ok(());
21425 }
21426
21427 while _next_ordinal_to_read < 6 {
21429 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21430 _next_ordinal_to_read += 1;
21431 next_offset += envelope_size;
21432 }
21433
21434 let next_out_of_line = decoder.next_out_of_line();
21435 let handles_before = decoder.remaining_handles();
21436 if let Some((inlined, num_bytes, num_handles)) =
21437 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21438 {
21439 let member_inline_size =
21440 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21441 if inlined != (member_inline_size <= 4) {
21442 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21443 }
21444 let inner_offset;
21445 let mut inner_depth = depth.clone();
21446 if inlined {
21447 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21448 inner_offset = next_offset;
21449 } else {
21450 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21451 inner_depth.increment()?;
21452 }
21453 let val_ref =
21454 self.single_buffer_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
21455 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
21456 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21457 {
21458 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21459 }
21460 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21461 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21462 }
21463 }
21464
21465 next_offset += envelope_size;
21466
21467 while next_offset < end_offset {
21469 _next_ordinal_to_read += 1;
21470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21471 next_offset += envelope_size;
21472 }
21473
21474 Ok(())
21475 }
21476 }
21477
21478 impl StreamOutputConstraints {
21479 #[inline(always)]
21480 fn max_ordinal_present(&self) -> u64 {
21481 if let Some(_) = self.buffer_constraints {
21482 return 3;
21483 }
21484 if let Some(_) = self.buffer_constraints_action_required {
21485 return 2;
21486 }
21487 if let Some(_) = self.stream_lifetime_ordinal {
21488 return 1;
21489 }
21490 0
21491 }
21492 }
21493
21494 impl fidl::encoding::ValueTypeMarker for StreamOutputConstraints {
21495 type Borrowed<'a> = &'a Self;
21496 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21497 value
21498 }
21499 }
21500
21501 unsafe impl fidl::encoding::TypeMarker for StreamOutputConstraints {
21502 type Owned = Self;
21503
21504 #[inline(always)]
21505 fn inline_align(_context: fidl::encoding::Context) -> usize {
21506 8
21507 }
21508
21509 #[inline(always)]
21510 fn inline_size(_context: fidl::encoding::Context) -> usize {
21511 16
21512 }
21513 }
21514
21515 unsafe impl<D: fidl::encoding::ResourceDialect>
21516 fidl::encoding::Encode<StreamOutputConstraints, D> for &StreamOutputConstraints
21517 {
21518 unsafe fn encode(
21519 self,
21520 encoder: &mut fidl::encoding::Encoder<'_, D>,
21521 offset: usize,
21522 mut depth: fidl::encoding::Depth,
21523 ) -> fidl::Result<()> {
21524 encoder.debug_check_bounds::<StreamOutputConstraints>(offset);
21525 let max_ordinal: u64 = self.max_ordinal_present();
21527 encoder.write_num(max_ordinal, offset);
21528 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21529 if max_ordinal == 0 {
21531 return Ok(());
21532 }
21533 depth.increment()?;
21534 let envelope_size = 8;
21535 let bytes_len = max_ordinal as usize * envelope_size;
21536 #[allow(unused_variables)]
21537 let offset = encoder.out_of_line_offset(bytes_len);
21538 let mut _prev_end_offset: usize = 0;
21539 if 1 > max_ordinal {
21540 return Ok(());
21541 }
21542
21543 let cur_offset: usize = (1 - 1) * envelope_size;
21546
21547 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21549
21550 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21555 self.stream_lifetime_ordinal
21556 .as_ref()
21557 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21558 encoder,
21559 offset + cur_offset,
21560 depth,
21561 )?;
21562
21563 _prev_end_offset = cur_offset + envelope_size;
21564 if 2 > max_ordinal {
21565 return Ok(());
21566 }
21567
21568 let cur_offset: usize = (2 - 1) * envelope_size;
21571
21572 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21574
21575 fidl::encoding::encode_in_envelope_optional::<bool, D>(
21580 self.buffer_constraints_action_required
21581 .as_ref()
21582 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
21583 encoder,
21584 offset + cur_offset,
21585 depth,
21586 )?;
21587
21588 _prev_end_offset = cur_offset + envelope_size;
21589 if 3 > max_ordinal {
21590 return Ok(());
21591 }
21592
21593 let cur_offset: usize = (3 - 1) * envelope_size;
21596
21597 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21599
21600 fidl::encoding::encode_in_envelope_optional::<StreamBufferConstraints, D>(
21605 self.buffer_constraints
21606 .as_ref()
21607 .map(<StreamBufferConstraints as fidl::encoding::ValueTypeMarker>::borrow),
21608 encoder,
21609 offset + cur_offset,
21610 depth,
21611 )?;
21612
21613 _prev_end_offset = cur_offset + envelope_size;
21614
21615 Ok(())
21616 }
21617 }
21618
21619 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
21620 for StreamOutputConstraints
21621 {
21622 #[inline(always)]
21623 fn new_empty() -> Self {
21624 Self::default()
21625 }
21626
21627 unsafe fn decode(
21628 &mut self,
21629 decoder: &mut fidl::encoding::Decoder<'_, D>,
21630 offset: usize,
21631 mut depth: fidl::encoding::Depth,
21632 ) -> fidl::Result<()> {
21633 decoder.debug_check_bounds::<Self>(offset);
21634 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21635 None => return Err(fidl::Error::NotNullable),
21636 Some(len) => len,
21637 };
21638 if len == 0 {
21640 return Ok(());
21641 };
21642 depth.increment()?;
21643 let envelope_size = 8;
21644 let bytes_len = len * envelope_size;
21645 let offset = decoder.out_of_line_offset(bytes_len)?;
21646 let mut _next_ordinal_to_read = 0;
21648 let mut next_offset = offset;
21649 let end_offset = offset + bytes_len;
21650 _next_ordinal_to_read += 1;
21651 if next_offset >= end_offset {
21652 return Ok(());
21653 }
21654
21655 while _next_ordinal_to_read < 1 {
21657 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21658 _next_ordinal_to_read += 1;
21659 next_offset += envelope_size;
21660 }
21661
21662 let next_out_of_line = decoder.next_out_of_line();
21663 let handles_before = decoder.remaining_handles();
21664 if let Some((inlined, num_bytes, num_handles)) =
21665 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21666 {
21667 let member_inline_size =
21668 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21669 if inlined != (member_inline_size <= 4) {
21670 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21671 }
21672 let inner_offset;
21673 let mut inner_depth = depth.clone();
21674 if inlined {
21675 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21676 inner_offset = next_offset;
21677 } else {
21678 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21679 inner_depth.increment()?;
21680 }
21681 let val_ref =
21682 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21683 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21684 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21685 {
21686 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21687 }
21688 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21689 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21690 }
21691 }
21692
21693 next_offset += envelope_size;
21694 _next_ordinal_to_read += 1;
21695 if next_offset >= end_offset {
21696 return Ok(());
21697 }
21698
21699 while _next_ordinal_to_read < 2 {
21701 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21702 _next_ordinal_to_read += 1;
21703 next_offset += envelope_size;
21704 }
21705
21706 let next_out_of_line = decoder.next_out_of_line();
21707 let handles_before = decoder.remaining_handles();
21708 if let Some((inlined, num_bytes, num_handles)) =
21709 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21710 {
21711 let member_inline_size =
21712 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21713 if inlined != (member_inline_size <= 4) {
21714 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21715 }
21716 let inner_offset;
21717 let mut inner_depth = depth.clone();
21718 if inlined {
21719 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21720 inner_offset = next_offset;
21721 } else {
21722 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21723 inner_depth.increment()?;
21724 }
21725 let val_ref = self
21726 .buffer_constraints_action_required
21727 .get_or_insert_with(|| fidl::new_empty!(bool, D));
21728 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
21729 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21730 {
21731 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21732 }
21733 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21734 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21735 }
21736 }
21737
21738 next_offset += envelope_size;
21739 _next_ordinal_to_read += 1;
21740 if next_offset >= end_offset {
21741 return Ok(());
21742 }
21743
21744 while _next_ordinal_to_read < 3 {
21746 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21747 _next_ordinal_to_read += 1;
21748 next_offset += envelope_size;
21749 }
21750
21751 let next_out_of_line = decoder.next_out_of_line();
21752 let handles_before = decoder.remaining_handles();
21753 if let Some((inlined, num_bytes, num_handles)) =
21754 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21755 {
21756 let member_inline_size =
21757 <StreamBufferConstraints as fidl::encoding::TypeMarker>::inline_size(
21758 decoder.context,
21759 );
21760 if inlined != (member_inline_size <= 4) {
21761 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21762 }
21763 let inner_offset;
21764 let mut inner_depth = depth.clone();
21765 if inlined {
21766 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21767 inner_offset = next_offset;
21768 } else {
21769 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21770 inner_depth.increment()?;
21771 }
21772 let val_ref = self
21773 .buffer_constraints
21774 .get_or_insert_with(|| fidl::new_empty!(StreamBufferConstraints, D));
21775 fidl::decode!(
21776 StreamBufferConstraints,
21777 D,
21778 val_ref,
21779 decoder,
21780 inner_offset,
21781 inner_depth
21782 )?;
21783 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21784 {
21785 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21786 }
21787 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21788 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21789 }
21790 }
21791
21792 next_offset += envelope_size;
21793
21794 while next_offset < end_offset {
21796 _next_ordinal_to_read += 1;
21797 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21798 next_offset += envelope_size;
21799 }
21800
21801 Ok(())
21802 }
21803 }
21804
21805 impl StreamOutputFormat {
21806 #[inline(always)]
21807 fn max_ordinal_present(&self) -> u64 {
21808 if let Some(_) = self.format_details {
21809 return 2;
21810 }
21811 if let Some(_) = self.stream_lifetime_ordinal {
21812 return 1;
21813 }
21814 0
21815 }
21816 }
21817
21818 impl fidl::encoding::ValueTypeMarker for StreamOutputFormat {
21819 type Borrowed<'a> = &'a Self;
21820 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21821 value
21822 }
21823 }
21824
21825 unsafe impl fidl::encoding::TypeMarker for StreamOutputFormat {
21826 type Owned = Self;
21827
21828 #[inline(always)]
21829 fn inline_align(_context: fidl::encoding::Context) -> usize {
21830 8
21831 }
21832
21833 #[inline(always)]
21834 fn inline_size(_context: fidl::encoding::Context) -> usize {
21835 16
21836 }
21837 }
21838
21839 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamOutputFormat, D>
21840 for &StreamOutputFormat
21841 {
21842 unsafe fn encode(
21843 self,
21844 encoder: &mut fidl::encoding::Encoder<'_, D>,
21845 offset: usize,
21846 mut depth: fidl::encoding::Depth,
21847 ) -> fidl::Result<()> {
21848 encoder.debug_check_bounds::<StreamOutputFormat>(offset);
21849 let max_ordinal: u64 = self.max_ordinal_present();
21851 encoder.write_num(max_ordinal, offset);
21852 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21853 if max_ordinal == 0 {
21855 return Ok(());
21856 }
21857 depth.increment()?;
21858 let envelope_size = 8;
21859 let bytes_len = max_ordinal as usize * envelope_size;
21860 #[allow(unused_variables)]
21861 let offset = encoder.out_of_line_offset(bytes_len);
21862 let mut _prev_end_offset: usize = 0;
21863 if 1 > max_ordinal {
21864 return Ok(());
21865 }
21866
21867 let cur_offset: usize = (1 - 1) * envelope_size;
21870
21871 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21873
21874 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21879 self.stream_lifetime_ordinal
21880 .as_ref()
21881 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21882 encoder,
21883 offset + cur_offset,
21884 depth,
21885 )?;
21886
21887 _prev_end_offset = cur_offset + envelope_size;
21888 if 2 > max_ordinal {
21889 return Ok(());
21890 }
21891
21892 let cur_offset: usize = (2 - 1) * envelope_size;
21895
21896 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21898
21899 fidl::encoding::encode_in_envelope_optional::<FormatDetails, D>(
21904 self.format_details
21905 .as_ref()
21906 .map(<FormatDetails as fidl::encoding::ValueTypeMarker>::borrow),
21907 encoder,
21908 offset + cur_offset,
21909 depth,
21910 )?;
21911
21912 _prev_end_offset = cur_offset + envelope_size;
21913
21914 Ok(())
21915 }
21916 }
21917
21918 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamOutputFormat {
21919 #[inline(always)]
21920 fn new_empty() -> Self {
21921 Self::default()
21922 }
21923
21924 unsafe fn decode(
21925 &mut self,
21926 decoder: &mut fidl::encoding::Decoder<'_, D>,
21927 offset: usize,
21928 mut depth: fidl::encoding::Depth,
21929 ) -> fidl::Result<()> {
21930 decoder.debug_check_bounds::<Self>(offset);
21931 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21932 None => return Err(fidl::Error::NotNullable),
21933 Some(len) => len,
21934 };
21935 if len == 0 {
21937 return Ok(());
21938 };
21939 depth.increment()?;
21940 let envelope_size = 8;
21941 let bytes_len = len * envelope_size;
21942 let offset = decoder.out_of_line_offset(bytes_len)?;
21943 let mut _next_ordinal_to_read = 0;
21945 let mut next_offset = offset;
21946 let end_offset = offset + bytes_len;
21947 _next_ordinal_to_read += 1;
21948 if next_offset >= end_offset {
21949 return Ok(());
21950 }
21951
21952 while _next_ordinal_to_read < 1 {
21954 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21955 _next_ordinal_to_read += 1;
21956 next_offset += envelope_size;
21957 }
21958
21959 let next_out_of_line = decoder.next_out_of_line();
21960 let handles_before = decoder.remaining_handles();
21961 if let Some((inlined, num_bytes, num_handles)) =
21962 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21963 {
21964 let member_inline_size =
21965 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21966 if inlined != (member_inline_size <= 4) {
21967 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21968 }
21969 let inner_offset;
21970 let mut inner_depth = depth.clone();
21971 if inlined {
21972 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21973 inner_offset = next_offset;
21974 } else {
21975 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21976 inner_depth.increment()?;
21977 }
21978 let val_ref =
21979 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21980 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21981 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21982 {
21983 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21984 }
21985 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21986 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21987 }
21988 }
21989
21990 next_offset += envelope_size;
21991 _next_ordinal_to_read += 1;
21992 if next_offset >= end_offset {
21993 return Ok(());
21994 }
21995
21996 while _next_ordinal_to_read < 2 {
21998 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21999 _next_ordinal_to_read += 1;
22000 next_offset += envelope_size;
22001 }
22002
22003 let next_out_of_line = decoder.next_out_of_line();
22004 let handles_before = decoder.remaining_handles();
22005 if let Some((inlined, num_bytes, num_handles)) =
22006 fidl::encoding::decode_envelope_header(decoder, next_offset)?
22007 {
22008 let member_inline_size =
22009 <FormatDetails as fidl::encoding::TypeMarker>::inline_size(decoder.context);
22010 if inlined != (member_inline_size <= 4) {
22011 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22012 }
22013 let inner_offset;
22014 let mut inner_depth = depth.clone();
22015 if inlined {
22016 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
22017 inner_offset = next_offset;
22018 } else {
22019 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22020 inner_depth.increment()?;
22021 }
22022 let val_ref =
22023 self.format_details.get_or_insert_with(|| fidl::new_empty!(FormatDetails, D));
22024 fidl::decode!(FormatDetails, D, val_ref, decoder, inner_offset, inner_depth)?;
22025 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
22026 {
22027 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22028 }
22029 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22030 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22031 }
22032 }
22033
22034 next_offset += envelope_size;
22035
22036 while next_offset < end_offset {
22038 _next_ordinal_to_read += 1;
22039 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22040 next_offset += envelope_size;
22041 }
22042
22043 Ok(())
22044 }
22045 }
22046
22047 impl UsageStateDucked {
22048 #[inline(always)]
22049 fn max_ordinal_present(&self) -> u64 {
22050 0
22051 }
22052 }
22053
22054 impl fidl::encoding::ValueTypeMarker for UsageStateDucked {
22055 type Borrowed<'a> = &'a Self;
22056 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22057 value
22058 }
22059 }
22060
22061 unsafe impl fidl::encoding::TypeMarker for UsageStateDucked {
22062 type Owned = Self;
22063
22064 #[inline(always)]
22065 fn inline_align(_context: fidl::encoding::Context) -> usize {
22066 8
22067 }
22068
22069 #[inline(always)]
22070 fn inline_size(_context: fidl::encoding::Context) -> usize {
22071 16
22072 }
22073 }
22074
22075 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateDucked, D>
22076 for &UsageStateDucked
22077 {
22078 unsafe fn encode(
22079 self,
22080 encoder: &mut fidl::encoding::Encoder<'_, D>,
22081 offset: usize,
22082 mut depth: fidl::encoding::Depth,
22083 ) -> fidl::Result<()> {
22084 encoder.debug_check_bounds::<UsageStateDucked>(offset);
22085 let max_ordinal: u64 = self.max_ordinal_present();
22087 encoder.write_num(max_ordinal, offset);
22088 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22089 if max_ordinal == 0 {
22091 return Ok(());
22092 }
22093 depth.increment()?;
22094 let envelope_size = 8;
22095 let bytes_len = max_ordinal as usize * envelope_size;
22096 #[allow(unused_variables)]
22097 let offset = encoder.out_of_line_offset(bytes_len);
22098 let mut _prev_end_offset: usize = 0;
22099
22100 Ok(())
22101 }
22102 }
22103
22104 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateDucked {
22105 #[inline(always)]
22106 fn new_empty() -> Self {
22107 Self::default()
22108 }
22109
22110 unsafe fn decode(
22111 &mut self,
22112 decoder: &mut fidl::encoding::Decoder<'_, D>,
22113 offset: usize,
22114 mut depth: fidl::encoding::Depth,
22115 ) -> fidl::Result<()> {
22116 decoder.debug_check_bounds::<Self>(offset);
22117 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22118 None => return Err(fidl::Error::NotNullable),
22119 Some(len) => len,
22120 };
22121 if len == 0 {
22123 return Ok(());
22124 };
22125 depth.increment()?;
22126 let envelope_size = 8;
22127 let bytes_len = len * envelope_size;
22128 let offset = decoder.out_of_line_offset(bytes_len)?;
22129 let mut _next_ordinal_to_read = 0;
22131 let mut next_offset = offset;
22132 let end_offset = offset + bytes_len;
22133
22134 while next_offset < end_offset {
22136 _next_ordinal_to_read += 1;
22137 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22138 next_offset += envelope_size;
22139 }
22140
22141 Ok(())
22142 }
22143 }
22144
22145 impl UsageStateMuted {
22146 #[inline(always)]
22147 fn max_ordinal_present(&self) -> u64 {
22148 0
22149 }
22150 }
22151
22152 impl fidl::encoding::ValueTypeMarker for UsageStateMuted {
22153 type Borrowed<'a> = &'a Self;
22154 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22155 value
22156 }
22157 }
22158
22159 unsafe impl fidl::encoding::TypeMarker for UsageStateMuted {
22160 type Owned = Self;
22161
22162 #[inline(always)]
22163 fn inline_align(_context: fidl::encoding::Context) -> usize {
22164 8
22165 }
22166
22167 #[inline(always)]
22168 fn inline_size(_context: fidl::encoding::Context) -> usize {
22169 16
22170 }
22171 }
22172
22173 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateMuted, D>
22174 for &UsageStateMuted
22175 {
22176 unsafe fn encode(
22177 self,
22178 encoder: &mut fidl::encoding::Encoder<'_, D>,
22179 offset: usize,
22180 mut depth: fidl::encoding::Depth,
22181 ) -> fidl::Result<()> {
22182 encoder.debug_check_bounds::<UsageStateMuted>(offset);
22183 let max_ordinal: u64 = self.max_ordinal_present();
22185 encoder.write_num(max_ordinal, offset);
22186 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22187 if max_ordinal == 0 {
22189 return Ok(());
22190 }
22191 depth.increment()?;
22192 let envelope_size = 8;
22193 let bytes_len = max_ordinal as usize * envelope_size;
22194 #[allow(unused_variables)]
22195 let offset = encoder.out_of_line_offset(bytes_len);
22196 let mut _prev_end_offset: usize = 0;
22197
22198 Ok(())
22199 }
22200 }
22201
22202 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateMuted {
22203 #[inline(always)]
22204 fn new_empty() -> Self {
22205 Self::default()
22206 }
22207
22208 unsafe fn decode(
22209 &mut self,
22210 decoder: &mut fidl::encoding::Decoder<'_, D>,
22211 offset: usize,
22212 mut depth: fidl::encoding::Depth,
22213 ) -> fidl::Result<()> {
22214 decoder.debug_check_bounds::<Self>(offset);
22215 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22216 None => return Err(fidl::Error::NotNullable),
22217 Some(len) => len,
22218 };
22219 if len == 0 {
22221 return Ok(());
22222 };
22223 depth.increment()?;
22224 let envelope_size = 8;
22225 let bytes_len = len * envelope_size;
22226 let offset = decoder.out_of_line_offset(bytes_len)?;
22227 let mut _next_ordinal_to_read = 0;
22229 let mut next_offset = offset;
22230 let end_offset = offset + bytes_len;
22231
22232 while next_offset < end_offset {
22234 _next_ordinal_to_read += 1;
22235 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22236 next_offset += envelope_size;
22237 }
22238
22239 Ok(())
22240 }
22241 }
22242
22243 impl UsageStateUnadjusted {
22244 #[inline(always)]
22245 fn max_ordinal_present(&self) -> u64 {
22246 0
22247 }
22248 }
22249
22250 impl fidl::encoding::ValueTypeMarker for UsageStateUnadjusted {
22251 type Borrowed<'a> = &'a Self;
22252 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22253 value
22254 }
22255 }
22256
22257 unsafe impl fidl::encoding::TypeMarker for UsageStateUnadjusted {
22258 type Owned = Self;
22259
22260 #[inline(always)]
22261 fn inline_align(_context: fidl::encoding::Context) -> usize {
22262 8
22263 }
22264
22265 #[inline(always)]
22266 fn inline_size(_context: fidl::encoding::Context) -> usize {
22267 16
22268 }
22269 }
22270
22271 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateUnadjusted, D>
22272 for &UsageStateUnadjusted
22273 {
22274 unsafe fn encode(
22275 self,
22276 encoder: &mut fidl::encoding::Encoder<'_, D>,
22277 offset: usize,
22278 mut depth: fidl::encoding::Depth,
22279 ) -> fidl::Result<()> {
22280 encoder.debug_check_bounds::<UsageStateUnadjusted>(offset);
22281 let max_ordinal: u64 = self.max_ordinal_present();
22283 encoder.write_num(max_ordinal, offset);
22284 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22285 if max_ordinal == 0 {
22287 return Ok(());
22288 }
22289 depth.increment()?;
22290 let envelope_size = 8;
22291 let bytes_len = max_ordinal as usize * envelope_size;
22292 #[allow(unused_variables)]
22293 let offset = encoder.out_of_line_offset(bytes_len);
22294 let mut _prev_end_offset: usize = 0;
22295
22296 Ok(())
22297 }
22298 }
22299
22300 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateUnadjusted {
22301 #[inline(always)]
22302 fn new_empty() -> Self {
22303 Self::default()
22304 }
22305
22306 unsafe fn decode(
22307 &mut self,
22308 decoder: &mut fidl::encoding::Decoder<'_, D>,
22309 offset: usize,
22310 mut depth: fidl::encoding::Depth,
22311 ) -> fidl::Result<()> {
22312 decoder.debug_check_bounds::<Self>(offset);
22313 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22314 None => return Err(fidl::Error::NotNullable),
22315 Some(len) => len,
22316 };
22317 if len == 0 {
22319 return Ok(());
22320 };
22321 depth.increment()?;
22322 let envelope_size = 8;
22323 let bytes_len = len * envelope_size;
22324 let offset = decoder.out_of_line_offset(bytes_len)?;
22325 let mut _next_ordinal_to_read = 0;
22327 let mut next_offset = offset;
22328 let end_offset = offset + bytes_len;
22329
22330 while next_offset < end_offset {
22332 _next_ordinal_to_read += 1;
22333 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22334 next_offset += envelope_size;
22335 }
22336
22337 Ok(())
22338 }
22339 }
22340
22341 impl fidl::encoding::ValueTypeMarker for AacBitRate {
22342 type Borrowed<'a> = &'a Self;
22343 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22344 value
22345 }
22346 }
22347
22348 unsafe impl fidl::encoding::TypeMarker for AacBitRate {
22349 type Owned = Self;
22350
22351 #[inline(always)]
22352 fn inline_align(_context: fidl::encoding::Context) -> usize {
22353 8
22354 }
22355
22356 #[inline(always)]
22357 fn inline_size(_context: fidl::encoding::Context) -> usize {
22358 16
22359 }
22360 }
22361
22362 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacBitRate, D>
22363 for &AacBitRate
22364 {
22365 #[inline]
22366 unsafe fn encode(
22367 self,
22368 encoder: &mut fidl::encoding::Encoder<'_, D>,
22369 offset: usize,
22370 _depth: fidl::encoding::Depth,
22371 ) -> fidl::Result<()> {
22372 encoder.debug_check_bounds::<AacBitRate>(offset);
22373 encoder.write_num::<u64>(self.ordinal(), offset);
22374 match self {
22375 AacBitRate::Constant(ref val) => {
22376 fidl::encoding::encode_in_envelope::<AacConstantBitRate, D>(
22377 <AacConstantBitRate as fidl::encoding::ValueTypeMarker>::borrow(val),
22378 encoder,
22379 offset + 8,
22380 _depth,
22381 )
22382 }
22383 AacBitRate::Variable(ref val) => {
22384 fidl::encoding::encode_in_envelope::<AacVariableBitRate, D>(
22385 <AacVariableBitRate as fidl::encoding::ValueTypeMarker>::borrow(val),
22386 encoder,
22387 offset + 8,
22388 _depth,
22389 )
22390 }
22391 }
22392 }
22393 }
22394
22395 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacBitRate {
22396 #[inline(always)]
22397 fn new_empty() -> Self {
22398 Self::Constant(fidl::new_empty!(AacConstantBitRate, D))
22399 }
22400
22401 #[inline]
22402 unsafe fn decode(
22403 &mut self,
22404 decoder: &mut fidl::encoding::Decoder<'_, D>,
22405 offset: usize,
22406 mut depth: fidl::encoding::Depth,
22407 ) -> fidl::Result<()> {
22408 decoder.debug_check_bounds::<Self>(offset);
22409 #[allow(unused_variables)]
22410 let next_out_of_line = decoder.next_out_of_line();
22411 let handles_before = decoder.remaining_handles();
22412 let (ordinal, inlined, num_bytes, num_handles) =
22413 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22414
22415 let member_inline_size = match ordinal {
22416 1 => {
22417 <AacConstantBitRate as fidl::encoding::TypeMarker>::inline_size(decoder.context)
22418 }
22419 2 => {
22420 <AacVariableBitRate as fidl::encoding::TypeMarker>::inline_size(decoder.context)
22421 }
22422 _ => return Err(fidl::Error::UnknownUnionTag),
22423 };
22424
22425 if inlined != (member_inline_size <= 4) {
22426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22427 }
22428 let _inner_offset;
22429 if inlined {
22430 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22431 _inner_offset = offset + 8;
22432 } else {
22433 depth.increment()?;
22434 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22435 }
22436 match ordinal {
22437 1 => {
22438 #[allow(irrefutable_let_patterns)]
22439 if let AacBitRate::Constant(_) = self {
22440 } else {
22442 *self = AacBitRate::Constant(fidl::new_empty!(AacConstantBitRate, D));
22444 }
22445 #[allow(irrefutable_let_patterns)]
22446 if let AacBitRate::Constant(ref mut val) = self {
22447 fidl::decode!(AacConstantBitRate, D, val, decoder, _inner_offset, depth)?;
22448 } else {
22449 unreachable!()
22450 }
22451 }
22452 2 => {
22453 #[allow(irrefutable_let_patterns)]
22454 if let AacBitRate::Variable(_) = self {
22455 } else {
22457 *self = AacBitRate::Variable(fidl::new_empty!(AacVariableBitRate, D));
22459 }
22460 #[allow(irrefutable_let_patterns)]
22461 if let AacBitRate::Variable(ref mut val) = self {
22462 fidl::decode!(AacVariableBitRate, D, val, decoder, _inner_offset, depth)?;
22463 } else {
22464 unreachable!()
22465 }
22466 }
22467 ordinal => panic!("unexpected ordinal {:?}", ordinal),
22468 }
22469 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22470 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22471 }
22472 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22473 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22474 }
22475 Ok(())
22476 }
22477 }
22478
22479 impl fidl::encoding::ValueTypeMarker for AacTransport {
22480 type Borrowed<'a> = &'a Self;
22481 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22482 value
22483 }
22484 }
22485
22486 unsafe impl fidl::encoding::TypeMarker for AacTransport {
22487 type Owned = Self;
22488
22489 #[inline(always)]
22490 fn inline_align(_context: fidl::encoding::Context) -> usize {
22491 8
22492 }
22493
22494 #[inline(always)]
22495 fn inline_size(_context: fidl::encoding::Context) -> usize {
22496 16
22497 }
22498 }
22499
22500 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransport, D>
22501 for &AacTransport
22502 {
22503 #[inline]
22504 unsafe fn encode(
22505 self,
22506 encoder: &mut fidl::encoding::Encoder<'_, D>,
22507 offset: usize,
22508 _depth: fidl::encoding::Depth,
22509 ) -> fidl::Result<()> {
22510 encoder.debug_check_bounds::<AacTransport>(offset);
22511 encoder.write_num::<u64>(self.ordinal(), offset);
22512 match self {
22513 AacTransport::Raw(ref val) => {
22514 fidl::encoding::encode_in_envelope::<AacTransportRaw, D>(
22515 <AacTransportRaw as fidl::encoding::ValueTypeMarker>::borrow(val),
22516 encoder,
22517 offset + 8,
22518 _depth,
22519 )
22520 }
22521 AacTransport::Latm(ref val) => {
22522 fidl::encoding::encode_in_envelope::<AacTransportLatm, D>(
22523 <AacTransportLatm as fidl::encoding::ValueTypeMarker>::borrow(val),
22524 encoder,
22525 offset + 8,
22526 _depth,
22527 )
22528 }
22529 AacTransport::Adts(ref val) => {
22530 fidl::encoding::encode_in_envelope::<AacTransportAdts, D>(
22531 <AacTransportAdts as fidl::encoding::ValueTypeMarker>::borrow(val),
22532 encoder,
22533 offset + 8,
22534 _depth,
22535 )
22536 }
22537 AacTransport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
22538 }
22539 }
22540 }
22541
22542 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransport {
22543 #[inline(always)]
22544 fn new_empty() -> Self {
22545 Self::__SourceBreaking { unknown_ordinal: 0 }
22546 }
22547
22548 #[inline]
22549 unsafe fn decode(
22550 &mut self,
22551 decoder: &mut fidl::encoding::Decoder<'_, D>,
22552 offset: usize,
22553 mut depth: fidl::encoding::Depth,
22554 ) -> fidl::Result<()> {
22555 decoder.debug_check_bounds::<Self>(offset);
22556 #[allow(unused_variables)]
22557 let next_out_of_line = decoder.next_out_of_line();
22558 let handles_before = decoder.remaining_handles();
22559 let (ordinal, inlined, num_bytes, num_handles) =
22560 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22561
22562 let member_inline_size = match ordinal {
22563 1 => <AacTransportRaw as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22564 2 => <AacTransportLatm as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22565 3 => <AacTransportAdts as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22566 0 => return Err(fidl::Error::UnknownUnionTag),
22567 _ => num_bytes as usize,
22568 };
22569
22570 if inlined != (member_inline_size <= 4) {
22571 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22572 }
22573 let _inner_offset;
22574 if inlined {
22575 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22576 _inner_offset = offset + 8;
22577 } else {
22578 depth.increment()?;
22579 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22580 }
22581 match ordinal {
22582 1 => {
22583 #[allow(irrefutable_let_patterns)]
22584 if let AacTransport::Raw(_) = self {
22585 } else {
22587 *self = AacTransport::Raw(fidl::new_empty!(AacTransportRaw, D));
22589 }
22590 #[allow(irrefutable_let_patterns)]
22591 if let AacTransport::Raw(ref mut val) = self {
22592 fidl::decode!(AacTransportRaw, D, val, decoder, _inner_offset, depth)?;
22593 } else {
22594 unreachable!()
22595 }
22596 }
22597 2 => {
22598 #[allow(irrefutable_let_patterns)]
22599 if let AacTransport::Latm(_) = self {
22600 } else {
22602 *self = AacTransport::Latm(fidl::new_empty!(AacTransportLatm, D));
22604 }
22605 #[allow(irrefutable_let_patterns)]
22606 if let AacTransport::Latm(ref mut val) = self {
22607 fidl::decode!(AacTransportLatm, D, val, decoder, _inner_offset, depth)?;
22608 } else {
22609 unreachable!()
22610 }
22611 }
22612 3 => {
22613 #[allow(irrefutable_let_patterns)]
22614 if let AacTransport::Adts(_) = self {
22615 } else {
22617 *self = AacTransport::Adts(fidl::new_empty!(AacTransportAdts, D));
22619 }
22620 #[allow(irrefutable_let_patterns)]
22621 if let AacTransport::Adts(ref mut val) = self {
22622 fidl::decode!(AacTransportAdts, D, val, decoder, _inner_offset, depth)?;
22623 } else {
22624 unreachable!()
22625 }
22626 }
22627 #[allow(deprecated)]
22628 ordinal => {
22629 for _ in 0..num_handles {
22630 decoder.drop_next_handle()?;
22631 }
22632 *self = AacTransport::__SourceBreaking { unknown_ordinal: ordinal };
22633 }
22634 }
22635 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22636 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22637 }
22638 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22639 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22640 }
22641 Ok(())
22642 }
22643 }
22644
22645 impl fidl::encoding::ValueTypeMarker for AudioCapturerConfiguration {
22646 type Borrowed<'a> = &'a Self;
22647 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22648 value
22649 }
22650 }
22651
22652 unsafe impl fidl::encoding::TypeMarker for AudioCapturerConfiguration {
22653 type Owned = Self;
22654
22655 #[inline(always)]
22656 fn inline_align(_context: fidl::encoding::Context) -> usize {
22657 8
22658 }
22659
22660 #[inline(always)]
22661 fn inline_size(_context: fidl::encoding::Context) -> usize {
22662 16
22663 }
22664 }
22665
22666 unsafe impl<D: fidl::encoding::ResourceDialect>
22667 fidl::encoding::Encode<AudioCapturerConfiguration, D> for &AudioCapturerConfiguration
22668 {
22669 #[inline]
22670 unsafe fn encode(
22671 self,
22672 encoder: &mut fidl::encoding::Encoder<'_, D>,
22673 offset: usize,
22674 _depth: fidl::encoding::Depth,
22675 ) -> fidl::Result<()> {
22676 encoder.debug_check_bounds::<AudioCapturerConfiguration>(offset);
22677 encoder.write_num::<u64>(self.ordinal(), offset);
22678 match self {
22679 AudioCapturerConfiguration::Loopback(ref val) => fidl::encoding::encode_in_envelope::<
22680 LoopbackAudioCapturerConfiguration,
22681 D,
22682 >(
22683 <LoopbackAudioCapturerConfiguration as fidl::encoding::ValueTypeMarker>::borrow(
22684 val,
22685 ),
22686 encoder,
22687 offset + 8,
22688 _depth,
22689 ),
22690 AudioCapturerConfiguration::Input(ref val) => fidl::encoding::encode_in_envelope::<
22691 InputAudioCapturerConfiguration,
22692 D,
22693 >(
22694 <InputAudioCapturerConfiguration as fidl::encoding::ValueTypeMarker>::borrow(
22695 val,
22696 ),
22697 encoder,
22698 offset + 8,
22699 _depth,
22700 ),
22701 }
22702 }
22703 }
22704
22705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
22706 for AudioCapturerConfiguration
22707 {
22708 #[inline(always)]
22709 fn new_empty() -> Self {
22710 Self::Loopback(fidl::new_empty!(LoopbackAudioCapturerConfiguration, D))
22711 }
22712
22713 #[inline]
22714 unsafe fn decode(
22715 &mut self,
22716 decoder: &mut fidl::encoding::Decoder<'_, D>,
22717 offset: usize,
22718 mut depth: fidl::encoding::Depth,
22719 ) -> fidl::Result<()> {
22720 decoder.debug_check_bounds::<Self>(offset);
22721 #[allow(unused_variables)]
22722 let next_out_of_line = decoder.next_out_of_line();
22723 let handles_before = decoder.remaining_handles();
22724 let (ordinal, inlined, num_bytes, num_handles) =
22725 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22726
22727 let member_inline_size = match ordinal {
22728 1 => {
22729 <LoopbackAudioCapturerConfiguration as fidl::encoding::TypeMarker>::inline_size(
22730 decoder.context,
22731 )
22732 }
22733 2 => <InputAudioCapturerConfiguration as fidl::encoding::TypeMarker>::inline_size(
22734 decoder.context,
22735 ),
22736 _ => return Err(fidl::Error::UnknownUnionTag),
22737 };
22738
22739 if inlined != (member_inline_size <= 4) {
22740 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22741 }
22742 let _inner_offset;
22743 if inlined {
22744 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22745 _inner_offset = offset + 8;
22746 } else {
22747 depth.increment()?;
22748 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22749 }
22750 match ordinal {
22751 1 => {
22752 #[allow(irrefutable_let_patterns)]
22753 if let AudioCapturerConfiguration::Loopback(_) = self {
22754 } else {
22756 *self = AudioCapturerConfiguration::Loopback(fidl::new_empty!(
22758 LoopbackAudioCapturerConfiguration,
22759 D
22760 ));
22761 }
22762 #[allow(irrefutable_let_patterns)]
22763 if let AudioCapturerConfiguration::Loopback(ref mut val) = self {
22764 fidl::decode!(
22765 LoopbackAudioCapturerConfiguration,
22766 D,
22767 val,
22768 decoder,
22769 _inner_offset,
22770 depth
22771 )?;
22772 } else {
22773 unreachable!()
22774 }
22775 }
22776 2 => {
22777 #[allow(irrefutable_let_patterns)]
22778 if let AudioCapturerConfiguration::Input(_) = self {
22779 } else {
22781 *self = AudioCapturerConfiguration::Input(fidl::new_empty!(
22783 InputAudioCapturerConfiguration,
22784 D
22785 ));
22786 }
22787 #[allow(irrefutable_let_patterns)]
22788 if let AudioCapturerConfiguration::Input(ref mut val) = self {
22789 fidl::decode!(
22790 InputAudioCapturerConfiguration,
22791 D,
22792 val,
22793 decoder,
22794 _inner_offset,
22795 depth
22796 )?;
22797 } else {
22798 unreachable!()
22799 }
22800 }
22801 ordinal => panic!("unexpected ordinal {:?}", ordinal),
22802 }
22803 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22804 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22805 }
22806 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22807 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22808 }
22809 Ok(())
22810 }
22811 }
22812
22813 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormat {
22814 type Borrowed<'a> = &'a Self;
22815 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22816 value
22817 }
22818 }
22819
22820 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormat {
22821 type Owned = Self;
22822
22823 #[inline(always)]
22824 fn inline_align(_context: fidl::encoding::Context) -> usize {
22825 8
22826 }
22827
22828 #[inline(always)]
22829 fn inline_size(_context: fidl::encoding::Context) -> usize {
22830 16
22831 }
22832 }
22833
22834 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioCompressedFormat, D>
22835 for &AudioCompressedFormat
22836 {
22837 #[inline]
22838 unsafe fn encode(
22839 self,
22840 encoder: &mut fidl::encoding::Encoder<'_, D>,
22841 offset: usize,
22842 _depth: fidl::encoding::Depth,
22843 ) -> fidl::Result<()> {
22844 encoder.debug_check_bounds::<AudioCompressedFormat>(offset);
22845 encoder.write_num::<u64>(self.ordinal(), offset);
22846 match self {
22847 AudioCompressedFormat::Aac(ref val) => {
22848 fidl::encoding::encode_in_envelope::<AudioCompressedFormatAac, D>(
22849 <AudioCompressedFormatAac as fidl::encoding::ValueTypeMarker>::borrow(val),
22850 encoder,
22851 offset + 8,
22852 _depth,
22853 )
22854 }
22855 AudioCompressedFormat::Sbc(ref val) => {
22856 fidl::encoding::encode_in_envelope::<AudioCompressedFormatSbc, D>(
22857 <AudioCompressedFormatSbc as fidl::encoding::ValueTypeMarker>::borrow(val),
22858 encoder,
22859 offset + 8,
22860 _depth,
22861 )
22862 }
22863 AudioCompressedFormat::Cvsd(ref val) => {
22864 fidl::encoding::encode_in_envelope::<AudioCompressedFormatCvsd, D>(
22865 <AudioCompressedFormatCvsd as fidl::encoding::ValueTypeMarker>::borrow(val),
22866 encoder,
22867 offset + 8,
22868 _depth,
22869 )
22870 }
22871 AudioCompressedFormat::Lc3(ref val) => {
22872 fidl::encoding::encode_in_envelope::<AudioCompressedFormatLc3, D>(
22873 <AudioCompressedFormatLc3 as fidl::encoding::ValueTypeMarker>::borrow(val),
22874 encoder,
22875 offset + 8,
22876 _depth,
22877 )
22878 }
22879 AudioCompressedFormat::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
22880 }
22881 }
22882 }
22883
22884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCompressedFormat {
22885 #[inline(always)]
22886 fn new_empty() -> Self {
22887 Self::__SourceBreaking { unknown_ordinal: 0 }
22888 }
22889
22890 #[inline]
22891 unsafe fn decode(
22892 &mut self,
22893 decoder: &mut fidl::encoding::Decoder<'_, D>,
22894 offset: usize,
22895 mut depth: fidl::encoding::Depth,
22896 ) -> fidl::Result<()> {
22897 decoder.debug_check_bounds::<Self>(offset);
22898 #[allow(unused_variables)]
22899 let next_out_of_line = decoder.next_out_of_line();
22900 let handles_before = decoder.remaining_handles();
22901 let (ordinal, inlined, num_bytes, num_handles) =
22902 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22903
22904 let member_inline_size = match ordinal {
22905 1 => <AudioCompressedFormatAac as fidl::encoding::TypeMarker>::inline_size(
22906 decoder.context,
22907 ),
22908 2 => <AudioCompressedFormatSbc as fidl::encoding::TypeMarker>::inline_size(
22909 decoder.context,
22910 ),
22911 3 => <AudioCompressedFormatCvsd as fidl::encoding::TypeMarker>::inline_size(
22912 decoder.context,
22913 ),
22914 4 => <AudioCompressedFormatLc3 as fidl::encoding::TypeMarker>::inline_size(
22915 decoder.context,
22916 ),
22917 0 => return Err(fidl::Error::UnknownUnionTag),
22918 _ => num_bytes as usize,
22919 };
22920
22921 if inlined != (member_inline_size <= 4) {
22922 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22923 }
22924 let _inner_offset;
22925 if inlined {
22926 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22927 _inner_offset = offset + 8;
22928 } else {
22929 depth.increment()?;
22930 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22931 }
22932 match ordinal {
22933 1 => {
22934 #[allow(irrefutable_let_patterns)]
22935 if let AudioCompressedFormat::Aac(_) = self {
22936 } else {
22938 *self = AudioCompressedFormat::Aac(fidl::new_empty!(
22940 AudioCompressedFormatAac,
22941 D
22942 ));
22943 }
22944 #[allow(irrefutable_let_patterns)]
22945 if let AudioCompressedFormat::Aac(ref mut val) = self {
22946 fidl::decode!(
22947 AudioCompressedFormatAac,
22948 D,
22949 val,
22950 decoder,
22951 _inner_offset,
22952 depth
22953 )?;
22954 } else {
22955 unreachable!()
22956 }
22957 }
22958 2 => {
22959 #[allow(irrefutable_let_patterns)]
22960 if let AudioCompressedFormat::Sbc(_) = self {
22961 } else {
22963 *self = AudioCompressedFormat::Sbc(fidl::new_empty!(
22965 AudioCompressedFormatSbc,
22966 D
22967 ));
22968 }
22969 #[allow(irrefutable_let_patterns)]
22970 if let AudioCompressedFormat::Sbc(ref mut val) = self {
22971 fidl::decode!(
22972 AudioCompressedFormatSbc,
22973 D,
22974 val,
22975 decoder,
22976 _inner_offset,
22977 depth
22978 )?;
22979 } else {
22980 unreachable!()
22981 }
22982 }
22983 3 => {
22984 #[allow(irrefutable_let_patterns)]
22985 if let AudioCompressedFormat::Cvsd(_) = self {
22986 } else {
22988 *self = AudioCompressedFormat::Cvsd(fidl::new_empty!(
22990 AudioCompressedFormatCvsd,
22991 D
22992 ));
22993 }
22994 #[allow(irrefutable_let_patterns)]
22995 if let AudioCompressedFormat::Cvsd(ref mut val) = self {
22996 fidl::decode!(
22997 AudioCompressedFormatCvsd,
22998 D,
22999 val,
23000 decoder,
23001 _inner_offset,
23002 depth
23003 )?;
23004 } else {
23005 unreachable!()
23006 }
23007 }
23008 4 => {
23009 #[allow(irrefutable_let_patterns)]
23010 if let AudioCompressedFormat::Lc3(_) = self {
23011 } else {
23013 *self = AudioCompressedFormat::Lc3(fidl::new_empty!(
23015 AudioCompressedFormatLc3,
23016 D
23017 ));
23018 }
23019 #[allow(irrefutable_let_patterns)]
23020 if let AudioCompressedFormat::Lc3(ref mut val) = self {
23021 fidl::decode!(
23022 AudioCompressedFormatLc3,
23023 D,
23024 val,
23025 decoder,
23026 _inner_offset,
23027 depth
23028 )?;
23029 } else {
23030 unreachable!()
23031 }
23032 }
23033 #[allow(deprecated)]
23034 ordinal => {
23035 for _ in 0..num_handles {
23036 decoder.drop_next_handle()?;
23037 }
23038 *self = AudioCompressedFormat::__SourceBreaking { unknown_ordinal: ordinal };
23039 }
23040 }
23041 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23042 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23043 }
23044 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23045 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23046 }
23047 Ok(())
23048 }
23049 }
23050
23051 impl fidl::encoding::ValueTypeMarker for AudioConsumerError {
23052 type Borrowed<'a> = &'a Self;
23053 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23054 value
23055 }
23056 }
23057
23058 unsafe impl fidl::encoding::TypeMarker for AudioConsumerError {
23059 type Owned = Self;
23060
23061 #[inline(always)]
23062 fn inline_align(_context: fidl::encoding::Context) -> usize {
23063 8
23064 }
23065
23066 #[inline(always)]
23067 fn inline_size(_context: fidl::encoding::Context) -> usize {
23068 16
23069 }
23070 }
23071
23072 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioConsumerError, D>
23073 for &AudioConsumerError
23074 {
23075 #[inline]
23076 unsafe fn encode(
23077 self,
23078 encoder: &mut fidl::encoding::Encoder<'_, D>,
23079 offset: usize,
23080 _depth: fidl::encoding::Depth,
23081 ) -> fidl::Result<()> {
23082 encoder.debug_check_bounds::<AudioConsumerError>(offset);
23083 encoder.write_num::<u64>(self.ordinal(), offset);
23084 match self {
23085 AudioConsumerError::PlaceHolder(ref val) => {
23086 fidl::encoding::encode_in_envelope::<Void, D>(
23087 <Void as fidl::encoding::ValueTypeMarker>::borrow(val),
23088 encoder,
23089 offset + 8,
23090 _depth,
23091 )
23092 }
23093 }
23094 }
23095 }
23096
23097 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioConsumerError {
23098 #[inline(always)]
23099 fn new_empty() -> Self {
23100 Self::PlaceHolder(fidl::new_empty!(Void, D))
23101 }
23102
23103 #[inline]
23104 unsafe fn decode(
23105 &mut self,
23106 decoder: &mut fidl::encoding::Decoder<'_, D>,
23107 offset: usize,
23108 mut depth: fidl::encoding::Depth,
23109 ) -> fidl::Result<()> {
23110 decoder.debug_check_bounds::<Self>(offset);
23111 #[allow(unused_variables)]
23112 let next_out_of_line = decoder.next_out_of_line();
23113 let handles_before = decoder.remaining_handles();
23114 let (ordinal, inlined, num_bytes, num_handles) =
23115 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23116
23117 let member_inline_size = match ordinal {
23118 1 => <Void as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23119 _ => return Err(fidl::Error::UnknownUnionTag),
23120 };
23121
23122 if inlined != (member_inline_size <= 4) {
23123 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23124 }
23125 let _inner_offset;
23126 if inlined {
23127 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23128 _inner_offset = offset + 8;
23129 } else {
23130 depth.increment()?;
23131 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23132 }
23133 match ordinal {
23134 1 => {
23135 #[allow(irrefutable_let_patterns)]
23136 if let AudioConsumerError::PlaceHolder(_) = self {
23137 } else {
23139 *self = AudioConsumerError::PlaceHolder(fidl::new_empty!(Void, D));
23141 }
23142 #[allow(irrefutable_let_patterns)]
23143 if let AudioConsumerError::PlaceHolder(ref mut val) = self {
23144 fidl::decode!(Void, D, val, decoder, _inner_offset, depth)?;
23145 } else {
23146 unreachable!()
23147 }
23148 }
23149 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23150 }
23151 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23152 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23153 }
23154 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23155 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23156 }
23157 Ok(())
23158 }
23159 }
23160
23161 impl fidl::encoding::ValueTypeMarker for AudioFormat {
23162 type Borrowed<'a> = &'a Self;
23163 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23164 value
23165 }
23166 }
23167
23168 unsafe impl fidl::encoding::TypeMarker for AudioFormat {
23169 type Owned = Self;
23170
23171 #[inline(always)]
23172 fn inline_align(_context: fidl::encoding::Context) -> usize {
23173 8
23174 }
23175
23176 #[inline(always)]
23177 fn inline_size(_context: fidl::encoding::Context) -> usize {
23178 16
23179 }
23180 }
23181
23182 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioFormat, D>
23183 for &AudioFormat
23184 {
23185 #[inline]
23186 unsafe fn encode(
23187 self,
23188 encoder: &mut fidl::encoding::Encoder<'_, D>,
23189 offset: usize,
23190 _depth: fidl::encoding::Depth,
23191 ) -> fidl::Result<()> {
23192 encoder.debug_check_bounds::<AudioFormat>(offset);
23193 encoder.write_num::<u64>(self.ordinal(), offset);
23194 match self {
23195 AudioFormat::Compressed(ref val) => {
23196 fidl::encoding::encode_in_envelope::<AudioCompressedFormat, D>(
23197 <AudioCompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23198 encoder,
23199 offset + 8,
23200 _depth,
23201 )
23202 }
23203 AudioFormat::Uncompressed(ref val) => {
23204 fidl::encoding::encode_in_envelope::<AudioUncompressedFormat, D>(
23205 <AudioUncompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23206 encoder,
23207 offset + 8,
23208 _depth,
23209 )
23210 }
23211 }
23212 }
23213 }
23214
23215 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioFormat {
23216 #[inline(always)]
23217 fn new_empty() -> Self {
23218 Self::Compressed(fidl::new_empty!(AudioCompressedFormat, D))
23219 }
23220
23221 #[inline]
23222 unsafe fn decode(
23223 &mut self,
23224 decoder: &mut fidl::encoding::Decoder<'_, D>,
23225 offset: usize,
23226 mut depth: fidl::encoding::Depth,
23227 ) -> fidl::Result<()> {
23228 decoder.debug_check_bounds::<Self>(offset);
23229 #[allow(unused_variables)]
23230 let next_out_of_line = decoder.next_out_of_line();
23231 let handles_before = decoder.remaining_handles();
23232 let (ordinal, inlined, num_bytes, num_handles) =
23233 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23234
23235 let member_inline_size = match ordinal {
23236 1 => <AudioCompressedFormat as fidl::encoding::TypeMarker>::inline_size(
23237 decoder.context,
23238 ),
23239 2 => <AudioUncompressedFormat as fidl::encoding::TypeMarker>::inline_size(
23240 decoder.context,
23241 ),
23242 _ => return Err(fidl::Error::UnknownUnionTag),
23243 };
23244
23245 if inlined != (member_inline_size <= 4) {
23246 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23247 }
23248 let _inner_offset;
23249 if inlined {
23250 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23251 _inner_offset = offset + 8;
23252 } else {
23253 depth.increment()?;
23254 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23255 }
23256 match ordinal {
23257 1 => {
23258 #[allow(irrefutable_let_patterns)]
23259 if let AudioFormat::Compressed(_) = self {
23260 } else {
23262 *self = AudioFormat::Compressed(fidl::new_empty!(AudioCompressedFormat, D));
23264 }
23265 #[allow(irrefutable_let_patterns)]
23266 if let AudioFormat::Compressed(ref mut val) = self {
23267 fidl::decode!(
23268 AudioCompressedFormat,
23269 D,
23270 val,
23271 decoder,
23272 _inner_offset,
23273 depth
23274 )?;
23275 } else {
23276 unreachable!()
23277 }
23278 }
23279 2 => {
23280 #[allow(irrefutable_let_patterns)]
23281 if let AudioFormat::Uncompressed(_) = self {
23282 } else {
23284 *self =
23286 AudioFormat::Uncompressed(fidl::new_empty!(AudioUncompressedFormat, D));
23287 }
23288 #[allow(irrefutable_let_patterns)]
23289 if let AudioFormat::Uncompressed(ref mut val) = self {
23290 fidl::decode!(
23291 AudioUncompressedFormat,
23292 D,
23293 val,
23294 decoder,
23295 _inner_offset,
23296 depth
23297 )?;
23298 } else {
23299 unreachable!()
23300 }
23301 }
23302 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23303 }
23304 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23305 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23306 }
23307 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23308 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23309 }
23310 Ok(())
23311 }
23312 }
23313
23314 impl fidl::encoding::ValueTypeMarker for AudioUncompressedFormat {
23315 type Borrowed<'a> = &'a Self;
23316 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23317 value
23318 }
23319 }
23320
23321 unsafe impl fidl::encoding::TypeMarker for AudioUncompressedFormat {
23322 type Owned = Self;
23323
23324 #[inline(always)]
23325 fn inline_align(_context: fidl::encoding::Context) -> usize {
23326 8
23327 }
23328
23329 #[inline(always)]
23330 fn inline_size(_context: fidl::encoding::Context) -> usize {
23331 16
23332 }
23333 }
23334
23335 unsafe impl<D: fidl::encoding::ResourceDialect>
23336 fidl::encoding::Encode<AudioUncompressedFormat, D> for &AudioUncompressedFormat
23337 {
23338 #[inline]
23339 unsafe fn encode(
23340 self,
23341 encoder: &mut fidl::encoding::Encoder<'_, D>,
23342 offset: usize,
23343 _depth: fidl::encoding::Depth,
23344 ) -> fidl::Result<()> {
23345 encoder.debug_check_bounds::<AudioUncompressedFormat>(offset);
23346 encoder.write_num::<u64>(self.ordinal(), offset);
23347 match self {
23348 AudioUncompressedFormat::Pcm(ref val) => {
23349 fidl::encoding::encode_in_envelope::<PcmFormat, D>(
23350 <PcmFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23351 encoder,
23352 offset + 8,
23353 _depth,
23354 )
23355 }
23356 }
23357 }
23358 }
23359
23360 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
23361 for AudioUncompressedFormat
23362 {
23363 #[inline(always)]
23364 fn new_empty() -> Self {
23365 Self::Pcm(fidl::new_empty!(PcmFormat, D))
23366 }
23367
23368 #[inline]
23369 unsafe fn decode(
23370 &mut self,
23371 decoder: &mut fidl::encoding::Decoder<'_, D>,
23372 offset: usize,
23373 mut depth: fidl::encoding::Depth,
23374 ) -> fidl::Result<()> {
23375 decoder.debug_check_bounds::<Self>(offset);
23376 #[allow(unused_variables)]
23377 let next_out_of_line = decoder.next_out_of_line();
23378 let handles_before = decoder.remaining_handles();
23379 let (ordinal, inlined, num_bytes, num_handles) =
23380 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23381
23382 let member_inline_size = match ordinal {
23383 1 => <PcmFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23384 _ => return Err(fidl::Error::UnknownUnionTag),
23385 };
23386
23387 if inlined != (member_inline_size <= 4) {
23388 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23389 }
23390 let _inner_offset;
23391 if inlined {
23392 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23393 _inner_offset = offset + 8;
23394 } else {
23395 depth.increment()?;
23396 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23397 }
23398 match ordinal {
23399 1 => {
23400 #[allow(irrefutable_let_patterns)]
23401 if let AudioUncompressedFormat::Pcm(_) = self {
23402 } else {
23404 *self = AudioUncompressedFormat::Pcm(fidl::new_empty!(PcmFormat, D));
23406 }
23407 #[allow(irrefutable_let_patterns)]
23408 if let AudioUncompressedFormat::Pcm(ref mut val) = self {
23409 fidl::decode!(PcmFormat, D, val, decoder, _inner_offset, depth)?;
23410 } else {
23411 unreachable!()
23412 }
23413 }
23414 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23415 }
23416 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23417 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23418 }
23419 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23420 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23421 }
23422 Ok(())
23423 }
23424 }
23425
23426 impl fidl::encoding::ValueTypeMarker for CryptoFormat {
23427 type Borrowed<'a> = &'a Self;
23428 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23429 value
23430 }
23431 }
23432
23433 unsafe impl fidl::encoding::TypeMarker for CryptoFormat {
23434 type Owned = Self;
23435
23436 #[inline(always)]
23437 fn inline_align(_context: fidl::encoding::Context) -> usize {
23438 8
23439 }
23440
23441 #[inline(always)]
23442 fn inline_size(_context: fidl::encoding::Context) -> usize {
23443 16
23444 }
23445 }
23446
23447 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CryptoFormat, D>
23448 for &CryptoFormat
23449 {
23450 #[inline]
23451 unsafe fn encode(
23452 self,
23453 encoder: &mut fidl::encoding::Encoder<'_, D>,
23454 offset: usize,
23455 _depth: fidl::encoding::Depth,
23456 ) -> fidl::Result<()> {
23457 encoder.debug_check_bounds::<CryptoFormat>(offset);
23458 encoder.write_num::<u64>(self.ordinal(), offset);
23459 match self {
23460 CryptoFormat::Encrypted(ref val) => {
23461 fidl::encoding::encode_in_envelope::<EncryptedFormat, D>(
23462 <EncryptedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23463 encoder,
23464 offset + 8,
23465 _depth,
23466 )
23467 }
23468 CryptoFormat::Decrypted(ref val) => {
23469 fidl::encoding::encode_in_envelope::<DecryptedFormat, D>(
23470 <DecryptedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23471 encoder,
23472 offset + 8,
23473 _depth,
23474 )
23475 }
23476 CryptoFormat::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
23477 }
23478 }
23479 }
23480
23481 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CryptoFormat {
23482 #[inline(always)]
23483 fn new_empty() -> Self {
23484 Self::__SourceBreaking { unknown_ordinal: 0 }
23485 }
23486
23487 #[inline]
23488 unsafe fn decode(
23489 &mut self,
23490 decoder: &mut fidl::encoding::Decoder<'_, D>,
23491 offset: usize,
23492 mut depth: fidl::encoding::Depth,
23493 ) -> fidl::Result<()> {
23494 decoder.debug_check_bounds::<Self>(offset);
23495 #[allow(unused_variables)]
23496 let next_out_of_line = decoder.next_out_of_line();
23497 let handles_before = decoder.remaining_handles();
23498 let (ordinal, inlined, num_bytes, num_handles) =
23499 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23500
23501 let member_inline_size = match ordinal {
23502 1 => <EncryptedFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23503 2 => <DecryptedFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23504 0 => return Err(fidl::Error::UnknownUnionTag),
23505 _ => num_bytes as usize,
23506 };
23507
23508 if inlined != (member_inline_size <= 4) {
23509 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23510 }
23511 let _inner_offset;
23512 if inlined {
23513 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23514 _inner_offset = offset + 8;
23515 } else {
23516 depth.increment()?;
23517 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23518 }
23519 match ordinal {
23520 1 => {
23521 #[allow(irrefutable_let_patterns)]
23522 if let CryptoFormat::Encrypted(_) = self {
23523 } else {
23525 *self = CryptoFormat::Encrypted(fidl::new_empty!(EncryptedFormat, D));
23527 }
23528 #[allow(irrefutable_let_patterns)]
23529 if let CryptoFormat::Encrypted(ref mut val) = self {
23530 fidl::decode!(EncryptedFormat, D, val, decoder, _inner_offset, depth)?;
23531 } else {
23532 unreachable!()
23533 }
23534 }
23535 2 => {
23536 #[allow(irrefutable_let_patterns)]
23537 if let CryptoFormat::Decrypted(_) = self {
23538 } else {
23540 *self = CryptoFormat::Decrypted(fidl::new_empty!(DecryptedFormat, D));
23542 }
23543 #[allow(irrefutable_let_patterns)]
23544 if let CryptoFormat::Decrypted(ref mut val) = self {
23545 fidl::decode!(DecryptedFormat, D, val, decoder, _inner_offset, depth)?;
23546 } else {
23547 unreachable!()
23548 }
23549 }
23550 #[allow(deprecated)]
23551 ordinal => {
23552 for _ in 0..num_handles {
23553 decoder.drop_next_handle()?;
23554 }
23555 *self = CryptoFormat::__SourceBreaking { unknown_ordinal: ordinal };
23556 }
23557 }
23558 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23559 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23560 }
23561 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23562 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23563 }
23564 Ok(())
23565 }
23566 }
23567
23568 impl fidl::encoding::ValueTypeMarker for DomainFormat {
23569 type Borrowed<'a> = &'a Self;
23570 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23571 value
23572 }
23573 }
23574
23575 unsafe impl fidl::encoding::TypeMarker for DomainFormat {
23576 type Owned = Self;
23577
23578 #[inline(always)]
23579 fn inline_align(_context: fidl::encoding::Context) -> usize {
23580 8
23581 }
23582
23583 #[inline(always)]
23584 fn inline_size(_context: fidl::encoding::Context) -> usize {
23585 16
23586 }
23587 }
23588
23589 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DomainFormat, D>
23590 for &DomainFormat
23591 {
23592 #[inline]
23593 unsafe fn encode(
23594 self,
23595 encoder: &mut fidl::encoding::Encoder<'_, D>,
23596 offset: usize,
23597 _depth: fidl::encoding::Depth,
23598 ) -> fidl::Result<()> {
23599 encoder.debug_check_bounds::<DomainFormat>(offset);
23600 encoder.write_num::<u64>(self.ordinal(), offset);
23601 match self {
23602 DomainFormat::Audio(ref val) => {
23603 fidl::encoding::encode_in_envelope::<AudioFormat, D>(
23604 <AudioFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23605 encoder,
23606 offset + 8,
23607 _depth,
23608 )
23609 }
23610 DomainFormat::Video(ref val) => {
23611 fidl::encoding::encode_in_envelope::<VideoFormat, D>(
23612 <VideoFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23613 encoder,
23614 offset + 8,
23615 _depth,
23616 )
23617 }
23618 DomainFormat::Crypto(ref val) => {
23619 fidl::encoding::encode_in_envelope::<CryptoFormat, D>(
23620 <CryptoFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23621 encoder,
23622 offset + 8,
23623 _depth,
23624 )
23625 }
23626 }
23627 }
23628 }
23629
23630 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DomainFormat {
23631 #[inline(always)]
23632 fn new_empty() -> Self {
23633 Self::Audio(fidl::new_empty!(AudioFormat, D))
23634 }
23635
23636 #[inline]
23637 unsafe fn decode(
23638 &mut self,
23639 decoder: &mut fidl::encoding::Decoder<'_, D>,
23640 offset: usize,
23641 mut depth: fidl::encoding::Depth,
23642 ) -> fidl::Result<()> {
23643 decoder.debug_check_bounds::<Self>(offset);
23644 #[allow(unused_variables)]
23645 let next_out_of_line = decoder.next_out_of_line();
23646 let handles_before = decoder.remaining_handles();
23647 let (ordinal, inlined, num_bytes, num_handles) =
23648 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23649
23650 let member_inline_size = match ordinal {
23651 1 => <AudioFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23652 2 => <VideoFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23653 3 => <CryptoFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23654 _ => return Err(fidl::Error::UnknownUnionTag),
23655 };
23656
23657 if inlined != (member_inline_size <= 4) {
23658 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23659 }
23660 let _inner_offset;
23661 if inlined {
23662 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23663 _inner_offset = offset + 8;
23664 } else {
23665 depth.increment()?;
23666 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23667 }
23668 match ordinal {
23669 1 => {
23670 #[allow(irrefutable_let_patterns)]
23671 if let DomainFormat::Audio(_) = self {
23672 } else {
23674 *self = DomainFormat::Audio(fidl::new_empty!(AudioFormat, D));
23676 }
23677 #[allow(irrefutable_let_patterns)]
23678 if let DomainFormat::Audio(ref mut val) = self {
23679 fidl::decode!(AudioFormat, D, val, decoder, _inner_offset, depth)?;
23680 } else {
23681 unreachable!()
23682 }
23683 }
23684 2 => {
23685 #[allow(irrefutable_let_patterns)]
23686 if let DomainFormat::Video(_) = self {
23687 } else {
23689 *self = DomainFormat::Video(fidl::new_empty!(VideoFormat, D));
23691 }
23692 #[allow(irrefutable_let_patterns)]
23693 if let DomainFormat::Video(ref mut val) = self {
23694 fidl::decode!(VideoFormat, D, val, decoder, _inner_offset, depth)?;
23695 } else {
23696 unreachable!()
23697 }
23698 }
23699 3 => {
23700 #[allow(irrefutable_let_patterns)]
23701 if let DomainFormat::Crypto(_) = self {
23702 } else {
23704 *self = DomainFormat::Crypto(fidl::new_empty!(CryptoFormat, D));
23706 }
23707 #[allow(irrefutable_let_patterns)]
23708 if let DomainFormat::Crypto(ref mut val) = self {
23709 fidl::decode!(CryptoFormat, D, val, decoder, _inner_offset, depth)?;
23710 } else {
23711 unreachable!()
23712 }
23713 }
23714 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23715 }
23716 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23717 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23718 }
23719 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23720 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23721 }
23722 Ok(())
23723 }
23724 }
23725
23726 impl fidl::encoding::ValueTypeMarker for EncoderSettings {
23727 type Borrowed<'a> = &'a Self;
23728 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23729 value
23730 }
23731 }
23732
23733 unsafe impl fidl::encoding::TypeMarker for EncoderSettings {
23734 type Owned = Self;
23735
23736 #[inline(always)]
23737 fn inline_align(_context: fidl::encoding::Context) -> usize {
23738 8
23739 }
23740
23741 #[inline(always)]
23742 fn inline_size(_context: fidl::encoding::Context) -> usize {
23743 16
23744 }
23745 }
23746
23747 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncoderSettings, D>
23748 for &EncoderSettings
23749 {
23750 #[inline]
23751 unsafe fn encode(
23752 self,
23753 encoder: &mut fidl::encoding::Encoder<'_, D>,
23754 offset: usize,
23755 _depth: fidl::encoding::Depth,
23756 ) -> fidl::Result<()> {
23757 encoder.debug_check_bounds::<EncoderSettings>(offset);
23758 encoder.write_num::<u64>(self.ordinal(), offset);
23759 match self {
23760 EncoderSettings::Sbc(ref val) => {
23761 fidl::encoding::encode_in_envelope::<SbcEncoderSettings, D>(
23762 <SbcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23763 encoder,
23764 offset + 8,
23765 _depth,
23766 )
23767 }
23768 EncoderSettings::Aac(ref val) => {
23769 fidl::encoding::encode_in_envelope::<AacEncoderSettings, D>(
23770 <AacEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23771 encoder,
23772 offset + 8,
23773 _depth,
23774 )
23775 }
23776 EncoderSettings::H264(ref val) => {
23777 fidl::encoding::encode_in_envelope::<H264EncoderSettings, D>(
23778 <H264EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23779 encoder,
23780 offset + 8,
23781 _depth,
23782 )
23783 }
23784 EncoderSettings::Hevc(ref val) => {
23785 fidl::encoding::encode_in_envelope::<HevcEncoderSettings, D>(
23786 <HevcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23787 encoder,
23788 offset + 8,
23789 _depth,
23790 )
23791 }
23792 EncoderSettings::Cvsd(ref val) => {
23793 fidl::encoding::encode_in_envelope::<CvsdEncoderSettings, D>(
23794 <CvsdEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23795 encoder,
23796 offset + 8,
23797 _depth,
23798 )
23799 }
23800 EncoderSettings::Lc3(ref val) => {
23801 fidl::encoding::encode_in_envelope::<Lc3EncoderSettings, D>(
23802 <Lc3EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23803 encoder,
23804 offset + 8,
23805 _depth,
23806 )
23807 }
23808 EncoderSettings::Msbc(ref val) => {
23809 fidl::encoding::encode_in_envelope::<MSbcEncoderSettings, D>(
23810 <MSbcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23811 encoder,
23812 offset + 8,
23813 _depth,
23814 )
23815 }
23816 EncoderSettings::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
23817 }
23818 }
23819 }
23820
23821 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncoderSettings {
23822 #[inline(always)]
23823 fn new_empty() -> Self {
23824 Self::__SourceBreaking { unknown_ordinal: 0 }
23825 }
23826
23827 #[inline]
23828 unsafe fn decode(
23829 &mut self,
23830 decoder: &mut fidl::encoding::Decoder<'_, D>,
23831 offset: usize,
23832 mut depth: fidl::encoding::Depth,
23833 ) -> fidl::Result<()> {
23834 decoder.debug_check_bounds::<Self>(offset);
23835 #[allow(unused_variables)]
23836 let next_out_of_line = decoder.next_out_of_line();
23837 let handles_before = decoder.remaining_handles();
23838 let (ordinal, inlined, num_bytes, num_handles) =
23839 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23840
23841 let member_inline_size = match ordinal {
23842 1 => {
23843 <SbcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23844 }
23845 2 => {
23846 <AacEncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23847 }
23848 3 => <H264EncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23849 decoder.context,
23850 ),
23851 4 => <HevcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23852 decoder.context,
23853 ),
23854 5 => <CvsdEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23855 decoder.context,
23856 ),
23857 6 => {
23858 <Lc3EncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23859 }
23860 7 => <MSbcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23861 decoder.context,
23862 ),
23863 0 => return Err(fidl::Error::UnknownUnionTag),
23864 _ => num_bytes as usize,
23865 };
23866
23867 if inlined != (member_inline_size <= 4) {
23868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23869 }
23870 let _inner_offset;
23871 if inlined {
23872 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23873 _inner_offset = offset + 8;
23874 } else {
23875 depth.increment()?;
23876 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23877 }
23878 match ordinal {
23879 1 => {
23880 #[allow(irrefutable_let_patterns)]
23881 if let EncoderSettings::Sbc(_) = self {
23882 } else {
23884 *self = EncoderSettings::Sbc(fidl::new_empty!(SbcEncoderSettings, D));
23886 }
23887 #[allow(irrefutable_let_patterns)]
23888 if let EncoderSettings::Sbc(ref mut val) = self {
23889 fidl::decode!(SbcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23890 } else {
23891 unreachable!()
23892 }
23893 }
23894 2 => {
23895 #[allow(irrefutable_let_patterns)]
23896 if let EncoderSettings::Aac(_) = self {
23897 } else {
23899 *self = EncoderSettings::Aac(fidl::new_empty!(AacEncoderSettings, D));
23901 }
23902 #[allow(irrefutable_let_patterns)]
23903 if let EncoderSettings::Aac(ref mut val) = self {
23904 fidl::decode!(AacEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23905 } else {
23906 unreachable!()
23907 }
23908 }
23909 3 => {
23910 #[allow(irrefutable_let_patterns)]
23911 if let EncoderSettings::H264(_) = self {
23912 } else {
23914 *self = EncoderSettings::H264(fidl::new_empty!(H264EncoderSettings, D));
23916 }
23917 #[allow(irrefutable_let_patterns)]
23918 if let EncoderSettings::H264(ref mut val) = self {
23919 fidl::decode!(H264EncoderSettings, D, val, decoder, _inner_offset, depth)?;
23920 } else {
23921 unreachable!()
23922 }
23923 }
23924 4 => {
23925 #[allow(irrefutable_let_patterns)]
23926 if let EncoderSettings::Hevc(_) = self {
23927 } else {
23929 *self = EncoderSettings::Hevc(fidl::new_empty!(HevcEncoderSettings, D));
23931 }
23932 #[allow(irrefutable_let_patterns)]
23933 if let EncoderSettings::Hevc(ref mut val) = self {
23934 fidl::decode!(HevcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23935 } else {
23936 unreachable!()
23937 }
23938 }
23939 5 => {
23940 #[allow(irrefutable_let_patterns)]
23941 if let EncoderSettings::Cvsd(_) = self {
23942 } else {
23944 *self = EncoderSettings::Cvsd(fidl::new_empty!(CvsdEncoderSettings, D));
23946 }
23947 #[allow(irrefutable_let_patterns)]
23948 if let EncoderSettings::Cvsd(ref mut val) = self {
23949 fidl::decode!(CvsdEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23950 } else {
23951 unreachable!()
23952 }
23953 }
23954 6 => {
23955 #[allow(irrefutable_let_patterns)]
23956 if let EncoderSettings::Lc3(_) = self {
23957 } else {
23959 *self = EncoderSettings::Lc3(fidl::new_empty!(Lc3EncoderSettings, D));
23961 }
23962 #[allow(irrefutable_let_patterns)]
23963 if let EncoderSettings::Lc3(ref mut val) = self {
23964 fidl::decode!(Lc3EncoderSettings, D, val, decoder, _inner_offset, depth)?;
23965 } else {
23966 unreachable!()
23967 }
23968 }
23969 7 => {
23970 #[allow(irrefutable_let_patterns)]
23971 if let EncoderSettings::Msbc(_) = self {
23972 } else {
23974 *self = EncoderSettings::Msbc(fidl::new_empty!(MSbcEncoderSettings, D));
23976 }
23977 #[allow(irrefutable_let_patterns)]
23978 if let EncoderSettings::Msbc(ref mut val) = self {
23979 fidl::decode!(MSbcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23980 } else {
23981 unreachable!()
23982 }
23983 }
23984 #[allow(deprecated)]
23985 ordinal => {
23986 for _ in 0..num_handles {
23987 decoder.drop_next_handle()?;
23988 }
23989 *self = EncoderSettings::__SourceBreaking { unknown_ordinal: ordinal };
23990 }
23991 }
23992 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23993 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23994 }
23995 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23996 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23997 }
23998 Ok(())
23999 }
24000 }
24001
24002 impl fidl::encoding::ValueTypeMarker for MediumSpecificStreamType {
24003 type Borrowed<'a> = &'a Self;
24004 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24005 value
24006 }
24007 }
24008
24009 unsafe impl fidl::encoding::TypeMarker for MediumSpecificStreamType {
24010 type Owned = Self;
24011
24012 #[inline(always)]
24013 fn inline_align(_context: fidl::encoding::Context) -> usize {
24014 8
24015 }
24016
24017 #[inline(always)]
24018 fn inline_size(_context: fidl::encoding::Context) -> usize {
24019 16
24020 }
24021 }
24022
24023 unsafe impl<D: fidl::encoding::ResourceDialect>
24024 fidl::encoding::Encode<MediumSpecificStreamType, D> for &MediumSpecificStreamType
24025 {
24026 #[inline]
24027 unsafe fn encode(
24028 self,
24029 encoder: &mut fidl::encoding::Encoder<'_, D>,
24030 offset: usize,
24031 _depth: fidl::encoding::Depth,
24032 ) -> fidl::Result<()> {
24033 encoder.debug_check_bounds::<MediumSpecificStreamType>(offset);
24034 encoder.write_num::<u64>(self.ordinal(), offset);
24035 match self {
24036 MediumSpecificStreamType::Audio(ref val) => {
24037 fidl::encoding::encode_in_envelope::<AudioStreamType, D>(
24038 <AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24039 encoder,
24040 offset + 8,
24041 _depth,
24042 )
24043 }
24044 MediumSpecificStreamType::Video(ref val) => {
24045 fidl::encoding::encode_in_envelope::<VideoStreamType, D>(
24046 <VideoStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24047 encoder,
24048 offset + 8,
24049 _depth,
24050 )
24051 }
24052 MediumSpecificStreamType::Text(ref val) => {
24053 fidl::encoding::encode_in_envelope::<TextStreamType, D>(
24054 <TextStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24055 encoder,
24056 offset + 8,
24057 _depth,
24058 )
24059 }
24060 MediumSpecificStreamType::Subpicture(ref val) => {
24061 fidl::encoding::encode_in_envelope::<SubpictureStreamType, D>(
24062 <SubpictureStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
24063 encoder,
24064 offset + 8,
24065 _depth,
24066 )
24067 }
24068 }
24069 }
24070 }
24071
24072 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
24073 for MediumSpecificStreamType
24074 {
24075 #[inline(always)]
24076 fn new_empty() -> Self {
24077 Self::Audio(fidl::new_empty!(AudioStreamType, D))
24078 }
24079
24080 #[inline]
24081 unsafe fn decode(
24082 &mut self,
24083 decoder: &mut fidl::encoding::Decoder<'_, D>,
24084 offset: usize,
24085 mut depth: fidl::encoding::Depth,
24086 ) -> fidl::Result<()> {
24087 decoder.debug_check_bounds::<Self>(offset);
24088 #[allow(unused_variables)]
24089 let next_out_of_line = decoder.next_out_of_line();
24090 let handles_before = decoder.remaining_handles();
24091 let (ordinal, inlined, num_bytes, num_handles) =
24092 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24093
24094 let member_inline_size = match ordinal {
24095 1 => <AudioStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24096 2 => <VideoStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24097 3 => <TextStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24098 4 => <SubpictureStreamType as fidl::encoding::TypeMarker>::inline_size(
24099 decoder.context,
24100 ),
24101 _ => return Err(fidl::Error::UnknownUnionTag),
24102 };
24103
24104 if inlined != (member_inline_size <= 4) {
24105 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24106 }
24107 let _inner_offset;
24108 if inlined {
24109 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24110 _inner_offset = offset + 8;
24111 } else {
24112 depth.increment()?;
24113 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24114 }
24115 match ordinal {
24116 1 => {
24117 #[allow(irrefutable_let_patterns)]
24118 if let MediumSpecificStreamType::Audio(_) = self {
24119 } else {
24121 *self =
24123 MediumSpecificStreamType::Audio(fidl::new_empty!(AudioStreamType, D));
24124 }
24125 #[allow(irrefutable_let_patterns)]
24126 if let MediumSpecificStreamType::Audio(ref mut val) = self {
24127 fidl::decode!(AudioStreamType, D, val, decoder, _inner_offset, depth)?;
24128 } else {
24129 unreachable!()
24130 }
24131 }
24132 2 => {
24133 #[allow(irrefutable_let_patterns)]
24134 if let MediumSpecificStreamType::Video(_) = self {
24135 } else {
24137 *self =
24139 MediumSpecificStreamType::Video(fidl::new_empty!(VideoStreamType, D));
24140 }
24141 #[allow(irrefutable_let_patterns)]
24142 if let MediumSpecificStreamType::Video(ref mut val) = self {
24143 fidl::decode!(VideoStreamType, D, val, decoder, _inner_offset, depth)?;
24144 } else {
24145 unreachable!()
24146 }
24147 }
24148 3 => {
24149 #[allow(irrefutable_let_patterns)]
24150 if let MediumSpecificStreamType::Text(_) = self {
24151 } else {
24153 *self = MediumSpecificStreamType::Text(fidl::new_empty!(TextStreamType, D));
24155 }
24156 #[allow(irrefutable_let_patterns)]
24157 if let MediumSpecificStreamType::Text(ref mut val) = self {
24158 fidl::decode!(TextStreamType, D, val, decoder, _inner_offset, depth)?;
24159 } else {
24160 unreachable!()
24161 }
24162 }
24163 4 => {
24164 #[allow(irrefutable_let_patterns)]
24165 if let MediumSpecificStreamType::Subpicture(_) = self {
24166 } else {
24168 *self = MediumSpecificStreamType::Subpicture(fidl::new_empty!(
24170 SubpictureStreamType,
24171 D
24172 ));
24173 }
24174 #[allow(irrefutable_let_patterns)]
24175 if let MediumSpecificStreamType::Subpicture(ref mut val) = self {
24176 fidl::decode!(SubpictureStreamType, D, val, decoder, _inner_offset, depth)?;
24177 } else {
24178 unreachable!()
24179 }
24180 }
24181 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24182 }
24183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24184 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24185 }
24186 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24187 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24188 }
24189 Ok(())
24190 }
24191 }
24192
24193 impl fidl::encoding::ValueTypeMarker for Usage {
24194 type Borrowed<'a> = &'a Self;
24195 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24196 value
24197 }
24198 }
24199
24200 unsafe impl fidl::encoding::TypeMarker for Usage {
24201 type Owned = Self;
24202
24203 #[inline(always)]
24204 fn inline_align(_context: fidl::encoding::Context) -> usize {
24205 8
24206 }
24207
24208 #[inline(always)]
24209 fn inline_size(_context: fidl::encoding::Context) -> usize {
24210 16
24211 }
24212 }
24213
24214 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Usage, D> for &Usage {
24215 #[inline]
24216 unsafe fn encode(
24217 self,
24218 encoder: &mut fidl::encoding::Encoder<'_, D>,
24219 offset: usize,
24220 _depth: fidl::encoding::Depth,
24221 ) -> fidl::Result<()> {
24222 encoder.debug_check_bounds::<Usage>(offset);
24223 encoder.write_num::<u64>(self.ordinal(), offset);
24224 match self {
24225 Usage::RenderUsage(ref val) => {
24226 fidl::encoding::encode_in_envelope::<AudioRenderUsage, D>(
24227 <AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(val),
24228 encoder,
24229 offset + 8,
24230 _depth,
24231 )
24232 }
24233 Usage::CaptureUsage(ref val) => {
24234 fidl::encoding::encode_in_envelope::<AudioCaptureUsage, D>(
24235 <AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(val),
24236 encoder,
24237 offset + 8,
24238 _depth,
24239 )
24240 }
24241 }
24242 }
24243 }
24244
24245 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Usage {
24246 #[inline(always)]
24247 fn new_empty() -> Self {
24248 Self::RenderUsage(fidl::new_empty!(AudioRenderUsage, D))
24249 }
24250
24251 #[inline]
24252 unsafe fn decode(
24253 &mut self,
24254 decoder: &mut fidl::encoding::Decoder<'_, D>,
24255 offset: usize,
24256 mut depth: fidl::encoding::Depth,
24257 ) -> fidl::Result<()> {
24258 decoder.debug_check_bounds::<Self>(offset);
24259 #[allow(unused_variables)]
24260 let next_out_of_line = decoder.next_out_of_line();
24261 let handles_before = decoder.remaining_handles();
24262 let (ordinal, inlined, num_bytes, num_handles) =
24263 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24264
24265 let member_inline_size = match ordinal {
24266 1 => <AudioRenderUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24267 2 => {
24268 <AudioCaptureUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24269 }
24270 _ => return Err(fidl::Error::UnknownUnionTag),
24271 };
24272
24273 if inlined != (member_inline_size <= 4) {
24274 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24275 }
24276 let _inner_offset;
24277 if inlined {
24278 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24279 _inner_offset = offset + 8;
24280 } else {
24281 depth.increment()?;
24282 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24283 }
24284 match ordinal {
24285 1 => {
24286 #[allow(irrefutable_let_patterns)]
24287 if let Usage::RenderUsage(_) = self {
24288 } else {
24290 *self = Usage::RenderUsage(fidl::new_empty!(AudioRenderUsage, D));
24292 }
24293 #[allow(irrefutable_let_patterns)]
24294 if let Usage::RenderUsage(ref mut val) = self {
24295 fidl::decode!(AudioRenderUsage, D, val, decoder, _inner_offset, depth)?;
24296 } else {
24297 unreachable!()
24298 }
24299 }
24300 2 => {
24301 #[allow(irrefutable_let_patterns)]
24302 if let Usage::CaptureUsage(_) = self {
24303 } else {
24305 *self = Usage::CaptureUsage(fidl::new_empty!(AudioCaptureUsage, D));
24307 }
24308 #[allow(irrefutable_let_patterns)]
24309 if let Usage::CaptureUsage(ref mut val) = self {
24310 fidl::decode!(AudioCaptureUsage, D, val, decoder, _inner_offset, depth)?;
24311 } else {
24312 unreachable!()
24313 }
24314 }
24315 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24316 }
24317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24318 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24319 }
24320 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24321 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24322 }
24323 Ok(())
24324 }
24325 }
24326
24327 impl fidl::encoding::ValueTypeMarker for Usage2 {
24328 type Borrowed<'a> = &'a Self;
24329 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24330 value
24331 }
24332 }
24333
24334 unsafe impl fidl::encoding::TypeMarker for Usage2 {
24335 type Owned = Self;
24336
24337 #[inline(always)]
24338 fn inline_align(_context: fidl::encoding::Context) -> usize {
24339 8
24340 }
24341
24342 #[inline(always)]
24343 fn inline_size(_context: fidl::encoding::Context) -> usize {
24344 16
24345 }
24346 }
24347
24348 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Usage2, D> for &Usage2 {
24349 #[inline]
24350 unsafe fn encode(
24351 self,
24352 encoder: &mut fidl::encoding::Encoder<'_, D>,
24353 offset: usize,
24354 _depth: fidl::encoding::Depth,
24355 ) -> fidl::Result<()> {
24356 encoder.debug_check_bounds::<Usage2>(offset);
24357 encoder.write_num::<u64>(self.ordinal(), offset);
24358 match self {
24359 Usage2::RenderUsage(ref val) => {
24360 fidl::encoding::encode_in_envelope::<AudioRenderUsage2, D>(
24361 <AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(val),
24362 encoder,
24363 offset + 8,
24364 _depth,
24365 )
24366 }
24367 Usage2::CaptureUsage(ref val) => {
24368 fidl::encoding::encode_in_envelope::<AudioCaptureUsage2, D>(
24369 <AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(val),
24370 encoder,
24371 offset + 8,
24372 _depth,
24373 )
24374 }
24375 Usage2::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
24376 }
24377 }
24378 }
24379
24380 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Usage2 {
24381 #[inline(always)]
24382 fn new_empty() -> Self {
24383 Self::__SourceBreaking { unknown_ordinal: 0 }
24384 }
24385
24386 #[inline]
24387 unsafe fn decode(
24388 &mut self,
24389 decoder: &mut fidl::encoding::Decoder<'_, D>,
24390 offset: usize,
24391 mut depth: fidl::encoding::Depth,
24392 ) -> fidl::Result<()> {
24393 decoder.debug_check_bounds::<Self>(offset);
24394 #[allow(unused_variables)]
24395 let next_out_of_line = decoder.next_out_of_line();
24396 let handles_before = decoder.remaining_handles();
24397 let (ordinal, inlined, num_bytes, num_handles) =
24398 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24399
24400 let member_inline_size = match ordinal {
24401 1 => {
24402 <AudioRenderUsage2 as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24403 }
24404 2 => {
24405 <AudioCaptureUsage2 as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24406 }
24407 0 => return Err(fidl::Error::UnknownUnionTag),
24408 _ => num_bytes as usize,
24409 };
24410
24411 if inlined != (member_inline_size <= 4) {
24412 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24413 }
24414 let _inner_offset;
24415 if inlined {
24416 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24417 _inner_offset = offset + 8;
24418 } else {
24419 depth.increment()?;
24420 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24421 }
24422 match ordinal {
24423 1 => {
24424 #[allow(irrefutable_let_patterns)]
24425 if let Usage2::RenderUsage(_) = self {
24426 } else {
24428 *self = Usage2::RenderUsage(fidl::new_empty!(AudioRenderUsage2, D));
24430 }
24431 #[allow(irrefutable_let_patterns)]
24432 if let Usage2::RenderUsage(ref mut val) = self {
24433 fidl::decode!(AudioRenderUsage2, D, val, decoder, _inner_offset, depth)?;
24434 } else {
24435 unreachable!()
24436 }
24437 }
24438 2 => {
24439 #[allow(irrefutable_let_patterns)]
24440 if let Usage2::CaptureUsage(_) = self {
24441 } else {
24443 *self = Usage2::CaptureUsage(fidl::new_empty!(AudioCaptureUsage2, D));
24445 }
24446 #[allow(irrefutable_let_patterns)]
24447 if let Usage2::CaptureUsage(ref mut val) = self {
24448 fidl::decode!(AudioCaptureUsage2, D, val, decoder, _inner_offset, depth)?;
24449 } else {
24450 unreachable!()
24451 }
24452 }
24453 #[allow(deprecated)]
24454 ordinal => {
24455 for _ in 0..num_handles {
24456 decoder.drop_next_handle()?;
24457 }
24458 *self = Usage2::__SourceBreaking { unknown_ordinal: ordinal };
24459 }
24460 }
24461 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24462 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24463 }
24464 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24465 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24466 }
24467 Ok(())
24468 }
24469 }
24470
24471 impl fidl::encoding::ValueTypeMarker for UsageState {
24472 type Borrowed<'a> = &'a Self;
24473 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24474 value
24475 }
24476 }
24477
24478 unsafe impl fidl::encoding::TypeMarker for UsageState {
24479 type Owned = Self;
24480
24481 #[inline(always)]
24482 fn inline_align(_context: fidl::encoding::Context) -> usize {
24483 8
24484 }
24485
24486 #[inline(always)]
24487 fn inline_size(_context: fidl::encoding::Context) -> usize {
24488 16
24489 }
24490 }
24491
24492 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageState, D>
24493 for &UsageState
24494 {
24495 #[inline]
24496 unsafe fn encode(
24497 self,
24498 encoder: &mut fidl::encoding::Encoder<'_, D>,
24499 offset: usize,
24500 _depth: fidl::encoding::Depth,
24501 ) -> fidl::Result<()> {
24502 encoder.debug_check_bounds::<UsageState>(offset);
24503 encoder.write_num::<u64>(self.ordinal(), offset);
24504 match self {
24505 UsageState::Unadjusted(ref val) => {
24506 fidl::encoding::encode_in_envelope::<UsageStateUnadjusted, D>(
24507 <UsageStateUnadjusted as fidl::encoding::ValueTypeMarker>::borrow(val),
24508 encoder,
24509 offset + 8,
24510 _depth,
24511 )
24512 }
24513 UsageState::Ducked(ref val) => {
24514 fidl::encoding::encode_in_envelope::<UsageStateDucked, D>(
24515 <UsageStateDucked as fidl::encoding::ValueTypeMarker>::borrow(val),
24516 encoder,
24517 offset + 8,
24518 _depth,
24519 )
24520 }
24521 UsageState::Muted(ref val) => {
24522 fidl::encoding::encode_in_envelope::<UsageStateMuted, D>(
24523 <UsageStateMuted as fidl::encoding::ValueTypeMarker>::borrow(val),
24524 encoder,
24525 offset + 8,
24526 _depth,
24527 )
24528 }
24529 UsageState::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
24530 }
24531 }
24532 }
24533
24534 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageState {
24535 #[inline(always)]
24536 fn new_empty() -> Self {
24537 Self::__SourceBreaking { unknown_ordinal: 0 }
24538 }
24539
24540 #[inline]
24541 unsafe fn decode(
24542 &mut self,
24543 decoder: &mut fidl::encoding::Decoder<'_, D>,
24544 offset: usize,
24545 mut depth: fidl::encoding::Depth,
24546 ) -> fidl::Result<()> {
24547 decoder.debug_check_bounds::<Self>(offset);
24548 #[allow(unused_variables)]
24549 let next_out_of_line = decoder.next_out_of_line();
24550 let handles_before = decoder.remaining_handles();
24551 let (ordinal, inlined, num_bytes, num_handles) =
24552 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24553
24554 let member_inline_size = match ordinal {
24555 1 => <UsageStateUnadjusted as fidl::encoding::TypeMarker>::inline_size(
24556 decoder.context,
24557 ),
24558 2 => <UsageStateDucked as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24559 3 => <UsageStateMuted as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24560 0 => return Err(fidl::Error::UnknownUnionTag),
24561 _ => num_bytes as usize,
24562 };
24563
24564 if inlined != (member_inline_size <= 4) {
24565 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24566 }
24567 let _inner_offset;
24568 if inlined {
24569 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24570 _inner_offset = offset + 8;
24571 } else {
24572 depth.increment()?;
24573 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24574 }
24575 match ordinal {
24576 1 => {
24577 #[allow(irrefutable_let_patterns)]
24578 if let UsageState::Unadjusted(_) = self {
24579 } else {
24581 *self = UsageState::Unadjusted(fidl::new_empty!(UsageStateUnadjusted, D));
24583 }
24584 #[allow(irrefutable_let_patterns)]
24585 if let UsageState::Unadjusted(ref mut val) = self {
24586 fidl::decode!(UsageStateUnadjusted, D, val, decoder, _inner_offset, depth)?;
24587 } else {
24588 unreachable!()
24589 }
24590 }
24591 2 => {
24592 #[allow(irrefutable_let_patterns)]
24593 if let UsageState::Ducked(_) = self {
24594 } else {
24596 *self = UsageState::Ducked(fidl::new_empty!(UsageStateDucked, D));
24598 }
24599 #[allow(irrefutable_let_patterns)]
24600 if let UsageState::Ducked(ref mut val) = self {
24601 fidl::decode!(UsageStateDucked, D, val, decoder, _inner_offset, depth)?;
24602 } else {
24603 unreachable!()
24604 }
24605 }
24606 3 => {
24607 #[allow(irrefutable_let_patterns)]
24608 if let UsageState::Muted(_) = self {
24609 } else {
24611 *self = UsageState::Muted(fidl::new_empty!(UsageStateMuted, D));
24613 }
24614 #[allow(irrefutable_let_patterns)]
24615 if let UsageState::Muted(ref mut val) = self {
24616 fidl::decode!(UsageStateMuted, D, val, decoder, _inner_offset, depth)?;
24617 } else {
24618 unreachable!()
24619 }
24620 }
24621 #[allow(deprecated)]
24622 ordinal => {
24623 for _ in 0..num_handles {
24624 decoder.drop_next_handle()?;
24625 }
24626 *self = UsageState::__SourceBreaking { unknown_ordinal: ordinal };
24627 }
24628 }
24629 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24630 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24631 }
24632 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24633 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24634 }
24635 Ok(())
24636 }
24637 }
24638
24639 impl fidl::encoding::ValueTypeMarker for Value {
24640 type Borrowed<'a> = &'a Self;
24641 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24642 value
24643 }
24644 }
24645
24646 unsafe impl fidl::encoding::TypeMarker for Value {
24647 type Owned = Self;
24648
24649 #[inline(always)]
24650 fn inline_align(_context: fidl::encoding::Context) -> usize {
24651 8
24652 }
24653
24654 #[inline(always)]
24655 fn inline_size(_context: fidl::encoding::Context) -> usize {
24656 16
24657 }
24658 }
24659
24660 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Value, D> for &Value {
24661 #[inline]
24662 unsafe fn encode(
24663 self,
24664 encoder: &mut fidl::encoding::Encoder<'_, D>,
24665 offset: usize,
24666 _depth: fidl::encoding::Depth,
24667 ) -> fidl::Result<()> {
24668 encoder.debug_check_bounds::<Value>(offset);
24669 encoder.write_num::<u64>(self.ordinal(), offset);
24670 match self {
24671 Value::BoolValue(ref val) => {
24672 fidl::encoding::encode_in_envelope::<bool, D>(
24673 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
24674 encoder, offset + 8, _depth
24675 )
24676 }
24677 Value::Uint64Value(ref val) => {
24678 fidl::encoding::encode_in_envelope::<u64, D>(
24679 <u64 as fidl::encoding::ValueTypeMarker>::borrow(val),
24680 encoder, offset + 8, _depth
24681 )
24682 }
24683 Value::Int64Value(ref val) => {
24684 fidl::encoding::encode_in_envelope::<i64, D>(
24685 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
24686 encoder, offset + 8, _depth
24687 )
24688 }
24689 Value::StringValue(ref val) => {
24690 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedString, D>(
24691 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(val),
24692 encoder, offset + 8, _depth
24693 )
24694 }
24695 Value::BytesValue(ref val) => {
24696 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u8>, D>(
24697 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(val),
24698 encoder, offset + 8, _depth
24699 )
24700 }
24701 }
24702 }
24703 }
24704
24705 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Value {
24706 #[inline(always)]
24707 fn new_empty() -> Self {
24708 Self::BoolValue(fidl::new_empty!(bool, D))
24709 }
24710
24711 #[inline]
24712 unsafe fn decode(
24713 &mut self,
24714 decoder: &mut fidl::encoding::Decoder<'_, D>,
24715 offset: usize,
24716 mut depth: fidl::encoding::Depth,
24717 ) -> fidl::Result<()> {
24718 decoder.debug_check_bounds::<Self>(offset);
24719 #[allow(unused_variables)]
24720 let next_out_of_line = decoder.next_out_of_line();
24721 let handles_before = decoder.remaining_handles();
24722 let (ordinal, inlined, num_bytes, num_handles) =
24723 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24724
24725 let member_inline_size = match ordinal {
24726 1 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24727 2 => <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24728 3 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24729 4 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
24730 decoder.context,
24731 ),
24732 5 => {
24733 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(
24734 decoder.context,
24735 )
24736 }
24737 _ => return Err(fidl::Error::UnknownUnionTag),
24738 };
24739
24740 if inlined != (member_inline_size <= 4) {
24741 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24742 }
24743 let _inner_offset;
24744 if inlined {
24745 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24746 _inner_offset = offset + 8;
24747 } else {
24748 depth.increment()?;
24749 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24750 }
24751 match ordinal {
24752 1 => {
24753 #[allow(irrefutable_let_patterns)]
24754 if let Value::BoolValue(_) = self {
24755 } else {
24757 *self = Value::BoolValue(fidl::new_empty!(bool, D));
24759 }
24760 #[allow(irrefutable_let_patterns)]
24761 if let Value::BoolValue(ref mut val) = self {
24762 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
24763 } else {
24764 unreachable!()
24765 }
24766 }
24767 2 => {
24768 #[allow(irrefutable_let_patterns)]
24769 if let Value::Uint64Value(_) = self {
24770 } else {
24772 *self = Value::Uint64Value(fidl::new_empty!(u64, D));
24774 }
24775 #[allow(irrefutable_let_patterns)]
24776 if let Value::Uint64Value(ref mut val) = self {
24777 fidl::decode!(u64, D, val, decoder, _inner_offset, depth)?;
24778 } else {
24779 unreachable!()
24780 }
24781 }
24782 3 => {
24783 #[allow(irrefutable_let_patterns)]
24784 if let Value::Int64Value(_) = self {
24785 } else {
24787 *self = Value::Int64Value(fidl::new_empty!(i64, D));
24789 }
24790 #[allow(irrefutable_let_patterns)]
24791 if let Value::Int64Value(ref mut val) = self {
24792 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
24793 } else {
24794 unreachable!()
24795 }
24796 }
24797 4 => {
24798 #[allow(irrefutable_let_patterns)]
24799 if let Value::StringValue(_) = self {
24800 } else {
24802 *self = Value::StringValue(fidl::new_empty!(
24804 fidl::encoding::UnboundedString,
24805 D
24806 ));
24807 }
24808 #[allow(irrefutable_let_patterns)]
24809 if let Value::StringValue(ref mut val) = self {
24810 fidl::decode!(
24811 fidl::encoding::UnboundedString,
24812 D,
24813 val,
24814 decoder,
24815 _inner_offset,
24816 depth
24817 )?;
24818 } else {
24819 unreachable!()
24820 }
24821 }
24822 5 => {
24823 #[allow(irrefutable_let_patterns)]
24824 if let Value::BytesValue(_) = self {
24825 } else {
24827 *self = Value::BytesValue(fidl::new_empty!(
24829 fidl::encoding::UnboundedVector<u8>,
24830 D
24831 ));
24832 }
24833 #[allow(irrefutable_let_patterns)]
24834 if let Value::BytesValue(ref mut val) = self {
24835 fidl::decode!(
24836 fidl::encoding::UnboundedVector<u8>,
24837 D,
24838 val,
24839 decoder,
24840 _inner_offset,
24841 depth
24842 )?;
24843 } else {
24844 unreachable!()
24845 }
24846 }
24847 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24848 }
24849 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24851 }
24852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24854 }
24855 Ok(())
24856 }
24857 }
24858
24859 impl fidl::encoding::ValueTypeMarker for VideoCompressedFormat {
24860 type Borrowed<'a> = &'a Self;
24861 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24862 value
24863 }
24864 }
24865
24866 unsafe impl fidl::encoding::TypeMarker for VideoCompressedFormat {
24867 type Owned = Self;
24868
24869 #[inline(always)]
24870 fn inline_align(_context: fidl::encoding::Context) -> usize {
24871 8
24872 }
24873
24874 #[inline(always)]
24875 fn inline_size(_context: fidl::encoding::Context) -> usize {
24876 16
24877 }
24878 }
24879
24880 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoCompressedFormat, D>
24881 for &VideoCompressedFormat
24882 {
24883 #[inline]
24884 unsafe fn encode(
24885 self,
24886 encoder: &mut fidl::encoding::Encoder<'_, D>,
24887 offset: usize,
24888 _depth: fidl::encoding::Depth,
24889 ) -> fidl::Result<()> {
24890 encoder.debug_check_bounds::<VideoCompressedFormat>(offset);
24891 encoder.write_num::<u64>(self.ordinal(), offset);
24892 match self {
24893 VideoCompressedFormat::TempFieldTodoRemove(ref val) => {
24894 fidl::encoding::encode_in_envelope::<u32, D>(
24895 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
24896 encoder,
24897 offset + 8,
24898 _depth,
24899 )
24900 }
24901 }
24902 }
24903 }
24904
24905 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoCompressedFormat {
24906 #[inline(always)]
24907 fn new_empty() -> Self {
24908 Self::TempFieldTodoRemove(fidl::new_empty!(u32, D))
24909 }
24910
24911 #[inline]
24912 unsafe fn decode(
24913 &mut self,
24914 decoder: &mut fidl::encoding::Decoder<'_, D>,
24915 offset: usize,
24916 mut depth: fidl::encoding::Depth,
24917 ) -> fidl::Result<()> {
24918 decoder.debug_check_bounds::<Self>(offset);
24919 #[allow(unused_variables)]
24920 let next_out_of_line = decoder.next_out_of_line();
24921 let handles_before = decoder.remaining_handles();
24922 let (ordinal, inlined, num_bytes, num_handles) =
24923 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24924
24925 let member_inline_size = match ordinal {
24926 1 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24927 _ => return Err(fidl::Error::UnknownUnionTag),
24928 };
24929
24930 if inlined != (member_inline_size <= 4) {
24931 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24932 }
24933 let _inner_offset;
24934 if inlined {
24935 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24936 _inner_offset = offset + 8;
24937 } else {
24938 depth.increment()?;
24939 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24940 }
24941 match ordinal {
24942 1 => {
24943 #[allow(irrefutable_let_patterns)]
24944 if let VideoCompressedFormat::TempFieldTodoRemove(_) = self {
24945 } else {
24947 *self =
24949 VideoCompressedFormat::TempFieldTodoRemove(fidl::new_empty!(u32, D));
24950 }
24951 #[allow(irrefutable_let_patterns)]
24952 if let VideoCompressedFormat::TempFieldTodoRemove(ref mut val) = self {
24953 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
24954 } else {
24955 unreachable!()
24956 }
24957 }
24958 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24959 }
24960 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24961 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24962 }
24963 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24964 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24965 }
24966 Ok(())
24967 }
24968 }
24969
24970 impl fidl::encoding::ValueTypeMarker for VideoFormat {
24971 type Borrowed<'a> = &'a Self;
24972 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24973 value
24974 }
24975 }
24976
24977 unsafe impl fidl::encoding::TypeMarker for VideoFormat {
24978 type Owned = Self;
24979
24980 #[inline(always)]
24981 fn inline_align(_context: fidl::encoding::Context) -> usize {
24982 8
24983 }
24984
24985 #[inline(always)]
24986 fn inline_size(_context: fidl::encoding::Context) -> usize {
24987 16
24988 }
24989 }
24990
24991 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoFormat, D>
24992 for &VideoFormat
24993 {
24994 #[inline]
24995 unsafe fn encode(
24996 self,
24997 encoder: &mut fidl::encoding::Encoder<'_, D>,
24998 offset: usize,
24999 _depth: fidl::encoding::Depth,
25000 ) -> fidl::Result<()> {
25001 encoder.debug_check_bounds::<VideoFormat>(offset);
25002 encoder.write_num::<u64>(self.ordinal(), offset);
25003 match self {
25004 VideoFormat::Compressed(ref val) => {
25005 fidl::encoding::encode_in_envelope::<VideoCompressedFormat, D>(
25006 <VideoCompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
25007 encoder,
25008 offset + 8,
25009 _depth,
25010 )
25011 }
25012 VideoFormat::Uncompressed(ref val) => {
25013 fidl::encoding::encode_in_envelope::<VideoUncompressedFormat, D>(
25014 <VideoUncompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
25015 encoder,
25016 offset + 8,
25017 _depth,
25018 )
25019 }
25020 }
25021 }
25022 }
25023
25024 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoFormat {
25025 #[inline(always)]
25026 fn new_empty() -> Self {
25027 Self::Compressed(fidl::new_empty!(VideoCompressedFormat, D))
25028 }
25029
25030 #[inline]
25031 unsafe fn decode(
25032 &mut self,
25033 decoder: &mut fidl::encoding::Decoder<'_, D>,
25034 offset: usize,
25035 mut depth: fidl::encoding::Depth,
25036 ) -> fidl::Result<()> {
25037 decoder.debug_check_bounds::<Self>(offset);
25038 #[allow(unused_variables)]
25039 let next_out_of_line = decoder.next_out_of_line();
25040 let handles_before = decoder.remaining_handles();
25041 let (ordinal, inlined, num_bytes, num_handles) =
25042 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
25043
25044 let member_inline_size = match ordinal {
25045 1 => <VideoCompressedFormat as fidl::encoding::TypeMarker>::inline_size(
25046 decoder.context,
25047 ),
25048 2 => <VideoUncompressedFormat as fidl::encoding::TypeMarker>::inline_size(
25049 decoder.context,
25050 ),
25051 _ => return Err(fidl::Error::UnknownUnionTag),
25052 };
25053
25054 if inlined != (member_inline_size <= 4) {
25055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
25056 }
25057 let _inner_offset;
25058 if inlined {
25059 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
25060 _inner_offset = offset + 8;
25061 } else {
25062 depth.increment()?;
25063 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
25064 }
25065 match ordinal {
25066 1 => {
25067 #[allow(irrefutable_let_patterns)]
25068 if let VideoFormat::Compressed(_) = self {
25069 } else {
25071 *self = VideoFormat::Compressed(fidl::new_empty!(VideoCompressedFormat, D));
25073 }
25074 #[allow(irrefutable_let_patterns)]
25075 if let VideoFormat::Compressed(ref mut val) = self {
25076 fidl::decode!(
25077 VideoCompressedFormat,
25078 D,
25079 val,
25080 decoder,
25081 _inner_offset,
25082 depth
25083 )?;
25084 } else {
25085 unreachable!()
25086 }
25087 }
25088 2 => {
25089 #[allow(irrefutable_let_patterns)]
25090 if let VideoFormat::Uncompressed(_) = self {
25091 } else {
25093 *self =
25095 VideoFormat::Uncompressed(fidl::new_empty!(VideoUncompressedFormat, D));
25096 }
25097 #[allow(irrefutable_let_patterns)]
25098 if let VideoFormat::Uncompressed(ref mut val) = self {
25099 fidl::decode!(
25100 VideoUncompressedFormat,
25101 D,
25102 val,
25103 decoder,
25104 _inner_offset,
25105 depth
25106 )?;
25107 } else {
25108 unreachable!()
25109 }
25110 }
25111 ordinal => panic!("unexpected ordinal {:?}", ordinal),
25112 }
25113 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
25114 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25115 }
25116 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25117 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25118 }
25119 Ok(())
25120 }
25121 }
25122}