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)]
692pub enum Behavior {
693 None,
695 Duck,
697 Mute,
699 #[doc(hidden)]
700 __SourceBreaking { unknown_ordinal: u32 },
701}
702
703#[macro_export]
705macro_rules! BehaviorUnknown {
706 () => {
707 _
708 };
709}
710
711impl Behavior {
712 #[inline]
713 pub fn from_primitive(prim: u32) -> Option<Self> {
714 match prim {
715 0 => Some(Self::None),
716 1 => Some(Self::Duck),
717 2 => Some(Self::Mute),
718 _ => None,
719 }
720 }
721
722 #[inline]
723 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
724 match prim {
725 0 => Self::None,
726 1 => Self::Duck,
727 2 => Self::Mute,
728 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
729 }
730 }
731
732 #[inline]
733 pub fn unknown() -> Self {
734 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
735 }
736
737 #[inline]
738 pub const fn into_primitive(self) -> u32 {
739 match self {
740 Self::None => 0,
741 Self::Duck => 1,
742 Self::Mute => 2,
743 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
744 }
745 }
746
747 #[inline]
748 pub fn is_unknown(&self) -> bool {
749 match self {
750 Self::__SourceBreaking { unknown_ordinal: _ } => true,
751 _ => false,
752 }
753 }
754}
755
756#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
759pub enum CodecProfile {
760 H264ProfileBaseline,
761 H264ProfileMain,
762 H264ProfileExtended,
763 H264ProfileHigh,
764 H264ProfileHigh10Profile,
765 H264ProfileHigh422Profile,
766 H264ProfileHigh444Predictiveprofile,
767 H264ProfileScalablebaseline,
768 H264ProfileScalablehigh,
769 H264ProfileStereohigh,
770 H264ProfileMultiviewhigh,
771 Vp8ProfileAny,
772 Vp9ProfileProfile0,
773 Vp9ProfileProfile1,
774 Vp9ProfileProfile2,
775 Vp9ProfileProfile3,
776 HevcprofileMain,
777 HevcprofileMain10,
778 HevcprofileMainStillPicture,
779 MjpegBaseline,
780 #[doc(hidden)]
781 __SourceBreaking {
782 unknown_ordinal: u32,
783 },
784}
785
786#[macro_export]
788macro_rules! CodecProfileUnknown {
789 () => {
790 _
791 };
792}
793
794impl CodecProfile {
795 #[inline]
796 pub fn from_primitive(prim: u32) -> Option<Self> {
797 match prim {
798 0 => Some(Self::H264ProfileBaseline),
799 1 => Some(Self::H264ProfileMain),
800 2 => Some(Self::H264ProfileExtended),
801 3 => Some(Self::H264ProfileHigh),
802 4 => Some(Self::H264ProfileHigh10Profile),
803 5 => Some(Self::H264ProfileHigh422Profile),
804 6 => Some(Self::H264ProfileHigh444Predictiveprofile),
805 7 => Some(Self::H264ProfileScalablebaseline),
806 8 => Some(Self::H264ProfileScalablehigh),
807 9 => Some(Self::H264ProfileStereohigh),
808 10 => Some(Self::H264ProfileMultiviewhigh),
809 11 => Some(Self::Vp8ProfileAny),
810 12 => Some(Self::Vp9ProfileProfile0),
811 13 => Some(Self::Vp9ProfileProfile1),
812 14 => Some(Self::Vp9ProfileProfile2),
813 15 => Some(Self::Vp9ProfileProfile3),
814 16 => Some(Self::HevcprofileMain),
815 17 => Some(Self::HevcprofileMain10),
816 18 => Some(Self::HevcprofileMainStillPicture),
817 19 => Some(Self::MjpegBaseline),
818 _ => None,
819 }
820 }
821
822 #[inline]
823 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
824 match prim {
825 0 => Self::H264ProfileBaseline,
826 1 => Self::H264ProfileMain,
827 2 => Self::H264ProfileExtended,
828 3 => Self::H264ProfileHigh,
829 4 => Self::H264ProfileHigh10Profile,
830 5 => Self::H264ProfileHigh422Profile,
831 6 => Self::H264ProfileHigh444Predictiveprofile,
832 7 => Self::H264ProfileScalablebaseline,
833 8 => Self::H264ProfileScalablehigh,
834 9 => Self::H264ProfileStereohigh,
835 10 => Self::H264ProfileMultiviewhigh,
836 11 => Self::Vp8ProfileAny,
837 12 => Self::Vp9ProfileProfile0,
838 13 => Self::Vp9ProfileProfile1,
839 14 => Self::Vp9ProfileProfile2,
840 15 => Self::Vp9ProfileProfile3,
841 16 => Self::HevcprofileMain,
842 17 => Self::HevcprofileMain10,
843 18 => Self::HevcprofileMainStillPicture,
844 19 => Self::MjpegBaseline,
845 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
846 }
847 }
848
849 #[inline]
850 pub fn unknown() -> Self {
851 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
852 }
853
854 #[inline]
855 pub const fn into_primitive(self) -> u32 {
856 match self {
857 Self::H264ProfileBaseline => 0,
858 Self::H264ProfileMain => 1,
859 Self::H264ProfileExtended => 2,
860 Self::H264ProfileHigh => 3,
861 Self::H264ProfileHigh10Profile => 4,
862 Self::H264ProfileHigh422Profile => 5,
863 Self::H264ProfileHigh444Predictiveprofile => 6,
864 Self::H264ProfileScalablebaseline => 7,
865 Self::H264ProfileScalablehigh => 8,
866 Self::H264ProfileStereohigh => 9,
867 Self::H264ProfileMultiviewhigh => 10,
868 Self::Vp8ProfileAny => 11,
869 Self::Vp9ProfileProfile0 => 12,
870 Self::Vp9ProfileProfile1 => 13,
871 Self::Vp9ProfileProfile2 => 14,
872 Self::Vp9ProfileProfile3 => 15,
873 Self::HevcprofileMain => 16,
874 Self::HevcprofileMain10 => 17,
875 Self::HevcprofileMainStillPicture => 18,
876 Self::MjpegBaseline => 19,
877 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
878 }
879 }
880
881 #[inline]
882 pub fn is_unknown(&self) -> bool {
883 match self {
884 Self::__SourceBreaking { unknown_ordinal: _ } => true,
885 _ => false,
886 }
887 }
888}
889
890#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
891#[repr(u32)]
892pub enum ColorSpace {
893 Unknown = 0,
894 NotApplicable = 1,
895 Jpeg = 2,
896 HdRec709 = 3,
897 SdRec601 = 4,
898}
899
900impl ColorSpace {
901 #[inline]
902 pub fn from_primitive(prim: u32) -> Option<Self> {
903 match prim {
904 0 => Some(Self::Unknown),
905 1 => Some(Self::NotApplicable),
906 2 => Some(Self::Jpeg),
907 3 => Some(Self::HdRec709),
908 4 => Some(Self::SdRec601),
909 _ => None,
910 }
911 }
912
913 #[inline]
914 pub const fn into_primitive(self) -> u32 {
915 self as u32
916 }
917}
918
919#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
920pub enum Lc3FrameDuration {
921 D10Ms,
922 D7P5Ms,
923 #[doc(hidden)]
924 __SourceBreaking {
925 unknown_ordinal: u32,
926 },
927}
928
929#[macro_export]
931macro_rules! Lc3FrameDurationUnknown {
932 () => {
933 _
934 };
935}
936
937impl Lc3FrameDuration {
938 #[inline]
939 pub fn from_primitive(prim: u32) -> Option<Self> {
940 match prim {
941 1 => Some(Self::D10Ms),
942 2 => Some(Self::D7P5Ms),
943 _ => None,
944 }
945 }
946
947 #[inline]
948 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
949 match prim {
950 1 => Self::D10Ms,
951 2 => Self::D7P5Ms,
952 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
953 }
954 }
955
956 #[inline]
957 pub fn unknown() -> Self {
958 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
959 }
960
961 #[inline]
962 pub const fn into_primitive(self) -> u32 {
963 match self {
964 Self::D10Ms => 1,
965 Self::D7P5Ms => 2,
966 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
967 }
968 }
969
970 #[inline]
971 pub fn is_unknown(&self) -> bool {
972 match self {
973 Self::__SourceBreaking { unknown_ordinal: _ } => true,
974 _ => false,
975 }
976 }
977}
978
979#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
980#[repr(u32)]
981pub enum SbcAllocation {
982 AllocLoudness = 0,
983 AllocSnr = 1,
984}
985
986impl SbcAllocation {
987 #[inline]
988 pub fn from_primitive(prim: u32) -> Option<Self> {
989 match prim {
990 0 => Some(Self::AllocLoudness),
991 1 => Some(Self::AllocSnr),
992 _ => None,
993 }
994 }
995
996 #[inline]
997 pub const fn into_primitive(self) -> u32 {
998 self as u32
999 }
1000}
1001
1002#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1003#[repr(u32)]
1004pub enum SbcBlockCount {
1005 BlockCount4 = 4,
1006 BlockCount8 = 8,
1007 BlockCount12 = 12,
1008 BlockCount16 = 16,
1009}
1010
1011impl SbcBlockCount {
1012 #[inline]
1013 pub fn from_primitive(prim: u32) -> Option<Self> {
1014 match prim {
1015 4 => Some(Self::BlockCount4),
1016 8 => Some(Self::BlockCount8),
1017 12 => Some(Self::BlockCount12),
1018 16 => Some(Self::BlockCount16),
1019 _ => None,
1020 }
1021 }
1022
1023 #[inline]
1024 pub const fn into_primitive(self) -> u32 {
1025 self as u32
1026 }
1027}
1028
1029#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1030#[repr(u32)]
1031pub enum SbcChannelMode {
1032 Mono = 0,
1033 Dual = 1,
1034 Stereo = 2,
1035 JointStereo = 3,
1036}
1037
1038impl SbcChannelMode {
1039 #[inline]
1040 pub fn from_primitive(prim: u32) -> Option<Self> {
1041 match prim {
1042 0 => Some(Self::Mono),
1043 1 => Some(Self::Dual),
1044 2 => Some(Self::Stereo),
1045 3 => Some(Self::JointStereo),
1046 _ => None,
1047 }
1048 }
1049
1050 #[inline]
1051 pub const fn into_primitive(self) -> u32 {
1052 self as u32
1053 }
1054}
1055
1056#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1057#[repr(u32)]
1058pub enum SbcSubBands {
1059 SubBands4 = 4,
1060 SubBands8 = 8,
1061}
1062
1063impl SbcSubBands {
1064 #[inline]
1065 pub fn from_primitive(prim: u32) -> Option<Self> {
1066 match prim {
1067 4 => Some(Self::SubBands4),
1068 8 => Some(Self::SubBands8),
1069 _ => None,
1070 }
1071 }
1072
1073 #[inline]
1074 pub const fn into_primitive(self) -> u32 {
1075 self as u32
1076 }
1077}
1078
1079#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1085#[repr(u32)]
1086pub enum StreamError {
1087 Unknown = 1,
1089 InvalidInputFormatDetails = 2,
1091 IncompatibleBuffersProvided = 3,
1095 EosProcessing = 4,
1099 DecoderUnknown = 16777217,
1101 DecoderDataParsing = 16777218,
1105 EncoderUnknown = 33554433,
1107 DecryptorUnknown = 50331649,
1109 DecryptorNoKey = 50331650,
1112}
1113
1114impl StreamError {
1115 #[inline]
1116 pub fn from_primitive(prim: u32) -> Option<Self> {
1117 match prim {
1118 1 => Some(Self::Unknown),
1119 2 => Some(Self::InvalidInputFormatDetails),
1120 3 => Some(Self::IncompatibleBuffersProvided),
1121 4 => Some(Self::EosProcessing),
1122 16777217 => Some(Self::DecoderUnknown),
1123 16777218 => Some(Self::DecoderDataParsing),
1124 33554433 => Some(Self::EncoderUnknown),
1125 50331649 => Some(Self::DecryptorUnknown),
1126 50331650 => Some(Self::DecryptorNoKey),
1127 _ => None,
1128 }
1129 }
1130
1131 #[inline]
1132 pub const fn into_primitive(self) -> u32 {
1133 self as u32
1134 }
1135}
1136
1137#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
1138#[repr(u32)]
1139pub enum VideoColorSpace {
1140 Invalid = 0,
1141}
1142
1143impl VideoColorSpace {
1144 #[inline]
1145 pub fn from_primitive(prim: u32) -> Option<Self> {
1146 match prim {
1147 0 => Some(Self::Invalid),
1148 _ => None,
1149 }
1150 }
1151
1152 #[inline]
1153 pub const fn into_primitive(self) -> u32 {
1154 self as u32
1155 }
1156}
1157
1158#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1159#[repr(C)]
1160pub struct AacConstantBitRate {
1161 pub bit_rate: u32,
1163}
1164
1165impl fidl::Persistable for AacConstantBitRate {}
1166
1167#[derive(Clone, Debug, PartialEq)]
1168pub struct AacEncoderSettings {
1169 pub transport: AacTransport,
1170 pub channel_mode: AacChannelMode,
1171 pub bit_rate: AacBitRate,
1172 pub aot: AacAudioObjectType,
1173}
1174
1175impl fidl::Persistable for AacEncoderSettings {}
1176
1177#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1179pub struct AacTransportAdts;
1180
1181impl fidl::Persistable for AacTransportAdts {}
1182
1183#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1185pub struct AacTransportLatm {
1186 pub mux_config_present: bool,
1188}
1189
1190impl fidl::Persistable for AacTransportLatm {}
1191
1192#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1194pub struct AacTransportRaw;
1195
1196impl fidl::Persistable for AacTransportRaw {}
1197
1198#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1199pub struct ActivityReporterWatchCaptureActivityResponse {
1200 pub active_usages: Vec<AudioCaptureUsage>,
1201}
1202
1203impl fidl::Persistable for ActivityReporterWatchCaptureActivityResponse {}
1204
1205#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1206pub struct ActivityReporterWatchRenderActivityResponse {
1207 pub active_usages: Vec<AudioRenderUsage>,
1208}
1209
1210impl fidl::Persistable for ActivityReporterWatchRenderActivityResponse {}
1211
1212#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1213pub struct ActivityReporterWatchCaptureActivity2Response {
1214 pub active_usages: Vec<AudioCaptureUsage2>,
1215}
1216
1217impl fidl::Persistable for ActivityReporterWatchCaptureActivity2Response {}
1218
1219#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1220pub struct ActivityReporterWatchRenderActivity2Response {
1221 pub active_usages: Vec<AudioRenderUsage2>,
1222}
1223
1224impl fidl::Persistable for ActivityReporterWatchRenderActivity2Response {}
1225
1226#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1227#[repr(C)]
1228pub struct AudioCapturerCaptureAtRequest {
1229 pub payload_buffer_id: u32,
1230 pub payload_offset: u32,
1231 pub frames: u32,
1232}
1233
1234impl fidl::Persistable for AudioCapturerCaptureAtRequest {}
1235
1236#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1237#[repr(C)]
1238pub struct AudioCapturerCaptureAtResponse {
1239 pub captured_packet: StreamPacket,
1240}
1241
1242impl fidl::Persistable for AudioCapturerCaptureAtResponse {}
1243
1244#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1245pub struct AudioCapturerGetStreamTypeResponse {
1246 pub stream_type: StreamType,
1247}
1248
1249impl fidl::Persistable for AudioCapturerGetStreamTypeResponse {}
1250
1251#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1252pub struct AudioCapturerSetPcmStreamTypeRequest {
1253 pub stream_type: AudioStreamType,
1254}
1255
1256impl fidl::Persistable for AudioCapturerSetPcmStreamTypeRequest {}
1257
1258#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1259pub struct AudioCapturerSetUsage2Request {
1260 pub usage: AudioCaptureUsage2,
1261}
1262
1263impl fidl::Persistable for AudioCapturerSetUsage2Request {}
1264
1265#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1266pub struct AudioCapturerSetUsageRequest {
1267 pub usage: AudioCaptureUsage,
1268}
1269
1270impl fidl::Persistable for AudioCapturerSetUsageRequest {}
1271
1272#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1273#[repr(C)]
1274pub struct AudioCapturerStartAsyncCaptureRequest {
1275 pub frames_per_packet: u32,
1276}
1277
1278impl fidl::Persistable for AudioCapturerStartAsyncCaptureRequest {}
1279
1280#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1281pub struct AudioCompressedFormatAac;
1282
1283impl fidl::Persistable for AudioCompressedFormatAac {}
1284
1285#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1286pub struct AudioCompressedFormatSbc;
1287
1288impl fidl::Persistable for AudioCompressedFormatSbc {}
1289
1290#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1291pub struct AudioConsumerSetRateRequest {
1292 pub rate: f32,
1293}
1294
1295impl fidl::Persistable for AudioConsumerSetRateRequest {}
1296
1297#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1298pub struct AudioConsumerStartRequest {
1299 pub flags: AudioConsumerStartFlags,
1300 pub reference_time: i64,
1301 pub media_time: i64,
1302}
1303
1304impl fidl::Persistable for AudioConsumerStartRequest {}
1305
1306#[derive(Clone, Debug, PartialEq)]
1307pub struct AudioConsumerWatchStatusResponse {
1308 pub status: AudioConsumerStatus,
1309}
1310
1311impl fidl::Persistable for AudioConsumerWatchStatusResponse {}
1312
1313#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1314pub struct AudioCoreEnableDeviceSettingsRequest {
1315 pub enabled: bool,
1316}
1317
1318impl fidl::Persistable for AudioCoreEnableDeviceSettingsRequest {}
1319
1320#[derive(Clone, Debug, PartialEq)]
1321pub struct AudioCoreGetDbFromVolume2Request {
1322 pub usage: Usage2,
1323 pub volume: f32,
1324}
1325
1326impl fidl::Persistable for AudioCoreGetDbFromVolume2Request {}
1327
1328#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1329pub struct AudioCoreGetDbFromVolumeRequest {
1330 pub usage: Usage,
1331 pub volume: f32,
1332}
1333
1334impl fidl::Persistable for AudioCoreGetDbFromVolumeRequest {}
1335
1336#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1337pub struct AudioCoreGetDbFromVolumeResponse {
1338 pub gain_db: f32,
1339}
1340
1341impl fidl::Persistable for AudioCoreGetDbFromVolumeResponse {}
1342
1343#[derive(Clone, Debug, PartialEq)]
1344pub struct AudioCoreGetVolumeFromDb2Request {
1345 pub usage: Usage2,
1346 pub gain_db: f32,
1347}
1348
1349impl fidl::Persistable for AudioCoreGetVolumeFromDb2Request {}
1350
1351#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1352pub struct AudioCoreGetVolumeFromDbRequest {
1353 pub usage: Usage,
1354 pub gain_db: f32,
1355}
1356
1357impl fidl::Persistable for AudioCoreGetVolumeFromDbRequest {}
1358
1359#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1360pub struct AudioCoreGetVolumeFromDbResponse {
1361 pub volume: f32,
1362}
1363
1364impl fidl::Persistable for AudioCoreGetVolumeFromDbResponse {}
1365
1366#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1367pub struct AudioCoreSetCaptureUsageGain2Request {
1368 pub usage: AudioCaptureUsage2,
1369 pub gain_db: f32,
1370}
1371
1372impl fidl::Persistable for AudioCoreSetCaptureUsageGain2Request {}
1373
1374#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1375pub struct AudioCoreSetCaptureUsageGainRequest {
1376 pub usage: AudioCaptureUsage,
1377 pub gain_db: f32,
1378}
1379
1380impl fidl::Persistable for AudioCoreSetCaptureUsageGainRequest {}
1381
1382#[derive(Clone, Debug, PartialEq)]
1383pub struct AudioCoreSetInteraction2Request {
1384 pub active: Usage2,
1385 pub affected: Usage2,
1386 pub behavior: Behavior,
1387}
1388
1389impl fidl::Persistable for AudioCoreSetInteraction2Request {}
1390
1391#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1392pub struct AudioCoreSetInteractionRequest {
1393 pub active: Usage,
1394 pub affected: Usage,
1395 pub behavior: Behavior,
1396}
1397
1398impl fidl::Persistable for AudioCoreSetInteractionRequest {}
1399
1400#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1401pub struct AudioCoreSetRenderUsageGain2Request {
1402 pub usage: AudioRenderUsage2,
1403 pub gain_db: f32,
1404}
1405
1406impl fidl::Persistable for AudioCoreSetRenderUsageGain2Request {}
1407
1408#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1409pub struct AudioCoreSetRenderUsageGainRequest {
1410 pub usage: AudioRenderUsage,
1411 pub gain_db: f32,
1412}
1413
1414impl fidl::Persistable for AudioCoreSetRenderUsageGainRequest {}
1415
1416#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1417pub struct AudioCoreGetDbFromVolume2Response {
1418 pub gain_db: f32,
1419}
1420
1421impl fidl::Persistable for AudioCoreGetDbFromVolume2Response {}
1422
1423#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1424pub struct AudioCoreGetVolumeFromDb2Response {
1425 pub volume: f32,
1426}
1427
1428impl fidl::Persistable for AudioCoreGetVolumeFromDb2Response {}
1429
1430#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1431#[repr(C)]
1432pub struct AudioDeviceEnumeratorGetDeviceGainRequest {
1433 pub device_token: u64,
1434}
1435
1436impl fidl::Persistable for AudioDeviceEnumeratorGetDeviceGainRequest {}
1437
1438#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1439pub struct AudioDeviceEnumeratorGetDeviceGainResponse {
1440 pub device_token: u64,
1441 pub gain_info: AudioGainInfo,
1442}
1443
1444impl fidl::Persistable for AudioDeviceEnumeratorGetDeviceGainResponse {}
1445
1446#[derive(Clone, Debug, PartialEq, PartialOrd)]
1447pub struct AudioDeviceEnumeratorGetDevicesResponse {
1448 pub devices: Vec<AudioDeviceInfo>,
1449}
1450
1451impl fidl::Persistable for AudioDeviceEnumeratorGetDevicesResponse {}
1452
1453#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1454#[repr(C)]
1455pub struct AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
1456 pub old_default_token: u64,
1457 pub new_default_token: u64,
1458}
1459
1460impl fidl::Persistable for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {}
1461
1462#[derive(Clone, Debug, PartialEq, PartialOrd)]
1463pub struct AudioDeviceEnumeratorOnDeviceAddedRequest {
1464 pub device: AudioDeviceInfo,
1465}
1466
1467impl fidl::Persistable for AudioDeviceEnumeratorOnDeviceAddedRequest {}
1468
1469#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1470pub struct AudioDeviceEnumeratorOnDeviceGainChangedRequest {
1471 pub device_token: u64,
1472 pub gain_info: AudioGainInfo,
1473}
1474
1475impl fidl::Persistable for AudioDeviceEnumeratorOnDeviceGainChangedRequest {}
1476
1477#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1478#[repr(C)]
1479pub struct AudioDeviceEnumeratorOnDeviceRemovedRequest {
1480 pub device_token: u64,
1481}
1482
1483impl fidl::Persistable for AudioDeviceEnumeratorOnDeviceRemovedRequest {}
1484
1485#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1486pub struct AudioDeviceEnumeratorSetDeviceGainRequest {
1487 pub device_token: u64,
1488 pub gain_info: AudioGainInfo,
1489 pub valid_flags: AudioGainValidFlags,
1490}
1491
1492impl fidl::Persistable for AudioDeviceEnumeratorSetDeviceGainRequest {}
1493
1494#[derive(Clone, Debug, PartialEq, PartialOrd)]
1495pub struct AudioDeviceInfo {
1496 pub name: String,
1497 pub unique_id: String,
1498 pub token_id: u64,
1499 pub is_input: bool,
1500 pub gain_info: AudioGainInfo,
1501 pub is_default: bool,
1502}
1503
1504impl fidl::Persistable for AudioDeviceInfo {}
1505
1506#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1507pub struct AudioGainInfo {
1508 pub gain_db: f32,
1509 pub flags: AudioGainInfoFlags,
1510}
1511
1512impl fidl::Persistable for AudioGainInfo {}
1513
1514#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1515pub struct AudioRendererEnableMinLeadTimeEventsRequest {
1516 pub enabled: bool,
1517}
1518
1519impl fidl::Persistable for AudioRendererEnableMinLeadTimeEventsRequest {}
1520
1521#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1522#[repr(C)]
1523pub struct AudioRendererGetMinLeadTimeResponse {
1524 pub min_lead_time_nsec: i64,
1525}
1526
1527impl fidl::Persistable for AudioRendererGetMinLeadTimeResponse {}
1528
1529#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1530#[repr(C)]
1531pub struct AudioRendererOnMinLeadTimeChangedRequest {
1532 pub min_lead_time_nsec: i64,
1533}
1534
1535impl fidl::Persistable for AudioRendererOnMinLeadTimeChangedRequest {}
1536
1537#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1538#[repr(C)]
1539pub struct AudioRendererPauseResponse {
1540 pub reference_time: i64,
1541 pub media_time: i64,
1542}
1543
1544impl fidl::Persistable for AudioRendererPauseResponse {}
1545
1546#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1547#[repr(C)]
1548pub struct AudioRendererPlayNoReplyRequest {
1549 pub reference_time: i64,
1550 pub media_time: i64,
1551}
1552
1553impl fidl::Persistable for AudioRendererPlayNoReplyRequest {}
1554
1555#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1556#[repr(C)]
1557pub struct AudioRendererPlayRequest {
1558 pub reference_time: i64,
1559 pub media_time: i64,
1560}
1561
1562impl fidl::Persistable for AudioRendererPlayRequest {}
1563
1564#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1565#[repr(C)]
1566pub struct AudioRendererPlayResponse {
1567 pub reference_time: i64,
1568 pub media_time: i64,
1569}
1570
1571impl fidl::Persistable for AudioRendererPlayResponse {}
1572
1573#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1574pub struct AudioRendererSetPcmStreamTypeRequest {
1575 pub type_: AudioStreamType,
1576}
1577
1578impl fidl::Persistable for AudioRendererSetPcmStreamTypeRequest {}
1579
1580#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
1581pub struct AudioRendererSetPtsContinuityThresholdRequest {
1582 pub threshold_seconds: f32,
1583}
1584
1585impl fidl::Persistable for AudioRendererSetPtsContinuityThresholdRequest {}
1586
1587#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1588#[repr(C)]
1589pub struct AudioRendererSetPtsUnitsRequest {
1590 pub tick_per_second_numerator: u32,
1591 pub tick_per_second_denominator: u32,
1592}
1593
1594impl fidl::Persistable for AudioRendererSetPtsUnitsRequest {}
1595
1596#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1597pub struct AudioRendererSetUsage2Request {
1598 pub usage2: AudioRenderUsage2,
1599}
1600
1601impl fidl::Persistable for AudioRendererSetUsage2Request {}
1602
1603#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1604pub struct AudioRendererSetUsageRequest {
1605 pub usage: AudioRenderUsage,
1606}
1607
1608impl fidl::Persistable for AudioRendererSetUsageRequest {}
1609
1610#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1612pub struct AudioStreamType {
1613 pub sample_format: AudioSampleFormat,
1614 pub channels: u32,
1615 pub frames_per_second: u32,
1616}
1617
1618impl fidl::Persistable for AudioStreamType {}
1619
1620#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1623pub struct Compression {
1624 pub type_: String,
1628 pub parameters: Option<Vec<u8>>,
1630}
1631
1632impl fidl::Persistable for Compression {}
1633
1634#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1641#[repr(C)]
1642pub struct EncryptionPattern {
1643 pub clear_blocks: u32,
1644 pub encrypted_blocks: u32,
1645}
1646
1647impl fidl::Persistable for EncryptionPattern {}
1648
1649#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1650pub struct Metadata {
1651 pub properties: Vec<Property>,
1652}
1653
1654impl fidl::Persistable for Metadata {}
1655
1656#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1663pub struct Parameter {
1664 pub scope: String,
1665 pub name: String,
1666 pub value: Value,
1667}
1668
1669impl fidl::Persistable for Parameter {}
1670
1671#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1675pub struct PcmFormat {
1676 pub pcm_mode: AudioPcmMode,
1677 pub bits_per_sample: u32,
1678 pub frames_per_second: u32,
1679 pub channel_map: Vec<AudioChannelId>,
1680}
1681
1682impl fidl::Persistable for PcmFormat {}
1683
1684#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1685#[repr(C)]
1686pub struct ProfileProviderRegisterHandlerWithCapacityResponse {
1687 pub period: i64,
1688 pub capacity: i64,
1689}
1690
1691impl fidl::Persistable for ProfileProviderRegisterHandlerWithCapacityResponse {}
1692
1693#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1694pub struct Property {
1695 pub label: String,
1696 pub value: String,
1697}
1698
1699impl fidl::Persistable for Property {}
1700
1701#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1709pub struct SbcEncoderSettings {
1710 pub sub_bands: SbcSubBands,
1711 pub allocation: SbcAllocation,
1712 pub block_count: SbcBlockCount,
1713 pub channel_mode: SbcChannelMode,
1714 pub bit_pool: u64,
1716}
1717
1718impl fidl::Persistable for SbcEncoderSettings {}
1719
1720#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1721#[repr(C)]
1722pub struct StreamBufferSetRemovePayloadBufferRequest {
1723 pub id: u32,
1724}
1725
1726impl fidl::Persistable for StreamBufferSetRemovePayloadBufferRequest {}
1727
1728#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1730#[repr(C)]
1731pub struct StreamPacket {
1732 pub pts: i64,
1735 pub payload_buffer_id: u32,
1742 pub payload_offset: u64,
1747 pub payload_size: u64,
1752 pub flags: u32,
1755 pub buffer_config: u64,
1763 pub stream_segment_id: u64,
1769}
1770
1771impl fidl::Persistable for StreamPacket {}
1772
1773#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1774pub struct StreamProcessorCloseCurrentStreamRequest {
1775 pub stream_lifetime_ordinal: u64,
1776 pub release_input_buffers: bool,
1777 pub release_output_buffers: bool,
1778}
1779
1780impl fidl::Persistable for StreamProcessorCloseCurrentStreamRequest {}
1781
1782#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1783#[repr(C)]
1784pub struct StreamProcessorCompleteOutputBufferPartialSettingsRequest {
1785 pub buffer_lifetime_ordinal: u64,
1786}
1787
1788impl fidl::Persistable for StreamProcessorCompleteOutputBufferPartialSettingsRequest {}
1789
1790#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1791#[repr(C)]
1792pub struct StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
1793 pub stream_lifetime_ordinal: u64,
1794}
1795
1796impl fidl::Persistable for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {}
1797
1798#[derive(Clone, Debug, PartialEq)]
1799pub struct StreamProcessorOnFreeInputPacketRequest {
1800 pub free_input_packet: PacketHeader,
1801}
1802
1803impl fidl::Persistable for StreamProcessorOnFreeInputPacketRequest {}
1804
1805#[derive(Clone, Debug, PartialEq)]
1806pub struct StreamProcessorOnInputConstraintsRequest {
1807 pub input_constraints: StreamBufferConstraints,
1808}
1809
1810impl fidl::Persistable for StreamProcessorOnInputConstraintsRequest {}
1811
1812#[derive(Clone, Debug, PartialEq)]
1813pub struct StreamProcessorOnOutputConstraintsRequest {
1814 pub output_config: StreamOutputConstraints,
1815}
1816
1817impl fidl::Persistable for StreamProcessorOnOutputConstraintsRequest {}
1818
1819#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1820pub struct StreamProcessorOnOutputEndOfStreamRequest {
1821 pub stream_lifetime_ordinal: u64,
1822 pub error_detected_before: bool,
1823}
1824
1825impl fidl::Persistable for StreamProcessorOnOutputEndOfStreamRequest {}
1826
1827#[derive(Clone, Debug, PartialEq)]
1828pub struct StreamProcessorOnOutputFormatRequest {
1829 pub output_format: StreamOutputFormat,
1830}
1831
1832impl fidl::Persistable for StreamProcessorOnOutputFormatRequest {}
1833
1834#[derive(Clone, Debug, PartialEq)]
1835pub struct StreamProcessorOnOutputPacketRequest {
1836 pub output_packet: Packet,
1837 pub error_detected_before: bool,
1838 pub error_detected_during: bool,
1839}
1840
1841impl fidl::Persistable for StreamProcessorOnOutputPacketRequest {}
1842
1843#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1844pub struct StreamProcessorOnStreamFailedRequest {
1845 pub stream_lifetime_ordinal: u64,
1846 pub error: StreamError,
1847}
1848
1849impl fidl::Persistable for StreamProcessorOnStreamFailedRequest {}
1850
1851#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1852#[repr(C)]
1853pub struct StreamProcessorQueueInputEndOfStreamRequest {
1854 pub stream_lifetime_ordinal: u64,
1855}
1856
1857impl fidl::Persistable for StreamProcessorQueueInputEndOfStreamRequest {}
1858
1859#[derive(Clone, Debug, PartialEq)]
1860pub struct StreamProcessorQueueInputFormatDetailsRequest {
1861 pub stream_lifetime_ordinal: u64,
1862 pub format_details: FormatDetails,
1863}
1864
1865impl fidl::Persistable for StreamProcessorQueueInputFormatDetailsRequest {}
1866
1867#[derive(Clone, Debug, PartialEq)]
1868pub struct StreamProcessorQueueInputPacketRequest {
1869 pub packet: Packet,
1870}
1871
1872impl fidl::Persistable for StreamProcessorQueueInputPacketRequest {}
1873
1874#[derive(Clone, Debug, PartialEq)]
1875pub struct StreamProcessorRecycleOutputPacketRequest {
1876 pub available_output_packet: PacketHeader,
1877}
1878
1879impl fidl::Persistable for StreamProcessorRecycleOutputPacketRequest {}
1880
1881#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1882#[repr(C)]
1883pub struct StreamSinkSendPacketNoReplyRequest {
1884 pub packet: StreamPacket,
1885}
1886
1887impl fidl::Persistable for StreamSinkSendPacketNoReplyRequest {}
1888
1889#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1890#[repr(C)]
1891pub struct StreamSinkSendPacketRequest {
1892 pub packet: StreamPacket,
1893}
1894
1895impl fidl::Persistable for StreamSinkSendPacketRequest {}
1896
1897#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1898#[repr(C)]
1899pub struct StreamSourceOnPacketProducedRequest {
1900 pub packet: StreamPacket,
1901}
1902
1903impl fidl::Persistable for StreamSourceOnPacketProducedRequest {}
1904
1905#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1906#[repr(C)]
1907pub struct StreamSourceReleasePacketRequest {
1908 pub packet: StreamPacket,
1909}
1910
1911impl fidl::Persistable for StreamSourceReleasePacketRequest {}
1912
1913#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1915pub struct StreamType {
1916 pub medium_specific: MediumSpecificStreamType,
1918 pub encoding: String,
1921 pub encoding_parameters: Option<Vec<u8>>,
1927}
1928
1929impl fidl::Persistable for StreamType {}
1930
1931#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1933pub struct SubpictureStreamType;
1934
1935impl fidl::Persistable for SubpictureStreamType {}
1936
1937#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1943#[repr(C)]
1944pub struct SubsampleEntry {
1945 pub clear_bytes: u32,
1946 pub encrypted_bytes: u32,
1947}
1948
1949impl fidl::Persistable for SubsampleEntry {}
1950
1951#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1953pub struct TextStreamType;
1954
1955impl fidl::Persistable for TextStreamType {}
1956
1957#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
1993#[repr(C)]
1994pub struct TimelineFunction {
1995 pub subject_time: i64,
1997 pub reference_time: i64,
1999 pub subject_delta: u32,
2001 pub reference_delta: u32,
2004}
2005
2006impl fidl::Persistable for TimelineFunction {}
2007
2008#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
2009pub struct UsageGainListenerOnGainMuteChangedRequest {
2010 pub muted: bool,
2011 pub gain_dbfs: f32,
2012}
2013
2014impl fidl::Persistable for UsageGainListenerOnGainMuteChangedRequest {}
2015
2016#[derive(Clone, Debug, PartialEq)]
2017pub struct UsageWatcher2OnStateChangedRequest {
2018 pub usage: Usage2,
2019 pub state: UsageState,
2020}
2021
2022impl fidl::Persistable for UsageWatcher2OnStateChangedRequest {}
2023
2024#[derive(Clone, Debug, PartialEq)]
2025pub struct UsageWatcherOnStateChangedRequest {
2026 pub usage: Usage,
2027 pub state: UsageState,
2028}
2029
2030impl fidl::Persistable for UsageWatcherOnStateChangedRequest {}
2031
2032#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2034pub struct VideoStreamType {
2035 pub pixel_format: fidl_fuchsia_images::PixelFormat,
2036 pub color_space: ColorSpace,
2037 pub width: u32,
2039 pub height: u32,
2040 pub coded_width: u32,
2043 pub coded_height: u32,
2044 pub pixel_aspect_ratio_width: u32,
2047 pub pixel_aspect_ratio_height: u32,
2048 pub stride: u32,
2050}
2051
2052impl fidl::Persistable for VideoStreamType {}
2053
2054#[derive(Clone, Debug, PartialEq)]
2058pub struct VideoUncompressedFormat {
2059 pub image_format: fidl_fuchsia_sysmem::ImageFormat2,
2060 pub fourcc: u32,
2061 pub primary_width_pixels: u32,
2062 pub primary_height_pixels: u32,
2063 pub secondary_width_pixels: u32,
2064 pub secondary_height_pixels: u32,
2065 pub planar: bool,
2066 pub swizzled: bool,
2067 pub primary_line_stride_bytes: u32,
2068 pub secondary_line_stride_bytes: u32,
2069 pub primary_start_offset: u32,
2070 pub secondary_start_offset: u32,
2071 pub tertiary_start_offset: u32,
2072 pub primary_pixel_stride: u32,
2073 pub secondary_pixel_stride: u32,
2074 pub primary_display_width_pixels: u32,
2075 pub primary_display_height_pixels: u32,
2076 pub has_pixel_aspect_ratio: bool,
2077 pub pixel_aspect_ratio_width: u32,
2078 pub pixel_aspect_ratio_height: u32,
2079}
2080
2081impl fidl::Persistable for VideoUncompressedFormat {}
2082
2083#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2084pub struct Void;
2085
2086impl fidl::Persistable for Void {}
2087
2088#[derive(Clone, Debug, Default, PartialEq)]
2092pub struct AudioCompressedFormatCvsd {
2093 #[doc(hidden)]
2094 pub __source_breaking: fidl::marker::SourceBreaking,
2095}
2096
2097impl fidl::Persistable for AudioCompressedFormatCvsd {}
2098
2099#[derive(Clone, Debug, Default, PartialEq)]
2103pub struct AudioCompressedFormatLc3 {
2104 #[doc(hidden)]
2105 pub __source_breaking: fidl::marker::SourceBreaking,
2106}
2107
2108impl fidl::Persistable for AudioCompressedFormatLc3 {}
2109
2110#[derive(Clone, Debug, Default, PartialEq)]
2113pub struct AudioConsumerStatus {
2114 pub error: Option<AudioConsumerError>,
2116 pub presentation_timeline: Option<TimelineFunction>,
2124 pub min_lead_time: Option<u64>,
2129 pub max_lead_time: Option<u64>,
2134 #[doc(hidden)]
2135 pub __source_breaking: fidl::marker::SourceBreaking,
2136}
2137
2138impl fidl::Persistable for AudioConsumerStatus {}
2139
2140#[derive(Clone, Debug, Default, PartialEq)]
2144pub struct CvsdEncoderSettings {
2145 #[doc(hidden)]
2146 pub __source_breaking: fidl::marker::SourceBreaking,
2147}
2148
2149impl fidl::Persistable for CvsdEncoderSettings {}
2150
2151#[derive(Clone, Debug, Default, PartialEq)]
2157pub struct DecryptedFormat {
2158 pub ignore_this_field: Option<bool>,
2159 #[doc(hidden)]
2160 pub __source_breaking: fidl::marker::SourceBreaking,
2161}
2162
2163impl fidl::Persistable for DecryptedFormat {}
2164
2165#[derive(Clone, Debug, Default, PartialEq)]
2172pub struct EncryptedFormat {
2173 pub init_vector: Option<Vec<u8>>,
2181 pub subsamples: Option<Vec<SubsampleEntry>>,
2187 pub pattern: Option<EncryptionPattern>,
2195 pub scheme: Option<String>,
2205 pub key_id: Option<Vec<u8>>,
2212 #[doc(hidden)]
2213 pub __source_breaking: fidl::marker::SourceBreaking,
2214}
2215
2216impl fidl::Persistable for EncryptedFormat {}
2217
2218#[derive(Clone, Debug, Default, PartialEq)]
2223pub struct FormatDetails {
2224 pub format_details_version_ordinal: Option<u64>,
2225 pub mime_type: Option<String>,
2226 pub oob_bytes: Option<Vec<u8>>,
2227 pub domain: Option<DomainFormat>,
2228 pub pass_through_parameters: Option<Vec<Parameter>>,
2229 pub encoder_settings: Option<EncoderSettings>,
2234 pub timebase: Option<u64>,
2248 pub profile: Option<CodecProfile>,
2261 #[doc(hidden)]
2262 pub __source_breaking: fidl::marker::SourceBreaking,
2263}
2264
2265impl fidl::Persistable for FormatDetails {}
2266
2267#[derive(Clone, Debug, Default, PartialEq)]
2269pub struct H264EncoderSettings {
2270 pub bit_rate: Option<u32>,
2273 pub frame_rate: Option<u32>,
2276 pub gop_size: Option<u32>,
2280 pub variable_frame_rate: Option<bool>,
2283 pub min_frame_rate: Option<u32>,
2286 pub force_key_frame: Option<bool>,
2289 pub quantization_params: Option<H264QuantizationParameters>,
2293 #[doc(hidden)]
2294 pub __source_breaking: fidl::marker::SourceBreaking,
2295}
2296
2297impl fidl::Persistable for H264EncoderSettings {}
2298
2299#[derive(Clone, Debug, Default, PartialEq)]
2308pub struct H264QuantizationParameters {
2309 pub i_base: Option<u32>,
2311 pub i_min: Option<u32>,
2313 pub i_max: Option<u32>,
2315 pub p_base: Option<u32>,
2317 pub p_min: Option<u32>,
2319 pub p_max: Option<u32>,
2321 #[doc(hidden)]
2322 pub __source_breaking: fidl::marker::SourceBreaking,
2323}
2324
2325impl fidl::Persistable for H264QuantizationParameters {}
2326
2327#[derive(Clone, Debug, Default, PartialEq)]
2329pub struct HevcEncoderSettings {
2330 pub bit_rate: Option<u32>,
2333 pub frame_rate: Option<u32>,
2335 pub gop_size: Option<u32>,
2337 #[doc(hidden)]
2338 pub __source_breaking: fidl::marker::SourceBreaking,
2339}
2340
2341impl fidl::Persistable for HevcEncoderSettings {}
2342
2343#[derive(Clone, Debug, Default, PartialEq)]
2346pub struct InputAudioCapturerConfiguration {
2347 pub usage: Option<AudioCaptureUsage>,
2348 pub usage2: Option<AudioCaptureUsage2>,
2349 #[doc(hidden)]
2350 pub __source_breaking: fidl::marker::SourceBreaking,
2351}
2352
2353impl fidl::Persistable for InputAudioCapturerConfiguration {}
2354
2355#[derive(Clone, Debug, Default, PartialEq)]
2358pub struct Lc3EncoderSettings {
2359 pub nbytes: Option<u16>,
2364 pub frame_duration: Option<Lc3FrameDuration>,
2367 #[doc(hidden)]
2368 pub __source_breaking: fidl::marker::SourceBreaking,
2369}
2370
2371impl fidl::Persistable for Lc3EncoderSettings {}
2372
2373#[derive(Clone, Debug, Default, PartialEq)]
2376pub struct LoopbackAudioCapturerConfiguration {
2377 #[doc(hidden)]
2378 pub __source_breaking: fidl::marker::SourceBreaking,
2379}
2380
2381impl fidl::Persistable for LoopbackAudioCapturerConfiguration {}
2382
2383#[derive(Clone, Debug, Default, PartialEq)]
2386pub struct MSbcEncoderSettings {
2387 #[doc(hidden)]
2388 pub __source_breaking: fidl::marker::SourceBreaking,
2389}
2390
2391impl fidl::Persistable for MSbcEncoderSettings {}
2392
2393#[derive(Clone, Debug, Default, PartialEq)]
2410pub struct Packet {
2411 pub header: Option<PacketHeader>,
2412 pub buffer_index: Option<u32>,
2426 pub stream_lifetime_ordinal: Option<u64>,
2435 pub start_offset: Option<u32>,
2454 pub valid_length_bytes: Option<u32>,
2477 pub timestamp_ish: Option<u64>,
2497 pub start_access_unit: Option<bool>,
2508 pub known_end_access_unit: Option<bool>,
2520 pub key_frame: Option<bool>,
2524 #[doc(hidden)]
2525 pub __source_breaking: fidl::marker::SourceBreaking,
2526}
2527
2528impl fidl::Persistable for Packet {}
2529
2530#[derive(Clone, Debug, Default, PartialEq)]
2538pub struct PacketHeader {
2539 pub buffer_lifetime_ordinal: Option<u64>,
2552 pub packet_index: Option<u32>,
2572 #[doc(hidden)]
2573 pub __source_breaking: fidl::marker::SourceBreaking,
2574}
2575
2576impl fidl::Persistable for PacketHeader {}
2577
2578#[derive(Clone, Debug, Default, PartialEq)]
2591pub struct StreamBufferConstraints {
2592 pub buffer_constraints_version_ordinal: Option<u64>,
2607 pub default_settings: Option<StreamBufferSettings>,
2608 pub per_packet_buffer_bytes_min: Option<u32>,
2609 pub per_packet_buffer_bytes_recommended: Option<u32>,
2610 pub per_packet_buffer_bytes_max: Option<u32>,
2611 pub packet_count_for_server_min: Option<u32>,
2612 pub packet_count_for_server_recommended: Option<u32>,
2613 pub packet_count_for_server_recommended_max: Option<u32>,
2614 pub packet_count_for_server_max: Option<u32>,
2615 pub packet_count_for_client_min: Option<u32>,
2616 pub packet_count_for_client_max: Option<u32>,
2617 pub single_buffer_mode_allowed: Option<bool>,
2618 pub is_physically_contiguous_required: Option<bool>,
2619 #[doc(hidden)]
2620 pub __source_breaking: fidl::marker::SourceBreaking,
2621}
2622
2623impl fidl::Persistable for StreamBufferConstraints {}
2624
2625#[derive(Clone, Debug, Default, PartialEq)]
2628pub struct StreamBufferSettings {
2629 pub buffer_lifetime_ordinal: Option<u64>,
2630 pub buffer_constraints_version_ordinal: Option<u64>,
2631 pub packet_count_for_server: Option<u32>,
2632 pub packet_count_for_client: Option<u32>,
2633 pub per_packet_buffer_bytes: Option<u32>,
2634 pub single_buffer_mode: Option<bool>,
2635 #[doc(hidden)]
2636 pub __source_breaking: fidl::marker::SourceBreaking,
2637}
2638
2639impl fidl::Persistable for StreamBufferSettings {}
2640
2641#[derive(Clone, Debug, Default, PartialEq)]
2644pub struct StreamOutputConstraints {
2645 pub stream_lifetime_ordinal: Option<u64>,
2659 pub buffer_constraints_action_required: Option<bool>,
2688 pub buffer_constraints: Option<StreamBufferConstraints>,
2689 #[doc(hidden)]
2690 pub __source_breaking: fidl::marker::SourceBreaking,
2691}
2692
2693impl fidl::Persistable for StreamOutputConstraints {}
2694
2695#[derive(Clone, Debug, Default, PartialEq)]
2696pub struct StreamOutputFormat {
2697 pub stream_lifetime_ordinal: Option<u64>,
2710 pub format_details: Option<FormatDetails>,
2767 #[doc(hidden)]
2768 pub __source_breaking: fidl::marker::SourceBreaking,
2769}
2770
2771impl fidl::Persistable for StreamOutputFormat {}
2772
2773#[derive(Clone, Debug, Default, PartialEq)]
2776pub struct UsageStateDucked {
2777 #[doc(hidden)]
2778 pub __source_breaking: fidl::marker::SourceBreaking,
2779}
2780
2781impl fidl::Persistable for UsageStateDucked {}
2782
2783#[derive(Clone, Debug, Default, PartialEq)]
2786pub struct UsageStateMuted {
2787 #[doc(hidden)]
2788 pub __source_breaking: fidl::marker::SourceBreaking,
2789}
2790
2791impl fidl::Persistable for UsageStateMuted {}
2792
2793#[derive(Clone, Debug, Default, PartialEq)]
2795pub struct UsageStateUnadjusted {
2796 #[doc(hidden)]
2797 pub __source_breaking: fidl::marker::SourceBreaking,
2798}
2799
2800impl fidl::Persistable for UsageStateUnadjusted {}
2801
2802#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2803pub enum AacBitRate {
2804 Constant(AacConstantBitRate),
2805 Variable(AacVariableBitRate),
2806}
2807
2808impl AacBitRate {
2809 #[inline]
2810 pub fn ordinal(&self) -> u64 {
2811 match *self {
2812 Self::Constant(_) => 1,
2813 Self::Variable(_) => 2,
2814 }
2815 }
2816}
2817
2818impl fidl::Persistable for AacBitRate {}
2819
2820#[derive(Clone, Debug)]
2821pub enum AacTransport {
2822 Raw(AacTransportRaw),
2823 Latm(AacTransportLatm),
2824 Adts(AacTransportAdts),
2825 #[doc(hidden)]
2826 __SourceBreaking {
2827 unknown_ordinal: u64,
2828 },
2829}
2830
2831#[macro_export]
2833macro_rules! AacTransportUnknown {
2834 () => {
2835 _
2836 };
2837}
2838
2839impl PartialEq for AacTransport {
2841 fn eq(&self, other: &Self) -> bool {
2842 match (self, other) {
2843 (Self::Raw(x), Self::Raw(y)) => *x == *y,
2844 (Self::Latm(x), Self::Latm(y)) => *x == *y,
2845 (Self::Adts(x), Self::Adts(y)) => *x == *y,
2846 _ => false,
2847 }
2848 }
2849}
2850
2851impl AacTransport {
2852 #[inline]
2853 pub fn ordinal(&self) -> u64 {
2854 match *self {
2855 Self::Raw(_) => 1,
2856 Self::Latm(_) => 2,
2857 Self::Adts(_) => 3,
2858 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2859 }
2860 }
2861
2862 #[inline]
2863 pub fn unknown_variant_for_testing() -> Self {
2864 Self::__SourceBreaking { unknown_ordinal: 0 }
2865 }
2866
2867 #[inline]
2868 pub fn is_unknown(&self) -> bool {
2869 match self {
2870 Self::__SourceBreaking { .. } => true,
2871 _ => false,
2872 }
2873 }
2874}
2875
2876impl fidl::Persistable for AacTransport {}
2877
2878#[derive(Clone, Debug, PartialEq)]
2880pub enum AudioCapturerConfiguration {
2881 Loopback(LoopbackAudioCapturerConfiguration),
2882 Input(InputAudioCapturerConfiguration),
2883}
2884
2885impl AudioCapturerConfiguration {
2886 #[inline]
2887 pub fn ordinal(&self) -> u64 {
2888 match *self {
2889 Self::Loopback(_) => 1,
2890 Self::Input(_) => 2,
2891 }
2892 }
2893}
2894
2895impl fidl::Persistable for AudioCapturerConfiguration {}
2896
2897#[derive(Clone, Debug)]
2898pub enum AudioCompressedFormat {
2899 Aac(AudioCompressedFormatAac),
2900 Sbc(AudioCompressedFormatSbc),
2901 Cvsd(AudioCompressedFormatCvsd),
2902 Lc3(AudioCompressedFormatLc3),
2903 #[doc(hidden)]
2904 __SourceBreaking {
2905 unknown_ordinal: u64,
2906 },
2907}
2908
2909#[macro_export]
2911macro_rules! AudioCompressedFormatUnknown {
2912 () => {
2913 _
2914 };
2915}
2916
2917impl PartialEq for AudioCompressedFormat {
2919 fn eq(&self, other: &Self) -> bool {
2920 match (self, other) {
2921 (Self::Aac(x), Self::Aac(y)) => *x == *y,
2922 (Self::Sbc(x), Self::Sbc(y)) => *x == *y,
2923 (Self::Cvsd(x), Self::Cvsd(y)) => *x == *y,
2924 (Self::Lc3(x), Self::Lc3(y)) => *x == *y,
2925 _ => false,
2926 }
2927 }
2928}
2929
2930impl AudioCompressedFormat {
2931 #[inline]
2932 pub fn ordinal(&self) -> u64 {
2933 match *self {
2934 Self::Aac(_) => 1,
2935 Self::Sbc(_) => 2,
2936 Self::Cvsd(_) => 3,
2937 Self::Lc3(_) => 4,
2938 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
2939 }
2940 }
2941
2942 #[inline]
2943 pub fn unknown_variant_for_testing() -> Self {
2944 Self::__SourceBreaking { unknown_ordinal: 0 }
2945 }
2946
2947 #[inline]
2948 pub fn is_unknown(&self) -> bool {
2949 match self {
2950 Self::__SourceBreaking { .. } => true,
2951 _ => false,
2952 }
2953 }
2954}
2955
2956impl fidl::Persistable for AudioCompressedFormat {}
2957
2958#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2960pub enum AudioConsumerError {
2961 PlaceHolder(Void),
2962}
2963
2964impl AudioConsumerError {
2965 #[inline]
2966 pub fn ordinal(&self) -> u64 {
2967 match *self {
2968 Self::PlaceHolder(_) => 1,
2969 }
2970 }
2971}
2972
2973impl fidl::Persistable for AudioConsumerError {}
2974
2975#[derive(Clone, Debug, PartialEq)]
2977pub enum AudioFormat {
2978 Compressed(AudioCompressedFormat),
2979 Uncompressed(AudioUncompressedFormat),
2980}
2981
2982impl AudioFormat {
2983 #[inline]
2984 pub fn ordinal(&self) -> u64 {
2985 match *self {
2986 Self::Compressed(_) => 1,
2987 Self::Uncompressed(_) => 2,
2988 }
2989 }
2990}
2991
2992impl fidl::Persistable for AudioFormat {}
2993
2994#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
2996pub enum AudioUncompressedFormat {
2997 Pcm(PcmFormat),
2998}
2999
3000impl AudioUncompressedFormat {
3001 #[inline]
3002 pub fn ordinal(&self) -> u64 {
3003 match *self {
3004 Self::Pcm(_) => 1,
3005 }
3006 }
3007}
3008
3009impl fidl::Persistable for AudioUncompressedFormat {}
3010
3011#[derive(Clone, Debug)]
3015pub enum CryptoFormat {
3016 Encrypted(EncryptedFormat),
3017 Decrypted(DecryptedFormat),
3018 #[doc(hidden)]
3019 __SourceBreaking {
3020 unknown_ordinal: u64,
3021 },
3022}
3023
3024#[macro_export]
3026macro_rules! CryptoFormatUnknown {
3027 () => {
3028 _
3029 };
3030}
3031
3032impl PartialEq for CryptoFormat {
3034 fn eq(&self, other: &Self) -> bool {
3035 match (self, other) {
3036 (Self::Encrypted(x), Self::Encrypted(y)) => *x == *y,
3037 (Self::Decrypted(x), Self::Decrypted(y)) => *x == *y,
3038 _ => false,
3039 }
3040 }
3041}
3042
3043impl CryptoFormat {
3044 #[inline]
3045 pub fn ordinal(&self) -> u64 {
3046 match *self {
3047 Self::Encrypted(_) => 1,
3048 Self::Decrypted(_) => 2,
3049 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3050 }
3051 }
3052
3053 #[inline]
3054 pub fn unknown_variant_for_testing() -> Self {
3055 Self::__SourceBreaking { unknown_ordinal: 0 }
3056 }
3057
3058 #[inline]
3059 pub fn is_unknown(&self) -> bool {
3060 match self {
3061 Self::__SourceBreaking { .. } => true,
3062 _ => false,
3063 }
3064 }
3065}
3066
3067impl fidl::Persistable for CryptoFormat {}
3068
3069#[derive(Clone, Debug, PartialEq)]
3071pub enum DomainFormat {
3072 Audio(AudioFormat),
3073 Video(VideoFormat),
3074 Crypto(CryptoFormat),
3075}
3076
3077impl DomainFormat {
3078 #[inline]
3079 pub fn ordinal(&self) -> u64 {
3080 match *self {
3081 Self::Audio(_) => 1,
3082 Self::Video(_) => 2,
3083 Self::Crypto(_) => 3,
3084 }
3085 }
3086}
3087
3088impl fidl::Persistable for DomainFormat {}
3089
3090#[derive(Clone, Debug)]
3093pub enum EncoderSettings {
3094 Sbc(SbcEncoderSettings),
3095 Aac(AacEncoderSettings),
3096 H264(H264EncoderSettings),
3097 Hevc(HevcEncoderSettings),
3098 Cvsd(CvsdEncoderSettings),
3099 Lc3(Lc3EncoderSettings),
3100 Msbc(MSbcEncoderSettings),
3101 #[doc(hidden)]
3102 __SourceBreaking {
3103 unknown_ordinal: u64,
3104 },
3105}
3106
3107#[macro_export]
3109macro_rules! EncoderSettingsUnknown {
3110 () => {
3111 _
3112 };
3113}
3114
3115impl PartialEq for EncoderSettings {
3117 fn eq(&self, other: &Self) -> bool {
3118 match (self, other) {
3119 (Self::Sbc(x), Self::Sbc(y)) => *x == *y,
3120 (Self::Aac(x), Self::Aac(y)) => *x == *y,
3121 (Self::H264(x), Self::H264(y)) => *x == *y,
3122 (Self::Hevc(x), Self::Hevc(y)) => *x == *y,
3123 (Self::Cvsd(x), Self::Cvsd(y)) => *x == *y,
3124 (Self::Lc3(x), Self::Lc3(y)) => *x == *y,
3125 (Self::Msbc(x), Self::Msbc(y)) => *x == *y,
3126 _ => false,
3127 }
3128 }
3129}
3130
3131impl EncoderSettings {
3132 #[inline]
3133 pub fn ordinal(&self) -> u64 {
3134 match *self {
3135 Self::Sbc(_) => 1,
3136 Self::Aac(_) => 2,
3137 Self::H264(_) => 3,
3138 Self::Hevc(_) => 4,
3139 Self::Cvsd(_) => 5,
3140 Self::Lc3(_) => 6,
3141 Self::Msbc(_) => 7,
3142 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3143 }
3144 }
3145
3146 #[inline]
3147 pub fn unknown_variant_for_testing() -> Self {
3148 Self::__SourceBreaking { unknown_ordinal: 0 }
3149 }
3150
3151 #[inline]
3152 pub fn is_unknown(&self) -> bool {
3153 match self {
3154 Self::__SourceBreaking { .. } => true,
3155 _ => false,
3156 }
3157 }
3158}
3159
3160impl fidl::Persistable for EncoderSettings {}
3161
3162#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3164pub enum MediumSpecificStreamType {
3165 Audio(AudioStreamType),
3166 Video(VideoStreamType),
3167 Text(TextStreamType),
3168 Subpicture(SubpictureStreamType),
3169}
3170
3171impl MediumSpecificStreamType {
3172 #[inline]
3173 pub fn ordinal(&self) -> u64 {
3174 match *self {
3175 Self::Audio(_) => 1,
3176 Self::Video(_) => 2,
3177 Self::Text(_) => 3,
3178 Self::Subpicture(_) => 4,
3179 }
3180 }
3181}
3182
3183impl fidl::Persistable for MediumSpecificStreamType {}
3184
3185#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3186pub enum Usage {
3187 RenderUsage(AudioRenderUsage),
3188 CaptureUsage(AudioCaptureUsage),
3189}
3190
3191impl Usage {
3192 #[inline]
3193 pub fn ordinal(&self) -> u64 {
3194 match *self {
3195 Self::RenderUsage(_) => 1,
3196 Self::CaptureUsage(_) => 2,
3197 }
3198 }
3199}
3200
3201impl fidl::Persistable for Usage {}
3202
3203#[derive(Clone, Debug)]
3204pub enum Usage2 {
3205 RenderUsage(AudioRenderUsage2),
3206 CaptureUsage(AudioCaptureUsage2),
3207 #[doc(hidden)]
3208 __SourceBreaking {
3209 unknown_ordinal: u64,
3210 },
3211}
3212
3213#[macro_export]
3215macro_rules! Usage2Unknown {
3216 () => {
3217 _
3218 };
3219}
3220
3221impl PartialEq for Usage2 {
3223 fn eq(&self, other: &Self) -> bool {
3224 match (self, other) {
3225 (Self::RenderUsage(x), Self::RenderUsage(y)) => *x == *y,
3226 (Self::CaptureUsage(x), Self::CaptureUsage(y)) => *x == *y,
3227 _ => false,
3228 }
3229 }
3230}
3231
3232impl Usage2 {
3233 #[inline]
3234 pub fn ordinal(&self) -> u64 {
3235 match *self {
3236 Self::RenderUsage(_) => 1,
3237 Self::CaptureUsage(_) => 2,
3238 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3239 }
3240 }
3241
3242 #[inline]
3243 pub fn unknown_variant_for_testing() -> Self {
3244 Self::__SourceBreaking { unknown_ordinal: 0 }
3245 }
3246
3247 #[inline]
3248 pub fn is_unknown(&self) -> bool {
3249 match self {
3250 Self::__SourceBreaking { .. } => true,
3251 _ => false,
3252 }
3253 }
3254}
3255
3256impl fidl::Persistable for Usage2 {}
3257
3258#[derive(Clone, Debug)]
3260pub enum UsageState {
3261 Unadjusted(UsageStateUnadjusted),
3262 Ducked(UsageStateDucked),
3263 Muted(UsageStateMuted),
3264 #[doc(hidden)]
3265 __SourceBreaking {
3266 unknown_ordinal: u64,
3267 },
3268}
3269
3270#[macro_export]
3272macro_rules! UsageStateUnknown {
3273 () => {
3274 _
3275 };
3276}
3277
3278impl PartialEq for UsageState {
3280 fn eq(&self, other: &Self) -> bool {
3281 match (self, other) {
3282 (Self::Unadjusted(x), Self::Unadjusted(y)) => *x == *y,
3283 (Self::Ducked(x), Self::Ducked(y)) => *x == *y,
3284 (Self::Muted(x), Self::Muted(y)) => *x == *y,
3285 _ => false,
3286 }
3287 }
3288}
3289
3290impl UsageState {
3291 #[inline]
3292 pub fn ordinal(&self) -> u64 {
3293 match *self {
3294 Self::Unadjusted(_) => 1,
3295 Self::Ducked(_) => 2,
3296 Self::Muted(_) => 3,
3297 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
3298 }
3299 }
3300
3301 #[inline]
3302 pub fn unknown_variant_for_testing() -> Self {
3303 Self::__SourceBreaking { unknown_ordinal: 0 }
3304 }
3305
3306 #[inline]
3307 pub fn is_unknown(&self) -> bool {
3308 match self {
3309 Self::__SourceBreaking { .. } => true,
3310 _ => false,
3311 }
3312 }
3313}
3314
3315impl fidl::Persistable for UsageState {}
3316
3317#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3321pub enum Value {
3322 BoolValue(bool),
3323 Uint64Value(u64),
3324 Int64Value(i64),
3325 StringValue(String),
3326 BytesValue(Vec<u8>),
3327}
3328
3329impl Value {
3330 #[inline]
3331 pub fn ordinal(&self) -> u64 {
3332 match *self {
3333 Self::BoolValue(_) => 1,
3334 Self::Uint64Value(_) => 2,
3335 Self::Int64Value(_) => 3,
3336 Self::StringValue(_) => 4,
3337 Self::BytesValue(_) => 5,
3338 }
3339 }
3340}
3341
3342impl fidl::Persistable for Value {}
3343
3344#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
3348pub enum VideoCompressedFormat {
3349 TempFieldTodoRemove(u32),
3350}
3351
3352impl VideoCompressedFormat {
3353 #[inline]
3354 pub fn ordinal(&self) -> u64 {
3355 match *self {
3356 Self::TempFieldTodoRemove(_) => 1,
3357 }
3358 }
3359}
3360
3361impl fidl::Persistable for VideoCompressedFormat {}
3362
3363#[derive(Clone, Debug, PartialEq)]
3369pub enum VideoFormat {
3370 Compressed(VideoCompressedFormat),
3371 Uncompressed(VideoUncompressedFormat),
3372}
3373
3374impl VideoFormat {
3375 #[inline]
3376 pub fn ordinal(&self) -> u64 {
3377 match *self {
3378 Self::Compressed(_) => 1,
3379 Self::Uncompressed(_) => 2,
3380 }
3381 }
3382}
3383
3384impl fidl::Persistable for VideoFormat {}
3385
3386mod internal {
3387 use super::*;
3388 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStartFlags {
3389 type Owned = Self;
3390
3391 #[inline(always)]
3392 fn inline_align(_context: fidl::encoding::Context) -> usize {
3393 4
3394 }
3395
3396 #[inline(always)]
3397 fn inline_size(_context: fidl::encoding::Context) -> usize {
3398 4
3399 }
3400 }
3401
3402 impl fidl::encoding::ValueTypeMarker for AudioConsumerStartFlags {
3403 type Borrowed<'a> = Self;
3404 #[inline(always)]
3405 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3406 *value
3407 }
3408 }
3409
3410 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3411 for AudioConsumerStartFlags
3412 {
3413 #[inline]
3414 unsafe fn encode(
3415 self,
3416 encoder: &mut fidl::encoding::Encoder<'_, D>,
3417 offset: usize,
3418 _depth: fidl::encoding::Depth,
3419 ) -> fidl::Result<()> {
3420 encoder.debug_check_bounds::<Self>(offset);
3421 if self.bits() & Self::all().bits() != self.bits() {
3422 return Err(fidl::Error::InvalidBitsValue);
3423 }
3424 encoder.write_num(self.bits(), offset);
3425 Ok(())
3426 }
3427 }
3428
3429 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3430 for AudioConsumerStartFlags
3431 {
3432 #[inline(always)]
3433 fn new_empty() -> Self {
3434 Self::empty()
3435 }
3436
3437 #[inline]
3438 unsafe fn decode(
3439 &mut self,
3440 decoder: &mut fidl::encoding::Decoder<'_, D>,
3441 offset: usize,
3442 _depth: fidl::encoding::Depth,
3443 ) -> fidl::Result<()> {
3444 decoder.debug_check_bounds::<Self>(offset);
3445 let prim = decoder.read_num::<u32>(offset);
3446 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3447 Ok(())
3448 }
3449 }
3450 unsafe impl fidl::encoding::TypeMarker for AudioGainInfoFlags {
3451 type Owned = Self;
3452
3453 #[inline(always)]
3454 fn inline_align(_context: fidl::encoding::Context) -> usize {
3455 4
3456 }
3457
3458 #[inline(always)]
3459 fn inline_size(_context: fidl::encoding::Context) -> usize {
3460 4
3461 }
3462 }
3463
3464 impl fidl::encoding::ValueTypeMarker for AudioGainInfoFlags {
3465 type Borrowed<'a> = Self;
3466 #[inline(always)]
3467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3468 *value
3469 }
3470 }
3471
3472 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3473 for AudioGainInfoFlags
3474 {
3475 #[inline]
3476 unsafe fn encode(
3477 self,
3478 encoder: &mut fidl::encoding::Encoder<'_, D>,
3479 offset: usize,
3480 _depth: fidl::encoding::Depth,
3481 ) -> fidl::Result<()> {
3482 encoder.debug_check_bounds::<Self>(offset);
3483 if self.bits() & Self::all().bits() != self.bits() {
3484 return Err(fidl::Error::InvalidBitsValue);
3485 }
3486 encoder.write_num(self.bits(), offset);
3487 Ok(())
3488 }
3489 }
3490
3491 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainInfoFlags {
3492 #[inline(always)]
3493 fn new_empty() -> Self {
3494 Self::empty()
3495 }
3496
3497 #[inline]
3498 unsafe fn decode(
3499 &mut self,
3500 decoder: &mut fidl::encoding::Decoder<'_, D>,
3501 offset: usize,
3502 _depth: fidl::encoding::Depth,
3503 ) -> fidl::Result<()> {
3504 decoder.debug_check_bounds::<Self>(offset);
3505 let prim = decoder.read_num::<u32>(offset);
3506 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3507 Ok(())
3508 }
3509 }
3510 unsafe impl fidl::encoding::TypeMarker for AudioGainValidFlags {
3511 type Owned = Self;
3512
3513 #[inline(always)]
3514 fn inline_align(_context: fidl::encoding::Context) -> usize {
3515 4
3516 }
3517
3518 #[inline(always)]
3519 fn inline_size(_context: fidl::encoding::Context) -> usize {
3520 4
3521 }
3522 }
3523
3524 impl fidl::encoding::ValueTypeMarker for AudioGainValidFlags {
3525 type Borrowed<'a> = Self;
3526 #[inline(always)]
3527 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3528 *value
3529 }
3530 }
3531
3532 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3533 for AudioGainValidFlags
3534 {
3535 #[inline]
3536 unsafe fn encode(
3537 self,
3538 encoder: &mut fidl::encoding::Encoder<'_, D>,
3539 offset: usize,
3540 _depth: fidl::encoding::Depth,
3541 ) -> fidl::Result<()> {
3542 encoder.debug_check_bounds::<Self>(offset);
3543 if self.bits() & Self::all().bits() != self.bits() {
3544 return Err(fidl::Error::InvalidBitsValue);
3545 }
3546 encoder.write_num(self.bits(), offset);
3547 Ok(())
3548 }
3549 }
3550
3551 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainValidFlags {
3552 #[inline(always)]
3553 fn new_empty() -> Self {
3554 Self::empty()
3555 }
3556
3557 #[inline]
3558 unsafe fn decode(
3559 &mut self,
3560 decoder: &mut fidl::encoding::Decoder<'_, D>,
3561 offset: usize,
3562 _depth: fidl::encoding::Depth,
3563 ) -> fidl::Result<()> {
3564 decoder.debug_check_bounds::<Self>(offset);
3565 let prim = decoder.read_num::<u32>(offset);
3566 *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?;
3567 Ok(())
3568 }
3569 }
3570 unsafe impl fidl::encoding::TypeMarker for AacAudioObjectType {
3571 type Owned = Self;
3572
3573 #[inline(always)]
3574 fn inline_align(_context: fidl::encoding::Context) -> usize {
3575 std::mem::align_of::<u32>()
3576 }
3577
3578 #[inline(always)]
3579 fn inline_size(_context: fidl::encoding::Context) -> usize {
3580 std::mem::size_of::<u32>()
3581 }
3582
3583 #[inline(always)]
3584 fn encode_is_copy() -> bool {
3585 true
3586 }
3587
3588 #[inline(always)]
3589 fn decode_is_copy() -> bool {
3590 false
3591 }
3592 }
3593
3594 impl fidl::encoding::ValueTypeMarker for AacAudioObjectType {
3595 type Borrowed<'a> = Self;
3596 #[inline(always)]
3597 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3598 *value
3599 }
3600 }
3601
3602 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3603 for AacAudioObjectType
3604 {
3605 #[inline]
3606 unsafe fn encode(
3607 self,
3608 encoder: &mut fidl::encoding::Encoder<'_, D>,
3609 offset: usize,
3610 _depth: fidl::encoding::Depth,
3611 ) -> fidl::Result<()> {
3612 encoder.debug_check_bounds::<Self>(offset);
3613 encoder.write_num(self.into_primitive(), offset);
3614 Ok(())
3615 }
3616 }
3617
3618 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacAudioObjectType {
3619 #[inline(always)]
3620 fn new_empty() -> Self {
3621 Self::Mpeg2AacLc
3622 }
3623
3624 #[inline]
3625 unsafe fn decode(
3626 &mut self,
3627 decoder: &mut fidl::encoding::Decoder<'_, D>,
3628 offset: usize,
3629 _depth: fidl::encoding::Depth,
3630 ) -> fidl::Result<()> {
3631 decoder.debug_check_bounds::<Self>(offset);
3632 let prim = decoder.read_num::<u32>(offset);
3633
3634 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3635 Ok(())
3636 }
3637 }
3638 unsafe impl fidl::encoding::TypeMarker for AacChannelMode {
3639 type Owned = Self;
3640
3641 #[inline(always)]
3642 fn inline_align(_context: fidl::encoding::Context) -> usize {
3643 std::mem::align_of::<u32>()
3644 }
3645
3646 #[inline(always)]
3647 fn inline_size(_context: fidl::encoding::Context) -> usize {
3648 std::mem::size_of::<u32>()
3649 }
3650
3651 #[inline(always)]
3652 fn encode_is_copy() -> bool {
3653 true
3654 }
3655
3656 #[inline(always)]
3657 fn decode_is_copy() -> bool {
3658 false
3659 }
3660 }
3661
3662 impl fidl::encoding::ValueTypeMarker for AacChannelMode {
3663 type Borrowed<'a> = Self;
3664 #[inline(always)]
3665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3666 *value
3667 }
3668 }
3669
3670 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AacChannelMode {
3671 #[inline]
3672 unsafe fn encode(
3673 self,
3674 encoder: &mut fidl::encoding::Encoder<'_, D>,
3675 offset: usize,
3676 _depth: fidl::encoding::Depth,
3677 ) -> fidl::Result<()> {
3678 encoder.debug_check_bounds::<Self>(offset);
3679 encoder.write_num(self.into_primitive(), offset);
3680 Ok(())
3681 }
3682 }
3683
3684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacChannelMode {
3685 #[inline(always)]
3686 fn new_empty() -> Self {
3687 Self::Mono
3688 }
3689
3690 #[inline]
3691 unsafe fn decode(
3692 &mut self,
3693 decoder: &mut fidl::encoding::Decoder<'_, D>,
3694 offset: usize,
3695 _depth: fidl::encoding::Depth,
3696 ) -> fidl::Result<()> {
3697 decoder.debug_check_bounds::<Self>(offset);
3698 let prim = decoder.read_num::<u32>(offset);
3699
3700 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3701 Ok(())
3702 }
3703 }
3704 unsafe impl fidl::encoding::TypeMarker for AacVariableBitRate {
3705 type Owned = Self;
3706
3707 #[inline(always)]
3708 fn inline_align(_context: fidl::encoding::Context) -> usize {
3709 std::mem::align_of::<u32>()
3710 }
3711
3712 #[inline(always)]
3713 fn inline_size(_context: fidl::encoding::Context) -> usize {
3714 std::mem::size_of::<u32>()
3715 }
3716
3717 #[inline(always)]
3718 fn encode_is_copy() -> bool {
3719 true
3720 }
3721
3722 #[inline(always)]
3723 fn decode_is_copy() -> bool {
3724 false
3725 }
3726 }
3727
3728 impl fidl::encoding::ValueTypeMarker for AacVariableBitRate {
3729 type Borrowed<'a> = Self;
3730 #[inline(always)]
3731 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3732 *value
3733 }
3734 }
3735
3736 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3737 for AacVariableBitRate
3738 {
3739 #[inline]
3740 unsafe fn encode(
3741 self,
3742 encoder: &mut fidl::encoding::Encoder<'_, D>,
3743 offset: usize,
3744 _depth: fidl::encoding::Depth,
3745 ) -> fidl::Result<()> {
3746 encoder.debug_check_bounds::<Self>(offset);
3747 encoder.write_num(self.into_primitive(), offset);
3748 Ok(())
3749 }
3750 }
3751
3752 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacVariableBitRate {
3753 #[inline(always)]
3754 fn new_empty() -> Self {
3755 Self::V1
3756 }
3757
3758 #[inline]
3759 unsafe fn decode(
3760 &mut self,
3761 decoder: &mut fidl::encoding::Decoder<'_, D>,
3762 offset: usize,
3763 _depth: fidl::encoding::Depth,
3764 ) -> fidl::Result<()> {
3765 decoder.debug_check_bounds::<Self>(offset);
3766 let prim = decoder.read_num::<u32>(offset);
3767
3768 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3769 Ok(())
3770 }
3771 }
3772 unsafe impl fidl::encoding::TypeMarker for AudioBitrateMode {
3773 type Owned = Self;
3774
3775 #[inline(always)]
3776 fn inline_align(_context: fidl::encoding::Context) -> usize {
3777 std::mem::align_of::<u32>()
3778 }
3779
3780 #[inline(always)]
3781 fn inline_size(_context: fidl::encoding::Context) -> usize {
3782 std::mem::size_of::<u32>()
3783 }
3784
3785 #[inline(always)]
3786 fn encode_is_copy() -> bool {
3787 true
3788 }
3789
3790 #[inline(always)]
3791 fn decode_is_copy() -> bool {
3792 false
3793 }
3794 }
3795
3796 impl fidl::encoding::ValueTypeMarker for AudioBitrateMode {
3797 type Borrowed<'a> = Self;
3798 #[inline(always)]
3799 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3800 *value
3801 }
3802 }
3803
3804 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3805 for AudioBitrateMode
3806 {
3807 #[inline]
3808 unsafe fn encode(
3809 self,
3810 encoder: &mut fidl::encoding::Encoder<'_, D>,
3811 offset: usize,
3812 _depth: fidl::encoding::Depth,
3813 ) -> fidl::Result<()> {
3814 encoder.debug_check_bounds::<Self>(offset);
3815 encoder.write_num(self.into_primitive(), offset);
3816 Ok(())
3817 }
3818 }
3819
3820 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioBitrateMode {
3821 #[inline(always)]
3822 fn new_empty() -> Self {
3823 Self::Unspecified
3824 }
3825
3826 #[inline]
3827 unsafe fn decode(
3828 &mut self,
3829 decoder: &mut fidl::encoding::Decoder<'_, D>,
3830 offset: usize,
3831 _depth: fidl::encoding::Depth,
3832 ) -> fidl::Result<()> {
3833 decoder.debug_check_bounds::<Self>(offset);
3834 let prim = decoder.read_num::<u32>(offset);
3835
3836 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3837 Ok(())
3838 }
3839 }
3840 unsafe impl fidl::encoding::TypeMarker for AudioCaptureUsage {
3841 type Owned = Self;
3842
3843 #[inline(always)]
3844 fn inline_align(_context: fidl::encoding::Context) -> usize {
3845 std::mem::align_of::<u32>()
3846 }
3847
3848 #[inline(always)]
3849 fn inline_size(_context: fidl::encoding::Context) -> usize {
3850 std::mem::size_of::<u32>()
3851 }
3852
3853 #[inline(always)]
3854 fn encode_is_copy() -> bool {
3855 true
3856 }
3857
3858 #[inline(always)]
3859 fn decode_is_copy() -> bool {
3860 false
3861 }
3862 }
3863
3864 impl fidl::encoding::ValueTypeMarker for AudioCaptureUsage {
3865 type Borrowed<'a> = Self;
3866 #[inline(always)]
3867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3868 *value
3869 }
3870 }
3871
3872 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3873 for AudioCaptureUsage
3874 {
3875 #[inline]
3876 unsafe fn encode(
3877 self,
3878 encoder: &mut fidl::encoding::Encoder<'_, D>,
3879 offset: usize,
3880 _depth: fidl::encoding::Depth,
3881 ) -> fidl::Result<()> {
3882 encoder.debug_check_bounds::<Self>(offset);
3883 encoder.write_num(self.into_primitive(), offset);
3884 Ok(())
3885 }
3886 }
3887
3888 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCaptureUsage {
3889 #[inline(always)]
3890 fn new_empty() -> Self {
3891 Self::Background
3892 }
3893
3894 #[inline]
3895 unsafe fn decode(
3896 &mut self,
3897 decoder: &mut fidl::encoding::Decoder<'_, D>,
3898 offset: usize,
3899 _depth: fidl::encoding::Depth,
3900 ) -> fidl::Result<()> {
3901 decoder.debug_check_bounds::<Self>(offset);
3902 let prim = decoder.read_num::<u32>(offset);
3903
3904 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
3905 Ok(())
3906 }
3907 }
3908 unsafe impl fidl::encoding::TypeMarker for AudioCaptureUsage2 {
3909 type Owned = Self;
3910
3911 #[inline(always)]
3912 fn inline_align(_context: fidl::encoding::Context) -> usize {
3913 std::mem::align_of::<u32>()
3914 }
3915
3916 #[inline(always)]
3917 fn inline_size(_context: fidl::encoding::Context) -> usize {
3918 std::mem::size_of::<u32>()
3919 }
3920
3921 #[inline(always)]
3922 fn encode_is_copy() -> bool {
3923 false
3924 }
3925
3926 #[inline(always)]
3927 fn decode_is_copy() -> bool {
3928 false
3929 }
3930 }
3931
3932 impl fidl::encoding::ValueTypeMarker for AudioCaptureUsage2 {
3933 type Borrowed<'a> = Self;
3934 #[inline(always)]
3935 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3936 *value
3937 }
3938 }
3939
3940 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
3941 for AudioCaptureUsage2
3942 {
3943 #[inline]
3944 unsafe fn encode(
3945 self,
3946 encoder: &mut fidl::encoding::Encoder<'_, D>,
3947 offset: usize,
3948 _depth: fidl::encoding::Depth,
3949 ) -> fidl::Result<()> {
3950 encoder.debug_check_bounds::<Self>(offset);
3951 encoder.write_num(self.into_primitive(), offset);
3952 Ok(())
3953 }
3954 }
3955
3956 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCaptureUsage2 {
3957 #[inline(always)]
3958 fn new_empty() -> Self {
3959 Self::unknown()
3960 }
3961
3962 #[inline]
3963 unsafe fn decode(
3964 &mut self,
3965 decoder: &mut fidl::encoding::Decoder<'_, D>,
3966 offset: usize,
3967 _depth: fidl::encoding::Depth,
3968 ) -> fidl::Result<()> {
3969 decoder.debug_check_bounds::<Self>(offset);
3970 let prim = decoder.read_num::<u32>(offset);
3971
3972 *self = Self::from_primitive_allow_unknown(prim);
3973 Ok(())
3974 }
3975 }
3976 unsafe impl fidl::encoding::TypeMarker for AudioChannelId {
3977 type Owned = Self;
3978
3979 #[inline(always)]
3980 fn inline_align(_context: fidl::encoding::Context) -> usize {
3981 std::mem::align_of::<u32>()
3982 }
3983
3984 #[inline(always)]
3985 fn inline_size(_context: fidl::encoding::Context) -> usize {
3986 std::mem::size_of::<u32>()
3987 }
3988
3989 #[inline(always)]
3990 fn encode_is_copy() -> bool {
3991 true
3992 }
3993
3994 #[inline(always)]
3995 fn decode_is_copy() -> bool {
3996 false
3997 }
3998 }
3999
4000 impl fidl::encoding::ValueTypeMarker for AudioChannelId {
4001 type Borrowed<'a> = Self;
4002 #[inline(always)]
4003 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4004 *value
4005 }
4006 }
4007
4008 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AudioChannelId {
4009 #[inline]
4010 unsafe fn encode(
4011 self,
4012 encoder: &mut fidl::encoding::Encoder<'_, D>,
4013 offset: usize,
4014 _depth: fidl::encoding::Depth,
4015 ) -> fidl::Result<()> {
4016 encoder.debug_check_bounds::<Self>(offset);
4017 encoder.write_num(self.into_primitive(), offset);
4018 Ok(())
4019 }
4020 }
4021
4022 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioChannelId {
4023 #[inline(always)]
4024 fn new_empty() -> Self {
4025 Self::Skip
4026 }
4027
4028 #[inline]
4029 unsafe fn decode(
4030 &mut self,
4031 decoder: &mut fidl::encoding::Decoder<'_, D>,
4032 offset: usize,
4033 _depth: fidl::encoding::Depth,
4034 ) -> fidl::Result<()> {
4035 decoder.debug_check_bounds::<Self>(offset);
4036 let prim = decoder.read_num::<u32>(offset);
4037
4038 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4039 Ok(())
4040 }
4041 }
4042 unsafe impl fidl::encoding::TypeMarker for AudioOutputRoutingPolicy {
4043 type Owned = Self;
4044
4045 #[inline(always)]
4046 fn inline_align(_context: fidl::encoding::Context) -> usize {
4047 std::mem::align_of::<u32>()
4048 }
4049
4050 #[inline(always)]
4051 fn inline_size(_context: fidl::encoding::Context) -> usize {
4052 std::mem::size_of::<u32>()
4053 }
4054
4055 #[inline(always)]
4056 fn encode_is_copy() -> bool {
4057 true
4058 }
4059
4060 #[inline(always)]
4061 fn decode_is_copy() -> bool {
4062 false
4063 }
4064 }
4065
4066 impl fidl::encoding::ValueTypeMarker for AudioOutputRoutingPolicy {
4067 type Borrowed<'a> = Self;
4068 #[inline(always)]
4069 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4070 *value
4071 }
4072 }
4073
4074 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4075 for AudioOutputRoutingPolicy
4076 {
4077 #[inline]
4078 unsafe fn encode(
4079 self,
4080 encoder: &mut fidl::encoding::Encoder<'_, D>,
4081 offset: usize,
4082 _depth: fidl::encoding::Depth,
4083 ) -> fidl::Result<()> {
4084 encoder.debug_check_bounds::<Self>(offset);
4085 encoder.write_num(self.into_primitive(), offset);
4086 Ok(())
4087 }
4088 }
4089
4090 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4091 for AudioOutputRoutingPolicy
4092 {
4093 #[inline(always)]
4094 fn new_empty() -> Self {
4095 Self::AllPluggedOutputs
4096 }
4097
4098 #[inline]
4099 unsafe fn decode(
4100 &mut self,
4101 decoder: &mut fidl::encoding::Decoder<'_, D>,
4102 offset: usize,
4103 _depth: fidl::encoding::Depth,
4104 ) -> fidl::Result<()> {
4105 decoder.debug_check_bounds::<Self>(offset);
4106 let prim = decoder.read_num::<u32>(offset);
4107
4108 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4109 Ok(())
4110 }
4111 }
4112 unsafe impl fidl::encoding::TypeMarker for AudioPcmMode {
4113 type Owned = Self;
4114
4115 #[inline(always)]
4116 fn inline_align(_context: fidl::encoding::Context) -> usize {
4117 std::mem::align_of::<u32>()
4118 }
4119
4120 #[inline(always)]
4121 fn inline_size(_context: fidl::encoding::Context) -> usize {
4122 std::mem::size_of::<u32>()
4123 }
4124
4125 #[inline(always)]
4126 fn encode_is_copy() -> bool {
4127 true
4128 }
4129
4130 #[inline(always)]
4131 fn decode_is_copy() -> bool {
4132 false
4133 }
4134 }
4135
4136 impl fidl::encoding::ValueTypeMarker for AudioPcmMode {
4137 type Borrowed<'a> = Self;
4138 #[inline(always)]
4139 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4140 *value
4141 }
4142 }
4143
4144 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for AudioPcmMode {
4145 #[inline]
4146 unsafe fn encode(
4147 self,
4148 encoder: &mut fidl::encoding::Encoder<'_, D>,
4149 offset: usize,
4150 _depth: fidl::encoding::Depth,
4151 ) -> fidl::Result<()> {
4152 encoder.debug_check_bounds::<Self>(offset);
4153 encoder.write_num(self.into_primitive(), offset);
4154 Ok(())
4155 }
4156 }
4157
4158 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioPcmMode {
4159 #[inline(always)]
4160 fn new_empty() -> Self {
4161 Self::Linear
4162 }
4163
4164 #[inline]
4165 unsafe fn decode(
4166 &mut self,
4167 decoder: &mut fidl::encoding::Decoder<'_, D>,
4168 offset: usize,
4169 _depth: fidl::encoding::Depth,
4170 ) -> fidl::Result<()> {
4171 decoder.debug_check_bounds::<Self>(offset);
4172 let prim = decoder.read_num::<u32>(offset);
4173
4174 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4175 Ok(())
4176 }
4177 }
4178 unsafe impl fidl::encoding::TypeMarker for AudioRenderUsage {
4179 type Owned = Self;
4180
4181 #[inline(always)]
4182 fn inline_align(_context: fidl::encoding::Context) -> usize {
4183 std::mem::align_of::<u32>()
4184 }
4185
4186 #[inline(always)]
4187 fn inline_size(_context: fidl::encoding::Context) -> usize {
4188 std::mem::size_of::<u32>()
4189 }
4190
4191 #[inline(always)]
4192 fn encode_is_copy() -> bool {
4193 true
4194 }
4195
4196 #[inline(always)]
4197 fn decode_is_copy() -> bool {
4198 false
4199 }
4200 }
4201
4202 impl fidl::encoding::ValueTypeMarker for AudioRenderUsage {
4203 type Borrowed<'a> = Self;
4204 #[inline(always)]
4205 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4206 *value
4207 }
4208 }
4209
4210 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4211 for AudioRenderUsage
4212 {
4213 #[inline]
4214 unsafe fn encode(
4215 self,
4216 encoder: &mut fidl::encoding::Encoder<'_, D>,
4217 offset: usize,
4218 _depth: fidl::encoding::Depth,
4219 ) -> fidl::Result<()> {
4220 encoder.debug_check_bounds::<Self>(offset);
4221 encoder.write_num(self.into_primitive(), offset);
4222 Ok(())
4223 }
4224 }
4225
4226 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioRenderUsage {
4227 #[inline(always)]
4228 fn new_empty() -> Self {
4229 Self::Background
4230 }
4231
4232 #[inline]
4233 unsafe fn decode(
4234 &mut self,
4235 decoder: &mut fidl::encoding::Decoder<'_, D>,
4236 offset: usize,
4237 _depth: fidl::encoding::Depth,
4238 ) -> fidl::Result<()> {
4239 decoder.debug_check_bounds::<Self>(offset);
4240 let prim = decoder.read_num::<u32>(offset);
4241
4242 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4243 Ok(())
4244 }
4245 }
4246 unsafe impl fidl::encoding::TypeMarker for AudioRenderUsage2 {
4247 type Owned = Self;
4248
4249 #[inline(always)]
4250 fn inline_align(_context: fidl::encoding::Context) -> usize {
4251 std::mem::align_of::<u32>()
4252 }
4253
4254 #[inline(always)]
4255 fn inline_size(_context: fidl::encoding::Context) -> usize {
4256 std::mem::size_of::<u32>()
4257 }
4258
4259 #[inline(always)]
4260 fn encode_is_copy() -> bool {
4261 false
4262 }
4263
4264 #[inline(always)]
4265 fn decode_is_copy() -> bool {
4266 false
4267 }
4268 }
4269
4270 impl fidl::encoding::ValueTypeMarker for AudioRenderUsage2 {
4271 type Borrowed<'a> = Self;
4272 #[inline(always)]
4273 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4274 *value
4275 }
4276 }
4277
4278 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4279 for AudioRenderUsage2
4280 {
4281 #[inline]
4282 unsafe fn encode(
4283 self,
4284 encoder: &mut fidl::encoding::Encoder<'_, D>,
4285 offset: usize,
4286 _depth: fidl::encoding::Depth,
4287 ) -> fidl::Result<()> {
4288 encoder.debug_check_bounds::<Self>(offset);
4289 encoder.write_num(self.into_primitive(), offset);
4290 Ok(())
4291 }
4292 }
4293
4294 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioRenderUsage2 {
4295 #[inline(always)]
4296 fn new_empty() -> Self {
4297 Self::unknown()
4298 }
4299
4300 #[inline]
4301 unsafe fn decode(
4302 &mut self,
4303 decoder: &mut fidl::encoding::Decoder<'_, D>,
4304 offset: usize,
4305 _depth: fidl::encoding::Depth,
4306 ) -> fidl::Result<()> {
4307 decoder.debug_check_bounds::<Self>(offset);
4308 let prim = decoder.read_num::<u32>(offset);
4309
4310 *self = Self::from_primitive_allow_unknown(prim);
4311 Ok(())
4312 }
4313 }
4314 unsafe impl fidl::encoding::TypeMarker for AudioSampleFormat {
4315 type Owned = Self;
4316
4317 #[inline(always)]
4318 fn inline_align(_context: fidl::encoding::Context) -> usize {
4319 std::mem::align_of::<u32>()
4320 }
4321
4322 #[inline(always)]
4323 fn inline_size(_context: fidl::encoding::Context) -> usize {
4324 std::mem::size_of::<u32>()
4325 }
4326
4327 #[inline(always)]
4328 fn encode_is_copy() -> bool {
4329 true
4330 }
4331
4332 #[inline(always)]
4333 fn decode_is_copy() -> bool {
4334 false
4335 }
4336 }
4337
4338 impl fidl::encoding::ValueTypeMarker for AudioSampleFormat {
4339 type Borrowed<'a> = Self;
4340 #[inline(always)]
4341 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4342 *value
4343 }
4344 }
4345
4346 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4347 for AudioSampleFormat
4348 {
4349 #[inline]
4350 unsafe fn encode(
4351 self,
4352 encoder: &mut fidl::encoding::Encoder<'_, D>,
4353 offset: usize,
4354 _depth: fidl::encoding::Depth,
4355 ) -> fidl::Result<()> {
4356 encoder.debug_check_bounds::<Self>(offset);
4357 encoder.write_num(self.into_primitive(), offset);
4358 Ok(())
4359 }
4360 }
4361
4362 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioSampleFormat {
4363 #[inline(always)]
4364 fn new_empty() -> Self {
4365 Self::Unsigned8
4366 }
4367
4368 #[inline]
4369 unsafe fn decode(
4370 &mut self,
4371 decoder: &mut fidl::encoding::Decoder<'_, D>,
4372 offset: usize,
4373 _depth: fidl::encoding::Depth,
4374 ) -> fidl::Result<()> {
4375 decoder.debug_check_bounds::<Self>(offset);
4376 let prim = decoder.read_num::<u32>(offset);
4377
4378 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4379 Ok(())
4380 }
4381 }
4382 unsafe impl fidl::encoding::TypeMarker for Behavior {
4383 type Owned = Self;
4384
4385 #[inline(always)]
4386 fn inline_align(_context: fidl::encoding::Context) -> usize {
4387 std::mem::align_of::<u32>()
4388 }
4389
4390 #[inline(always)]
4391 fn inline_size(_context: fidl::encoding::Context) -> usize {
4392 std::mem::size_of::<u32>()
4393 }
4394
4395 #[inline(always)]
4396 fn encode_is_copy() -> bool {
4397 false
4398 }
4399
4400 #[inline(always)]
4401 fn decode_is_copy() -> bool {
4402 false
4403 }
4404 }
4405
4406 impl fidl::encoding::ValueTypeMarker for Behavior {
4407 type Borrowed<'a> = Self;
4408 #[inline(always)]
4409 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4410 *value
4411 }
4412 }
4413
4414 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for Behavior {
4415 #[inline]
4416 unsafe fn encode(
4417 self,
4418 encoder: &mut fidl::encoding::Encoder<'_, D>,
4419 offset: usize,
4420 _depth: fidl::encoding::Depth,
4421 ) -> fidl::Result<()> {
4422 encoder.debug_check_bounds::<Self>(offset);
4423 encoder.write_num(self.into_primitive(), offset);
4424 Ok(())
4425 }
4426 }
4427
4428 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Behavior {
4429 #[inline(always)]
4430 fn new_empty() -> Self {
4431 Self::unknown()
4432 }
4433
4434 #[inline]
4435 unsafe fn decode(
4436 &mut self,
4437 decoder: &mut fidl::encoding::Decoder<'_, D>,
4438 offset: usize,
4439 _depth: fidl::encoding::Depth,
4440 ) -> fidl::Result<()> {
4441 decoder.debug_check_bounds::<Self>(offset);
4442 let prim = decoder.read_num::<u32>(offset);
4443
4444 *self = Self::from_primitive_allow_unknown(prim);
4445 Ok(())
4446 }
4447 }
4448 unsafe impl fidl::encoding::TypeMarker for CodecProfile {
4449 type Owned = Self;
4450
4451 #[inline(always)]
4452 fn inline_align(_context: fidl::encoding::Context) -> usize {
4453 std::mem::align_of::<u32>()
4454 }
4455
4456 #[inline(always)]
4457 fn inline_size(_context: fidl::encoding::Context) -> usize {
4458 std::mem::size_of::<u32>()
4459 }
4460
4461 #[inline(always)]
4462 fn encode_is_copy() -> bool {
4463 false
4464 }
4465
4466 #[inline(always)]
4467 fn decode_is_copy() -> bool {
4468 false
4469 }
4470 }
4471
4472 impl fidl::encoding::ValueTypeMarker for CodecProfile {
4473 type Borrowed<'a> = Self;
4474 #[inline(always)]
4475 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4476 *value
4477 }
4478 }
4479
4480 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for CodecProfile {
4481 #[inline]
4482 unsafe fn encode(
4483 self,
4484 encoder: &mut fidl::encoding::Encoder<'_, D>,
4485 offset: usize,
4486 _depth: fidl::encoding::Depth,
4487 ) -> fidl::Result<()> {
4488 encoder.debug_check_bounds::<Self>(offset);
4489 encoder.write_num(self.into_primitive(), offset);
4490 Ok(())
4491 }
4492 }
4493
4494 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CodecProfile {
4495 #[inline(always)]
4496 fn new_empty() -> Self {
4497 Self::unknown()
4498 }
4499
4500 #[inline]
4501 unsafe fn decode(
4502 &mut self,
4503 decoder: &mut fidl::encoding::Decoder<'_, D>,
4504 offset: usize,
4505 _depth: fidl::encoding::Depth,
4506 ) -> fidl::Result<()> {
4507 decoder.debug_check_bounds::<Self>(offset);
4508 let prim = decoder.read_num::<u32>(offset);
4509
4510 *self = Self::from_primitive_allow_unknown(prim);
4511 Ok(())
4512 }
4513 }
4514 unsafe impl fidl::encoding::TypeMarker for ColorSpace {
4515 type Owned = Self;
4516
4517 #[inline(always)]
4518 fn inline_align(_context: fidl::encoding::Context) -> usize {
4519 std::mem::align_of::<u32>()
4520 }
4521
4522 #[inline(always)]
4523 fn inline_size(_context: fidl::encoding::Context) -> usize {
4524 std::mem::size_of::<u32>()
4525 }
4526
4527 #[inline(always)]
4528 fn encode_is_copy() -> bool {
4529 true
4530 }
4531
4532 #[inline(always)]
4533 fn decode_is_copy() -> bool {
4534 false
4535 }
4536 }
4537
4538 impl fidl::encoding::ValueTypeMarker for ColorSpace {
4539 type Borrowed<'a> = Self;
4540 #[inline(always)]
4541 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4542 *value
4543 }
4544 }
4545
4546 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ColorSpace {
4547 #[inline]
4548 unsafe fn encode(
4549 self,
4550 encoder: &mut fidl::encoding::Encoder<'_, D>,
4551 offset: usize,
4552 _depth: fidl::encoding::Depth,
4553 ) -> fidl::Result<()> {
4554 encoder.debug_check_bounds::<Self>(offset);
4555 encoder.write_num(self.into_primitive(), offset);
4556 Ok(())
4557 }
4558 }
4559
4560 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ColorSpace {
4561 #[inline(always)]
4562 fn new_empty() -> Self {
4563 Self::Unknown
4564 }
4565
4566 #[inline]
4567 unsafe fn decode(
4568 &mut self,
4569 decoder: &mut fidl::encoding::Decoder<'_, D>,
4570 offset: usize,
4571 _depth: fidl::encoding::Depth,
4572 ) -> fidl::Result<()> {
4573 decoder.debug_check_bounds::<Self>(offset);
4574 let prim = decoder.read_num::<u32>(offset);
4575
4576 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4577 Ok(())
4578 }
4579 }
4580 unsafe impl fidl::encoding::TypeMarker for Lc3FrameDuration {
4581 type Owned = Self;
4582
4583 #[inline(always)]
4584 fn inline_align(_context: fidl::encoding::Context) -> usize {
4585 std::mem::align_of::<u32>()
4586 }
4587
4588 #[inline(always)]
4589 fn inline_size(_context: fidl::encoding::Context) -> usize {
4590 std::mem::size_of::<u32>()
4591 }
4592
4593 #[inline(always)]
4594 fn encode_is_copy() -> bool {
4595 false
4596 }
4597
4598 #[inline(always)]
4599 fn decode_is_copy() -> bool {
4600 false
4601 }
4602 }
4603
4604 impl fidl::encoding::ValueTypeMarker for Lc3FrameDuration {
4605 type Borrowed<'a> = Self;
4606 #[inline(always)]
4607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4608 *value
4609 }
4610 }
4611
4612 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
4613 for Lc3FrameDuration
4614 {
4615 #[inline]
4616 unsafe fn encode(
4617 self,
4618 encoder: &mut fidl::encoding::Encoder<'_, D>,
4619 offset: usize,
4620 _depth: fidl::encoding::Depth,
4621 ) -> fidl::Result<()> {
4622 encoder.debug_check_bounds::<Self>(offset);
4623 encoder.write_num(self.into_primitive(), offset);
4624 Ok(())
4625 }
4626 }
4627
4628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Lc3FrameDuration {
4629 #[inline(always)]
4630 fn new_empty() -> Self {
4631 Self::unknown()
4632 }
4633
4634 #[inline]
4635 unsafe fn decode(
4636 &mut self,
4637 decoder: &mut fidl::encoding::Decoder<'_, D>,
4638 offset: usize,
4639 _depth: fidl::encoding::Depth,
4640 ) -> fidl::Result<()> {
4641 decoder.debug_check_bounds::<Self>(offset);
4642 let prim = decoder.read_num::<u32>(offset);
4643
4644 *self = Self::from_primitive_allow_unknown(prim);
4645 Ok(())
4646 }
4647 }
4648 unsafe impl fidl::encoding::TypeMarker for SbcAllocation {
4649 type Owned = Self;
4650
4651 #[inline(always)]
4652 fn inline_align(_context: fidl::encoding::Context) -> usize {
4653 std::mem::align_of::<u32>()
4654 }
4655
4656 #[inline(always)]
4657 fn inline_size(_context: fidl::encoding::Context) -> usize {
4658 std::mem::size_of::<u32>()
4659 }
4660
4661 #[inline(always)]
4662 fn encode_is_copy() -> bool {
4663 true
4664 }
4665
4666 #[inline(always)]
4667 fn decode_is_copy() -> bool {
4668 false
4669 }
4670 }
4671
4672 impl fidl::encoding::ValueTypeMarker for SbcAllocation {
4673 type Borrowed<'a> = Self;
4674 #[inline(always)]
4675 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4676 *value
4677 }
4678 }
4679
4680 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcAllocation {
4681 #[inline]
4682 unsafe fn encode(
4683 self,
4684 encoder: &mut fidl::encoding::Encoder<'_, D>,
4685 offset: usize,
4686 _depth: fidl::encoding::Depth,
4687 ) -> fidl::Result<()> {
4688 encoder.debug_check_bounds::<Self>(offset);
4689 encoder.write_num(self.into_primitive(), offset);
4690 Ok(())
4691 }
4692 }
4693
4694 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcAllocation {
4695 #[inline(always)]
4696 fn new_empty() -> Self {
4697 Self::AllocLoudness
4698 }
4699
4700 #[inline]
4701 unsafe fn decode(
4702 &mut self,
4703 decoder: &mut fidl::encoding::Decoder<'_, D>,
4704 offset: usize,
4705 _depth: fidl::encoding::Depth,
4706 ) -> fidl::Result<()> {
4707 decoder.debug_check_bounds::<Self>(offset);
4708 let prim = decoder.read_num::<u32>(offset);
4709
4710 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4711 Ok(())
4712 }
4713 }
4714 unsafe impl fidl::encoding::TypeMarker for SbcBlockCount {
4715 type Owned = Self;
4716
4717 #[inline(always)]
4718 fn inline_align(_context: fidl::encoding::Context) -> usize {
4719 std::mem::align_of::<u32>()
4720 }
4721
4722 #[inline(always)]
4723 fn inline_size(_context: fidl::encoding::Context) -> usize {
4724 std::mem::size_of::<u32>()
4725 }
4726
4727 #[inline(always)]
4728 fn encode_is_copy() -> bool {
4729 true
4730 }
4731
4732 #[inline(always)]
4733 fn decode_is_copy() -> bool {
4734 false
4735 }
4736 }
4737
4738 impl fidl::encoding::ValueTypeMarker for SbcBlockCount {
4739 type Borrowed<'a> = Self;
4740 #[inline(always)]
4741 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4742 *value
4743 }
4744 }
4745
4746 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcBlockCount {
4747 #[inline]
4748 unsafe fn encode(
4749 self,
4750 encoder: &mut fidl::encoding::Encoder<'_, D>,
4751 offset: usize,
4752 _depth: fidl::encoding::Depth,
4753 ) -> fidl::Result<()> {
4754 encoder.debug_check_bounds::<Self>(offset);
4755 encoder.write_num(self.into_primitive(), offset);
4756 Ok(())
4757 }
4758 }
4759
4760 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcBlockCount {
4761 #[inline(always)]
4762 fn new_empty() -> Self {
4763 Self::BlockCount4
4764 }
4765
4766 #[inline]
4767 unsafe fn decode(
4768 &mut self,
4769 decoder: &mut fidl::encoding::Decoder<'_, D>,
4770 offset: usize,
4771 _depth: fidl::encoding::Depth,
4772 ) -> fidl::Result<()> {
4773 decoder.debug_check_bounds::<Self>(offset);
4774 let prim = decoder.read_num::<u32>(offset);
4775
4776 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4777 Ok(())
4778 }
4779 }
4780 unsafe impl fidl::encoding::TypeMarker for SbcChannelMode {
4781 type Owned = Self;
4782
4783 #[inline(always)]
4784 fn inline_align(_context: fidl::encoding::Context) -> usize {
4785 std::mem::align_of::<u32>()
4786 }
4787
4788 #[inline(always)]
4789 fn inline_size(_context: fidl::encoding::Context) -> usize {
4790 std::mem::size_of::<u32>()
4791 }
4792
4793 #[inline(always)]
4794 fn encode_is_copy() -> bool {
4795 true
4796 }
4797
4798 #[inline(always)]
4799 fn decode_is_copy() -> bool {
4800 false
4801 }
4802 }
4803
4804 impl fidl::encoding::ValueTypeMarker for SbcChannelMode {
4805 type Borrowed<'a> = Self;
4806 #[inline(always)]
4807 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4808 *value
4809 }
4810 }
4811
4812 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcChannelMode {
4813 #[inline]
4814 unsafe fn encode(
4815 self,
4816 encoder: &mut fidl::encoding::Encoder<'_, D>,
4817 offset: usize,
4818 _depth: fidl::encoding::Depth,
4819 ) -> fidl::Result<()> {
4820 encoder.debug_check_bounds::<Self>(offset);
4821 encoder.write_num(self.into_primitive(), offset);
4822 Ok(())
4823 }
4824 }
4825
4826 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcChannelMode {
4827 #[inline(always)]
4828 fn new_empty() -> Self {
4829 Self::Mono
4830 }
4831
4832 #[inline]
4833 unsafe fn decode(
4834 &mut self,
4835 decoder: &mut fidl::encoding::Decoder<'_, D>,
4836 offset: usize,
4837 _depth: fidl::encoding::Depth,
4838 ) -> fidl::Result<()> {
4839 decoder.debug_check_bounds::<Self>(offset);
4840 let prim = decoder.read_num::<u32>(offset);
4841
4842 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4843 Ok(())
4844 }
4845 }
4846 unsafe impl fidl::encoding::TypeMarker for SbcSubBands {
4847 type Owned = Self;
4848
4849 #[inline(always)]
4850 fn inline_align(_context: fidl::encoding::Context) -> usize {
4851 std::mem::align_of::<u32>()
4852 }
4853
4854 #[inline(always)]
4855 fn inline_size(_context: fidl::encoding::Context) -> usize {
4856 std::mem::size_of::<u32>()
4857 }
4858
4859 #[inline(always)]
4860 fn encode_is_copy() -> bool {
4861 true
4862 }
4863
4864 #[inline(always)]
4865 fn decode_is_copy() -> bool {
4866 false
4867 }
4868 }
4869
4870 impl fidl::encoding::ValueTypeMarker for SbcSubBands {
4871 type Borrowed<'a> = Self;
4872 #[inline(always)]
4873 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4874 *value
4875 }
4876 }
4877
4878 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SbcSubBands {
4879 #[inline]
4880 unsafe fn encode(
4881 self,
4882 encoder: &mut fidl::encoding::Encoder<'_, D>,
4883 offset: usize,
4884 _depth: fidl::encoding::Depth,
4885 ) -> fidl::Result<()> {
4886 encoder.debug_check_bounds::<Self>(offset);
4887 encoder.write_num(self.into_primitive(), offset);
4888 Ok(())
4889 }
4890 }
4891
4892 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcSubBands {
4893 #[inline(always)]
4894 fn new_empty() -> Self {
4895 Self::SubBands4
4896 }
4897
4898 #[inline]
4899 unsafe fn decode(
4900 &mut self,
4901 decoder: &mut fidl::encoding::Decoder<'_, D>,
4902 offset: usize,
4903 _depth: fidl::encoding::Depth,
4904 ) -> fidl::Result<()> {
4905 decoder.debug_check_bounds::<Self>(offset);
4906 let prim = decoder.read_num::<u32>(offset);
4907
4908 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4909 Ok(())
4910 }
4911 }
4912 unsafe impl fidl::encoding::TypeMarker for StreamError {
4913 type Owned = Self;
4914
4915 #[inline(always)]
4916 fn inline_align(_context: fidl::encoding::Context) -> usize {
4917 std::mem::align_of::<u32>()
4918 }
4919
4920 #[inline(always)]
4921 fn inline_size(_context: fidl::encoding::Context) -> usize {
4922 std::mem::size_of::<u32>()
4923 }
4924
4925 #[inline(always)]
4926 fn encode_is_copy() -> bool {
4927 true
4928 }
4929
4930 #[inline(always)]
4931 fn decode_is_copy() -> bool {
4932 false
4933 }
4934 }
4935
4936 impl fidl::encoding::ValueTypeMarker for StreamError {
4937 type Borrowed<'a> = Self;
4938 #[inline(always)]
4939 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4940 *value
4941 }
4942 }
4943
4944 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StreamError {
4945 #[inline]
4946 unsafe fn encode(
4947 self,
4948 encoder: &mut fidl::encoding::Encoder<'_, D>,
4949 offset: usize,
4950 _depth: fidl::encoding::Depth,
4951 ) -> fidl::Result<()> {
4952 encoder.debug_check_bounds::<Self>(offset);
4953 encoder.write_num(self.into_primitive(), offset);
4954 Ok(())
4955 }
4956 }
4957
4958 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamError {
4959 #[inline(always)]
4960 fn new_empty() -> Self {
4961 Self::Unknown
4962 }
4963
4964 #[inline]
4965 unsafe fn decode(
4966 &mut self,
4967 decoder: &mut fidl::encoding::Decoder<'_, D>,
4968 offset: usize,
4969 _depth: fidl::encoding::Depth,
4970 ) -> fidl::Result<()> {
4971 decoder.debug_check_bounds::<Self>(offset);
4972 let prim = decoder.read_num::<u32>(offset);
4973
4974 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
4975 Ok(())
4976 }
4977 }
4978 unsafe impl fidl::encoding::TypeMarker for VideoColorSpace {
4979 type Owned = Self;
4980
4981 #[inline(always)]
4982 fn inline_align(_context: fidl::encoding::Context) -> usize {
4983 std::mem::align_of::<u32>()
4984 }
4985
4986 #[inline(always)]
4987 fn inline_size(_context: fidl::encoding::Context) -> usize {
4988 std::mem::size_of::<u32>()
4989 }
4990
4991 #[inline(always)]
4992 fn encode_is_copy() -> bool {
4993 true
4994 }
4995
4996 #[inline(always)]
4997 fn decode_is_copy() -> bool {
4998 false
4999 }
5000 }
5001
5002 impl fidl::encoding::ValueTypeMarker for VideoColorSpace {
5003 type Borrowed<'a> = Self;
5004 #[inline(always)]
5005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5006 *value
5007 }
5008 }
5009
5010 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
5011 for VideoColorSpace
5012 {
5013 #[inline]
5014 unsafe fn encode(
5015 self,
5016 encoder: &mut fidl::encoding::Encoder<'_, D>,
5017 offset: usize,
5018 _depth: fidl::encoding::Depth,
5019 ) -> fidl::Result<()> {
5020 encoder.debug_check_bounds::<Self>(offset);
5021 encoder.write_num(self.into_primitive(), offset);
5022 Ok(())
5023 }
5024 }
5025
5026 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoColorSpace {
5027 #[inline(always)]
5028 fn new_empty() -> Self {
5029 Self::Invalid
5030 }
5031
5032 #[inline]
5033 unsafe fn decode(
5034 &mut self,
5035 decoder: &mut fidl::encoding::Decoder<'_, D>,
5036 offset: usize,
5037 _depth: fidl::encoding::Depth,
5038 ) -> fidl::Result<()> {
5039 decoder.debug_check_bounds::<Self>(offset);
5040 let prim = decoder.read_num::<u32>(offset);
5041
5042 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
5043 Ok(())
5044 }
5045 }
5046
5047 impl fidl::encoding::ValueTypeMarker for AacConstantBitRate {
5048 type Borrowed<'a> = &'a Self;
5049 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5050 value
5051 }
5052 }
5053
5054 unsafe impl fidl::encoding::TypeMarker for AacConstantBitRate {
5055 type Owned = Self;
5056
5057 #[inline(always)]
5058 fn inline_align(_context: fidl::encoding::Context) -> usize {
5059 4
5060 }
5061
5062 #[inline(always)]
5063 fn inline_size(_context: fidl::encoding::Context) -> usize {
5064 4
5065 }
5066 #[inline(always)]
5067 fn encode_is_copy() -> bool {
5068 true
5069 }
5070
5071 #[inline(always)]
5072 fn decode_is_copy() -> bool {
5073 true
5074 }
5075 }
5076
5077 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacConstantBitRate, D>
5078 for &AacConstantBitRate
5079 {
5080 #[inline]
5081 unsafe fn encode(
5082 self,
5083 encoder: &mut fidl::encoding::Encoder<'_, D>,
5084 offset: usize,
5085 _depth: fidl::encoding::Depth,
5086 ) -> fidl::Result<()> {
5087 encoder.debug_check_bounds::<AacConstantBitRate>(offset);
5088 unsafe {
5089 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5091 (buf_ptr as *mut AacConstantBitRate)
5092 .write_unaligned((self as *const AacConstantBitRate).read());
5093 }
5096 Ok(())
5097 }
5098 }
5099 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
5100 fidl::encoding::Encode<AacConstantBitRate, D> for (T0,)
5101 {
5102 #[inline]
5103 unsafe fn encode(
5104 self,
5105 encoder: &mut fidl::encoding::Encoder<'_, D>,
5106 offset: usize,
5107 depth: fidl::encoding::Depth,
5108 ) -> fidl::Result<()> {
5109 encoder.debug_check_bounds::<AacConstantBitRate>(offset);
5110 self.0.encode(encoder, offset + 0, depth)?;
5114 Ok(())
5115 }
5116 }
5117
5118 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacConstantBitRate {
5119 #[inline(always)]
5120 fn new_empty() -> Self {
5121 Self { bit_rate: fidl::new_empty!(u32, D) }
5122 }
5123
5124 #[inline]
5125 unsafe fn decode(
5126 &mut self,
5127 decoder: &mut fidl::encoding::Decoder<'_, D>,
5128 offset: usize,
5129 _depth: fidl::encoding::Depth,
5130 ) -> fidl::Result<()> {
5131 decoder.debug_check_bounds::<Self>(offset);
5132 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5133 unsafe {
5136 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
5137 }
5138 Ok(())
5139 }
5140 }
5141
5142 impl fidl::encoding::ValueTypeMarker for AacEncoderSettings {
5143 type Borrowed<'a> = &'a Self;
5144 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5145 value
5146 }
5147 }
5148
5149 unsafe impl fidl::encoding::TypeMarker for AacEncoderSettings {
5150 type Owned = Self;
5151
5152 #[inline(always)]
5153 fn inline_align(_context: fidl::encoding::Context) -> usize {
5154 8
5155 }
5156
5157 #[inline(always)]
5158 fn inline_size(_context: fidl::encoding::Context) -> usize {
5159 48
5160 }
5161 }
5162
5163 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacEncoderSettings, D>
5164 for &AacEncoderSettings
5165 {
5166 #[inline]
5167 unsafe fn encode(
5168 self,
5169 encoder: &mut fidl::encoding::Encoder<'_, D>,
5170 offset: usize,
5171 _depth: fidl::encoding::Depth,
5172 ) -> fidl::Result<()> {
5173 encoder.debug_check_bounds::<AacEncoderSettings>(offset);
5174 fidl::encoding::Encode::<AacEncoderSettings, D>::encode(
5176 (
5177 <AacTransport as fidl::encoding::ValueTypeMarker>::borrow(&self.transport),
5178 <AacChannelMode as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_mode),
5179 <AacBitRate as fidl::encoding::ValueTypeMarker>::borrow(&self.bit_rate),
5180 <AacAudioObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.aot),
5181 ),
5182 encoder,
5183 offset,
5184 _depth,
5185 )
5186 }
5187 }
5188 unsafe impl<
5189 D: fidl::encoding::ResourceDialect,
5190 T0: fidl::encoding::Encode<AacTransport, D>,
5191 T1: fidl::encoding::Encode<AacChannelMode, D>,
5192 T2: fidl::encoding::Encode<AacBitRate, D>,
5193 T3: fidl::encoding::Encode<AacAudioObjectType, D>,
5194 > fidl::encoding::Encode<AacEncoderSettings, D> for (T0, T1, T2, T3)
5195 {
5196 #[inline]
5197 unsafe fn encode(
5198 self,
5199 encoder: &mut fidl::encoding::Encoder<'_, D>,
5200 offset: usize,
5201 depth: fidl::encoding::Depth,
5202 ) -> fidl::Result<()> {
5203 encoder.debug_check_bounds::<AacEncoderSettings>(offset);
5204 unsafe {
5207 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
5208 (ptr as *mut u64).write_unaligned(0);
5209 }
5210 unsafe {
5211 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
5212 (ptr as *mut u64).write_unaligned(0);
5213 }
5214 self.0.encode(encoder, offset + 0, depth)?;
5216 self.1.encode(encoder, offset + 16, depth)?;
5217 self.2.encode(encoder, offset + 24, depth)?;
5218 self.3.encode(encoder, offset + 40, depth)?;
5219 Ok(())
5220 }
5221 }
5222
5223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacEncoderSettings {
5224 #[inline(always)]
5225 fn new_empty() -> Self {
5226 Self {
5227 transport: fidl::new_empty!(AacTransport, D),
5228 channel_mode: fidl::new_empty!(AacChannelMode, D),
5229 bit_rate: fidl::new_empty!(AacBitRate, D),
5230 aot: fidl::new_empty!(AacAudioObjectType, D),
5231 }
5232 }
5233
5234 #[inline]
5235 unsafe fn decode(
5236 &mut self,
5237 decoder: &mut fidl::encoding::Decoder<'_, D>,
5238 offset: usize,
5239 _depth: fidl::encoding::Depth,
5240 ) -> fidl::Result<()> {
5241 decoder.debug_check_bounds::<Self>(offset);
5242 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
5244 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5245 let mask = 0xffffffff00000000u64;
5246 let maskedval = padval & mask;
5247 if maskedval != 0 {
5248 return Err(fidl::Error::NonZeroPadding {
5249 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
5250 });
5251 }
5252 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
5253 let padval = unsafe { (ptr as *const u64).read_unaligned() };
5254 let mask = 0xffffffff00000000u64;
5255 let maskedval = padval & mask;
5256 if maskedval != 0 {
5257 return Err(fidl::Error::NonZeroPadding {
5258 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
5259 });
5260 }
5261 fidl::decode!(AacTransport, D, &mut self.transport, decoder, offset + 0, _depth)?;
5262 fidl::decode!(AacChannelMode, D, &mut self.channel_mode, decoder, offset + 16, _depth)?;
5263 fidl::decode!(AacBitRate, D, &mut self.bit_rate, decoder, offset + 24, _depth)?;
5264 fidl::decode!(AacAudioObjectType, D, &mut self.aot, decoder, offset + 40, _depth)?;
5265 Ok(())
5266 }
5267 }
5268
5269 impl fidl::encoding::ValueTypeMarker for AacTransportAdts {
5270 type Borrowed<'a> = &'a Self;
5271 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5272 value
5273 }
5274 }
5275
5276 unsafe impl fidl::encoding::TypeMarker for AacTransportAdts {
5277 type Owned = Self;
5278
5279 #[inline(always)]
5280 fn inline_align(_context: fidl::encoding::Context) -> usize {
5281 1
5282 }
5283
5284 #[inline(always)]
5285 fn inline_size(_context: fidl::encoding::Context) -> usize {
5286 1
5287 }
5288 }
5289
5290 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportAdts, D>
5291 for &AacTransportAdts
5292 {
5293 #[inline]
5294 unsafe fn encode(
5295 self,
5296 encoder: &mut fidl::encoding::Encoder<'_, D>,
5297 offset: usize,
5298 _depth: fidl::encoding::Depth,
5299 ) -> fidl::Result<()> {
5300 encoder.debug_check_bounds::<AacTransportAdts>(offset);
5301 encoder.write_num(0u8, offset);
5302 Ok(())
5303 }
5304 }
5305
5306 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportAdts {
5307 #[inline(always)]
5308 fn new_empty() -> Self {
5309 Self
5310 }
5311
5312 #[inline]
5313 unsafe fn decode(
5314 &mut self,
5315 decoder: &mut fidl::encoding::Decoder<'_, D>,
5316 offset: usize,
5317 _depth: fidl::encoding::Depth,
5318 ) -> fidl::Result<()> {
5319 decoder.debug_check_bounds::<Self>(offset);
5320 match decoder.read_num::<u8>(offset) {
5321 0 => Ok(()),
5322 _ => Err(fidl::Error::Invalid),
5323 }
5324 }
5325 }
5326
5327 impl fidl::encoding::ValueTypeMarker for AacTransportLatm {
5328 type Borrowed<'a> = &'a Self;
5329 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5330 value
5331 }
5332 }
5333
5334 unsafe impl fidl::encoding::TypeMarker for AacTransportLatm {
5335 type Owned = Self;
5336
5337 #[inline(always)]
5338 fn inline_align(_context: fidl::encoding::Context) -> usize {
5339 1
5340 }
5341
5342 #[inline(always)]
5343 fn inline_size(_context: fidl::encoding::Context) -> usize {
5344 1
5345 }
5346 }
5347
5348 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportLatm, D>
5349 for &AacTransportLatm
5350 {
5351 #[inline]
5352 unsafe fn encode(
5353 self,
5354 encoder: &mut fidl::encoding::Encoder<'_, D>,
5355 offset: usize,
5356 _depth: fidl::encoding::Depth,
5357 ) -> fidl::Result<()> {
5358 encoder.debug_check_bounds::<AacTransportLatm>(offset);
5359 fidl::encoding::Encode::<AacTransportLatm, D>::encode(
5361 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.mux_config_present),),
5362 encoder,
5363 offset,
5364 _depth,
5365 )
5366 }
5367 }
5368 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
5369 fidl::encoding::Encode<AacTransportLatm, D> for (T0,)
5370 {
5371 #[inline]
5372 unsafe fn encode(
5373 self,
5374 encoder: &mut fidl::encoding::Encoder<'_, D>,
5375 offset: usize,
5376 depth: fidl::encoding::Depth,
5377 ) -> fidl::Result<()> {
5378 encoder.debug_check_bounds::<AacTransportLatm>(offset);
5379 self.0.encode(encoder, offset + 0, depth)?;
5383 Ok(())
5384 }
5385 }
5386
5387 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportLatm {
5388 #[inline(always)]
5389 fn new_empty() -> Self {
5390 Self { mux_config_present: fidl::new_empty!(bool, D) }
5391 }
5392
5393 #[inline]
5394 unsafe fn decode(
5395 &mut self,
5396 decoder: &mut fidl::encoding::Decoder<'_, D>,
5397 offset: usize,
5398 _depth: fidl::encoding::Depth,
5399 ) -> fidl::Result<()> {
5400 decoder.debug_check_bounds::<Self>(offset);
5401 fidl::decode!(bool, D, &mut self.mux_config_present, decoder, offset + 0, _depth)?;
5403 Ok(())
5404 }
5405 }
5406
5407 impl fidl::encoding::ValueTypeMarker for AacTransportRaw {
5408 type Borrowed<'a> = &'a Self;
5409 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5410 value
5411 }
5412 }
5413
5414 unsafe impl fidl::encoding::TypeMarker for AacTransportRaw {
5415 type Owned = Self;
5416
5417 #[inline(always)]
5418 fn inline_align(_context: fidl::encoding::Context) -> usize {
5419 1
5420 }
5421
5422 #[inline(always)]
5423 fn inline_size(_context: fidl::encoding::Context) -> usize {
5424 1
5425 }
5426 }
5427
5428 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransportRaw, D>
5429 for &AacTransportRaw
5430 {
5431 #[inline]
5432 unsafe fn encode(
5433 self,
5434 encoder: &mut fidl::encoding::Encoder<'_, D>,
5435 offset: usize,
5436 _depth: fidl::encoding::Depth,
5437 ) -> fidl::Result<()> {
5438 encoder.debug_check_bounds::<AacTransportRaw>(offset);
5439 encoder.write_num(0u8, offset);
5440 Ok(())
5441 }
5442 }
5443
5444 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransportRaw {
5445 #[inline(always)]
5446 fn new_empty() -> Self {
5447 Self
5448 }
5449
5450 #[inline]
5451 unsafe fn decode(
5452 &mut self,
5453 decoder: &mut fidl::encoding::Decoder<'_, D>,
5454 offset: usize,
5455 _depth: fidl::encoding::Depth,
5456 ) -> fidl::Result<()> {
5457 decoder.debug_check_bounds::<Self>(offset);
5458 match decoder.read_num::<u8>(offset) {
5459 0 => Ok(()),
5460 _ => Err(fidl::Error::Invalid),
5461 }
5462 }
5463 }
5464
5465 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchCaptureActivityResponse {
5466 type Borrowed<'a> = &'a Self;
5467 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5468 value
5469 }
5470 }
5471
5472 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchCaptureActivityResponse {
5473 type Owned = Self;
5474
5475 #[inline(always)]
5476 fn inline_align(_context: fidl::encoding::Context) -> usize {
5477 8
5478 }
5479
5480 #[inline(always)]
5481 fn inline_size(_context: fidl::encoding::Context) -> usize {
5482 16
5483 }
5484 }
5485
5486 unsafe impl<D: fidl::encoding::ResourceDialect>
5487 fidl::encoding::Encode<ActivityReporterWatchCaptureActivityResponse, D>
5488 for &ActivityReporterWatchCaptureActivityResponse
5489 {
5490 #[inline]
5491 unsafe fn encode(
5492 self,
5493 encoder: &mut fidl::encoding::Encoder<'_, D>,
5494 offset: usize,
5495 _depth: fidl::encoding::Depth,
5496 ) -> fidl::Result<()> {
5497 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivityResponse>(offset);
5498 fidl::encoding::Encode::<ActivityReporterWatchCaptureActivityResponse, D>::encode(
5500 (
5501 <fidl::encoding::Vector<AudioCaptureUsage, 4> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5502 ),
5503 encoder, offset, _depth
5504 )
5505 }
5506 }
5507 unsafe impl<
5508 D: fidl::encoding::ResourceDialect,
5509 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioCaptureUsage, 4>, D>,
5510 > fidl::encoding::Encode<ActivityReporterWatchCaptureActivityResponse, D> for (T0,)
5511 {
5512 #[inline]
5513 unsafe fn encode(
5514 self,
5515 encoder: &mut fidl::encoding::Encoder<'_, D>,
5516 offset: usize,
5517 depth: fidl::encoding::Depth,
5518 ) -> fidl::Result<()> {
5519 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivityResponse>(offset);
5520 self.0.encode(encoder, offset + 0, depth)?;
5524 Ok(())
5525 }
5526 }
5527
5528 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5529 for ActivityReporterWatchCaptureActivityResponse
5530 {
5531 #[inline(always)]
5532 fn new_empty() -> Self {
5533 Self {
5534 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioCaptureUsage, 4>, D),
5535 }
5536 }
5537
5538 #[inline]
5539 unsafe fn decode(
5540 &mut self,
5541 decoder: &mut fidl::encoding::Decoder<'_, D>,
5542 offset: usize,
5543 _depth: fidl::encoding::Depth,
5544 ) -> fidl::Result<()> {
5545 decoder.debug_check_bounds::<Self>(offset);
5546 fidl::decode!(fidl::encoding::Vector<AudioCaptureUsage, 4>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5548 Ok(())
5549 }
5550 }
5551
5552 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchRenderActivityResponse {
5553 type Borrowed<'a> = &'a Self;
5554 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5555 value
5556 }
5557 }
5558
5559 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchRenderActivityResponse {
5560 type Owned = Self;
5561
5562 #[inline(always)]
5563 fn inline_align(_context: fidl::encoding::Context) -> usize {
5564 8
5565 }
5566
5567 #[inline(always)]
5568 fn inline_size(_context: fidl::encoding::Context) -> usize {
5569 16
5570 }
5571 }
5572
5573 unsafe impl<D: fidl::encoding::ResourceDialect>
5574 fidl::encoding::Encode<ActivityReporterWatchRenderActivityResponse, D>
5575 for &ActivityReporterWatchRenderActivityResponse
5576 {
5577 #[inline]
5578 unsafe fn encode(
5579 self,
5580 encoder: &mut fidl::encoding::Encoder<'_, D>,
5581 offset: usize,
5582 _depth: fidl::encoding::Depth,
5583 ) -> fidl::Result<()> {
5584 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivityResponse>(offset);
5585 fidl::encoding::Encode::<ActivityReporterWatchRenderActivityResponse, D>::encode(
5587 (
5588 <fidl::encoding::Vector<AudioRenderUsage, 5> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5589 ),
5590 encoder, offset, _depth
5591 )
5592 }
5593 }
5594 unsafe impl<
5595 D: fidl::encoding::ResourceDialect,
5596 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioRenderUsage, 5>, D>,
5597 > fidl::encoding::Encode<ActivityReporterWatchRenderActivityResponse, D> for (T0,)
5598 {
5599 #[inline]
5600 unsafe fn encode(
5601 self,
5602 encoder: &mut fidl::encoding::Encoder<'_, D>,
5603 offset: usize,
5604 depth: fidl::encoding::Depth,
5605 ) -> fidl::Result<()> {
5606 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivityResponse>(offset);
5607 self.0.encode(encoder, offset + 0, depth)?;
5611 Ok(())
5612 }
5613 }
5614
5615 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5616 for ActivityReporterWatchRenderActivityResponse
5617 {
5618 #[inline(always)]
5619 fn new_empty() -> Self {
5620 Self { active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioRenderUsage, 5>, D) }
5621 }
5622
5623 #[inline]
5624 unsafe fn decode(
5625 &mut self,
5626 decoder: &mut fidl::encoding::Decoder<'_, D>,
5627 offset: usize,
5628 _depth: fidl::encoding::Depth,
5629 ) -> fidl::Result<()> {
5630 decoder.debug_check_bounds::<Self>(offset);
5631 fidl::decode!(fidl::encoding::Vector<AudioRenderUsage, 5>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5633 Ok(())
5634 }
5635 }
5636
5637 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchCaptureActivity2Response {
5638 type Borrowed<'a> = &'a Self;
5639 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5640 value
5641 }
5642 }
5643
5644 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchCaptureActivity2Response {
5645 type Owned = Self;
5646
5647 #[inline(always)]
5648 fn inline_align(_context: fidl::encoding::Context) -> usize {
5649 8
5650 }
5651
5652 #[inline(always)]
5653 fn inline_size(_context: fidl::encoding::Context) -> usize {
5654 16
5655 }
5656 }
5657
5658 unsafe impl<D: fidl::encoding::ResourceDialect>
5659 fidl::encoding::Encode<ActivityReporterWatchCaptureActivity2Response, D>
5660 for &ActivityReporterWatchCaptureActivity2Response
5661 {
5662 #[inline]
5663 unsafe fn encode(
5664 self,
5665 encoder: &mut fidl::encoding::Encoder<'_, D>,
5666 offset: usize,
5667 _depth: fidl::encoding::Depth,
5668 ) -> fidl::Result<()> {
5669 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivity2Response>(offset);
5670 fidl::encoding::Encode::<ActivityReporterWatchCaptureActivity2Response, D>::encode(
5672 (
5673 <fidl::encoding::Vector<AudioCaptureUsage2, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5674 ),
5675 encoder, offset, _depth
5676 )
5677 }
5678 }
5679 unsafe impl<
5680 D: fidl::encoding::ResourceDialect,
5681 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioCaptureUsage2, 8>, D>,
5682 > fidl::encoding::Encode<ActivityReporterWatchCaptureActivity2Response, D> for (T0,)
5683 {
5684 #[inline]
5685 unsafe fn encode(
5686 self,
5687 encoder: &mut fidl::encoding::Encoder<'_, D>,
5688 offset: usize,
5689 depth: fidl::encoding::Depth,
5690 ) -> fidl::Result<()> {
5691 encoder.debug_check_bounds::<ActivityReporterWatchCaptureActivity2Response>(offset);
5692 self.0.encode(encoder, offset + 0, depth)?;
5696 Ok(())
5697 }
5698 }
5699
5700 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5701 for ActivityReporterWatchCaptureActivity2Response
5702 {
5703 #[inline(always)]
5704 fn new_empty() -> Self {
5705 Self {
5706 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioCaptureUsage2, 8>, D),
5707 }
5708 }
5709
5710 #[inline]
5711 unsafe fn decode(
5712 &mut self,
5713 decoder: &mut fidl::encoding::Decoder<'_, D>,
5714 offset: usize,
5715 _depth: fidl::encoding::Depth,
5716 ) -> fidl::Result<()> {
5717 decoder.debug_check_bounds::<Self>(offset);
5718 fidl::decode!(fidl::encoding::Vector<AudioCaptureUsage2, 8>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5720 Ok(())
5721 }
5722 }
5723
5724 impl fidl::encoding::ValueTypeMarker for ActivityReporterWatchRenderActivity2Response {
5725 type Borrowed<'a> = &'a Self;
5726 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5727 value
5728 }
5729 }
5730
5731 unsafe impl fidl::encoding::TypeMarker for ActivityReporterWatchRenderActivity2Response {
5732 type Owned = Self;
5733
5734 #[inline(always)]
5735 fn inline_align(_context: fidl::encoding::Context) -> usize {
5736 8
5737 }
5738
5739 #[inline(always)]
5740 fn inline_size(_context: fidl::encoding::Context) -> usize {
5741 16
5742 }
5743 }
5744
5745 unsafe impl<D: fidl::encoding::ResourceDialect>
5746 fidl::encoding::Encode<ActivityReporterWatchRenderActivity2Response, D>
5747 for &ActivityReporterWatchRenderActivity2Response
5748 {
5749 #[inline]
5750 unsafe fn encode(
5751 self,
5752 encoder: &mut fidl::encoding::Encoder<'_, D>,
5753 offset: usize,
5754 _depth: fidl::encoding::Depth,
5755 ) -> fidl::Result<()> {
5756 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivity2Response>(offset);
5757 fidl::encoding::Encode::<ActivityReporterWatchRenderActivity2Response, D>::encode(
5759 (
5760 <fidl::encoding::Vector<AudioRenderUsage2, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.active_usages),
5761 ),
5762 encoder, offset, _depth
5763 )
5764 }
5765 }
5766 unsafe impl<
5767 D: fidl::encoding::ResourceDialect,
5768 T0: fidl::encoding::Encode<fidl::encoding::Vector<AudioRenderUsage2, 8>, D>,
5769 > fidl::encoding::Encode<ActivityReporterWatchRenderActivity2Response, D> for (T0,)
5770 {
5771 #[inline]
5772 unsafe fn encode(
5773 self,
5774 encoder: &mut fidl::encoding::Encoder<'_, D>,
5775 offset: usize,
5776 depth: fidl::encoding::Depth,
5777 ) -> fidl::Result<()> {
5778 encoder.debug_check_bounds::<ActivityReporterWatchRenderActivity2Response>(offset);
5779 self.0.encode(encoder, offset + 0, depth)?;
5783 Ok(())
5784 }
5785 }
5786
5787 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5788 for ActivityReporterWatchRenderActivity2Response
5789 {
5790 #[inline(always)]
5791 fn new_empty() -> Self {
5792 Self {
5793 active_usages: fidl::new_empty!(fidl::encoding::Vector<AudioRenderUsage2, 8>, D),
5794 }
5795 }
5796
5797 #[inline]
5798 unsafe fn decode(
5799 &mut self,
5800 decoder: &mut fidl::encoding::Decoder<'_, D>,
5801 offset: usize,
5802 _depth: fidl::encoding::Depth,
5803 ) -> fidl::Result<()> {
5804 decoder.debug_check_bounds::<Self>(offset);
5805 fidl::decode!(fidl::encoding::Vector<AudioRenderUsage2, 8>, D, &mut self.active_usages, decoder, offset + 0, _depth)?;
5807 Ok(())
5808 }
5809 }
5810
5811 impl fidl::encoding::ValueTypeMarker for AudioCapturerCaptureAtRequest {
5812 type Borrowed<'a> = &'a Self;
5813 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5814 value
5815 }
5816 }
5817
5818 unsafe impl fidl::encoding::TypeMarker for AudioCapturerCaptureAtRequest {
5819 type Owned = Self;
5820
5821 #[inline(always)]
5822 fn inline_align(_context: fidl::encoding::Context) -> usize {
5823 4
5824 }
5825
5826 #[inline(always)]
5827 fn inline_size(_context: fidl::encoding::Context) -> usize {
5828 12
5829 }
5830 #[inline(always)]
5831 fn encode_is_copy() -> bool {
5832 true
5833 }
5834
5835 #[inline(always)]
5836 fn decode_is_copy() -> bool {
5837 true
5838 }
5839 }
5840
5841 unsafe impl<D: fidl::encoding::ResourceDialect>
5842 fidl::encoding::Encode<AudioCapturerCaptureAtRequest, D>
5843 for &AudioCapturerCaptureAtRequest
5844 {
5845 #[inline]
5846 unsafe fn encode(
5847 self,
5848 encoder: &mut fidl::encoding::Encoder<'_, D>,
5849 offset: usize,
5850 _depth: fidl::encoding::Depth,
5851 ) -> fidl::Result<()> {
5852 encoder.debug_check_bounds::<AudioCapturerCaptureAtRequest>(offset);
5853 unsafe {
5854 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5856 (buf_ptr as *mut AudioCapturerCaptureAtRequest)
5857 .write_unaligned((self as *const AudioCapturerCaptureAtRequest).read());
5858 }
5861 Ok(())
5862 }
5863 }
5864 unsafe impl<
5865 D: fidl::encoding::ResourceDialect,
5866 T0: fidl::encoding::Encode<u32, D>,
5867 T1: fidl::encoding::Encode<u32, D>,
5868 T2: fidl::encoding::Encode<u32, D>,
5869 > fidl::encoding::Encode<AudioCapturerCaptureAtRequest, D> for (T0, T1, T2)
5870 {
5871 #[inline]
5872 unsafe fn encode(
5873 self,
5874 encoder: &mut fidl::encoding::Encoder<'_, D>,
5875 offset: usize,
5876 depth: fidl::encoding::Depth,
5877 ) -> fidl::Result<()> {
5878 encoder.debug_check_bounds::<AudioCapturerCaptureAtRequest>(offset);
5879 self.0.encode(encoder, offset + 0, depth)?;
5883 self.1.encode(encoder, offset + 4, depth)?;
5884 self.2.encode(encoder, offset + 8, depth)?;
5885 Ok(())
5886 }
5887 }
5888
5889 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5890 for AudioCapturerCaptureAtRequest
5891 {
5892 #[inline(always)]
5893 fn new_empty() -> Self {
5894 Self {
5895 payload_buffer_id: fidl::new_empty!(u32, D),
5896 payload_offset: fidl::new_empty!(u32, D),
5897 frames: fidl::new_empty!(u32, D),
5898 }
5899 }
5900
5901 #[inline]
5902 unsafe fn decode(
5903 &mut self,
5904 decoder: &mut fidl::encoding::Decoder<'_, D>,
5905 offset: usize,
5906 _depth: fidl::encoding::Depth,
5907 ) -> fidl::Result<()> {
5908 decoder.debug_check_bounds::<Self>(offset);
5909 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
5910 unsafe {
5913 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 12);
5914 }
5915 Ok(())
5916 }
5917 }
5918
5919 impl fidl::encoding::ValueTypeMarker for AudioCapturerCaptureAtResponse {
5920 type Borrowed<'a> = &'a Self;
5921 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5922 value
5923 }
5924 }
5925
5926 unsafe impl fidl::encoding::TypeMarker for AudioCapturerCaptureAtResponse {
5927 type Owned = Self;
5928
5929 #[inline(always)]
5930 fn inline_align(_context: fidl::encoding::Context) -> usize {
5931 8
5932 }
5933
5934 #[inline(always)]
5935 fn inline_size(_context: fidl::encoding::Context) -> usize {
5936 56
5937 }
5938 }
5939
5940 unsafe impl<D: fidl::encoding::ResourceDialect>
5941 fidl::encoding::Encode<AudioCapturerCaptureAtResponse, D>
5942 for &AudioCapturerCaptureAtResponse
5943 {
5944 #[inline]
5945 unsafe fn encode(
5946 self,
5947 encoder: &mut fidl::encoding::Encoder<'_, D>,
5948 offset: usize,
5949 _depth: fidl::encoding::Depth,
5950 ) -> fidl::Result<()> {
5951 encoder.debug_check_bounds::<AudioCapturerCaptureAtResponse>(offset);
5952 unsafe {
5953 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
5955 (buf_ptr as *mut AudioCapturerCaptureAtResponse)
5956 .write_unaligned((self as *const AudioCapturerCaptureAtResponse).read());
5957 let padding_ptr = buf_ptr.offset(8) as *mut u64;
5960 let padding_mask = 0xffffffff00000000u64;
5961 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
5962 let padding_ptr = buf_ptr.offset(32) as *mut u64;
5963 let padding_mask = 0xffffffff00000000u64;
5964 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
5965 }
5966 Ok(())
5967 }
5968 }
5969 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
5970 fidl::encoding::Encode<AudioCapturerCaptureAtResponse, D> for (T0,)
5971 {
5972 #[inline]
5973 unsafe fn encode(
5974 self,
5975 encoder: &mut fidl::encoding::Encoder<'_, D>,
5976 offset: usize,
5977 depth: fidl::encoding::Depth,
5978 ) -> fidl::Result<()> {
5979 encoder.debug_check_bounds::<AudioCapturerCaptureAtResponse>(offset);
5980 self.0.encode(encoder, offset + 0, depth)?;
5984 Ok(())
5985 }
5986 }
5987
5988 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5989 for AudioCapturerCaptureAtResponse
5990 {
5991 #[inline(always)]
5992 fn new_empty() -> Self {
5993 Self { captured_packet: fidl::new_empty!(StreamPacket, D) }
5994 }
5995
5996 #[inline]
5997 unsafe fn decode(
5998 &mut self,
5999 decoder: &mut fidl::encoding::Decoder<'_, D>,
6000 offset: usize,
6001 _depth: fidl::encoding::Depth,
6002 ) -> fidl::Result<()> {
6003 decoder.debug_check_bounds::<Self>(offset);
6004 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6005 let ptr = unsafe { buf_ptr.offset(8) };
6007 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6008 let mask = 0xffffffff00000000u64;
6009 let maskedval = padval & mask;
6010 if maskedval != 0 {
6011 return Err(fidl::Error::NonZeroPadding {
6012 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
6013 });
6014 }
6015 let ptr = unsafe { buf_ptr.offset(32) };
6016 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6017 let mask = 0xffffffff00000000u64;
6018 let maskedval = padval & mask;
6019 if maskedval != 0 {
6020 return Err(fidl::Error::NonZeroPadding {
6021 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
6022 });
6023 }
6024 unsafe {
6026 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
6027 }
6028 Ok(())
6029 }
6030 }
6031
6032 impl fidl::encoding::ValueTypeMarker for AudioCapturerGetStreamTypeResponse {
6033 type Borrowed<'a> = &'a Self;
6034 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6035 value
6036 }
6037 }
6038
6039 unsafe impl fidl::encoding::TypeMarker for AudioCapturerGetStreamTypeResponse {
6040 type Owned = Self;
6041
6042 #[inline(always)]
6043 fn inline_align(_context: fidl::encoding::Context) -> usize {
6044 8
6045 }
6046
6047 #[inline(always)]
6048 fn inline_size(_context: fidl::encoding::Context) -> usize {
6049 48
6050 }
6051 }
6052
6053 unsafe impl<D: fidl::encoding::ResourceDialect>
6054 fidl::encoding::Encode<AudioCapturerGetStreamTypeResponse, D>
6055 for &AudioCapturerGetStreamTypeResponse
6056 {
6057 #[inline]
6058 unsafe fn encode(
6059 self,
6060 encoder: &mut fidl::encoding::Encoder<'_, D>,
6061 offset: usize,
6062 _depth: fidl::encoding::Depth,
6063 ) -> fidl::Result<()> {
6064 encoder.debug_check_bounds::<AudioCapturerGetStreamTypeResponse>(offset);
6065 fidl::encoding::Encode::<AudioCapturerGetStreamTypeResponse, D>::encode(
6067 (<StreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),),
6068 encoder,
6069 offset,
6070 _depth,
6071 )
6072 }
6073 }
6074 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamType, D>>
6075 fidl::encoding::Encode<AudioCapturerGetStreamTypeResponse, D> for (T0,)
6076 {
6077 #[inline]
6078 unsafe fn encode(
6079 self,
6080 encoder: &mut fidl::encoding::Encoder<'_, D>,
6081 offset: usize,
6082 depth: fidl::encoding::Depth,
6083 ) -> fidl::Result<()> {
6084 encoder.debug_check_bounds::<AudioCapturerGetStreamTypeResponse>(offset);
6085 self.0.encode(encoder, offset + 0, depth)?;
6089 Ok(())
6090 }
6091 }
6092
6093 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6094 for AudioCapturerGetStreamTypeResponse
6095 {
6096 #[inline(always)]
6097 fn new_empty() -> Self {
6098 Self { stream_type: fidl::new_empty!(StreamType, D) }
6099 }
6100
6101 #[inline]
6102 unsafe fn decode(
6103 &mut self,
6104 decoder: &mut fidl::encoding::Decoder<'_, D>,
6105 offset: usize,
6106 _depth: fidl::encoding::Depth,
6107 ) -> fidl::Result<()> {
6108 decoder.debug_check_bounds::<Self>(offset);
6109 fidl::decode!(StreamType, D, &mut self.stream_type, decoder, offset + 0, _depth)?;
6111 Ok(())
6112 }
6113 }
6114
6115 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetPcmStreamTypeRequest {
6116 type Borrowed<'a> = &'a Self;
6117 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6118 value
6119 }
6120 }
6121
6122 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetPcmStreamTypeRequest {
6123 type Owned = Self;
6124
6125 #[inline(always)]
6126 fn inline_align(_context: fidl::encoding::Context) -> usize {
6127 4
6128 }
6129
6130 #[inline(always)]
6131 fn inline_size(_context: fidl::encoding::Context) -> usize {
6132 12
6133 }
6134 }
6135
6136 unsafe impl<D: fidl::encoding::ResourceDialect>
6137 fidl::encoding::Encode<AudioCapturerSetPcmStreamTypeRequest, D>
6138 for &AudioCapturerSetPcmStreamTypeRequest
6139 {
6140 #[inline]
6141 unsafe fn encode(
6142 self,
6143 encoder: &mut fidl::encoding::Encoder<'_, D>,
6144 offset: usize,
6145 _depth: fidl::encoding::Depth,
6146 ) -> fidl::Result<()> {
6147 encoder.debug_check_bounds::<AudioCapturerSetPcmStreamTypeRequest>(offset);
6148 fidl::encoding::Encode::<AudioCapturerSetPcmStreamTypeRequest, D>::encode(
6150 (<AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),),
6151 encoder,
6152 offset,
6153 _depth,
6154 )
6155 }
6156 }
6157 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioStreamType, D>>
6158 fidl::encoding::Encode<AudioCapturerSetPcmStreamTypeRequest, D> for (T0,)
6159 {
6160 #[inline]
6161 unsafe fn encode(
6162 self,
6163 encoder: &mut fidl::encoding::Encoder<'_, D>,
6164 offset: usize,
6165 depth: fidl::encoding::Depth,
6166 ) -> fidl::Result<()> {
6167 encoder.debug_check_bounds::<AudioCapturerSetPcmStreamTypeRequest>(offset);
6168 self.0.encode(encoder, offset + 0, depth)?;
6172 Ok(())
6173 }
6174 }
6175
6176 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6177 for AudioCapturerSetPcmStreamTypeRequest
6178 {
6179 #[inline(always)]
6180 fn new_empty() -> Self {
6181 Self { stream_type: fidl::new_empty!(AudioStreamType, D) }
6182 }
6183
6184 #[inline]
6185 unsafe fn decode(
6186 &mut self,
6187 decoder: &mut fidl::encoding::Decoder<'_, D>,
6188 offset: usize,
6189 _depth: fidl::encoding::Depth,
6190 ) -> fidl::Result<()> {
6191 decoder.debug_check_bounds::<Self>(offset);
6192 fidl::decode!(AudioStreamType, D, &mut self.stream_type, decoder, offset + 0, _depth)?;
6194 Ok(())
6195 }
6196 }
6197
6198 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetUsage2Request {
6199 type Borrowed<'a> = &'a Self;
6200 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6201 value
6202 }
6203 }
6204
6205 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetUsage2Request {
6206 type Owned = Self;
6207
6208 #[inline(always)]
6209 fn inline_align(_context: fidl::encoding::Context) -> usize {
6210 4
6211 }
6212
6213 #[inline(always)]
6214 fn inline_size(_context: fidl::encoding::Context) -> usize {
6215 4
6216 }
6217 }
6218
6219 unsafe impl<D: fidl::encoding::ResourceDialect>
6220 fidl::encoding::Encode<AudioCapturerSetUsage2Request, D>
6221 for &AudioCapturerSetUsage2Request
6222 {
6223 #[inline]
6224 unsafe fn encode(
6225 self,
6226 encoder: &mut fidl::encoding::Encoder<'_, D>,
6227 offset: usize,
6228 _depth: fidl::encoding::Depth,
6229 ) -> fidl::Result<()> {
6230 encoder.debug_check_bounds::<AudioCapturerSetUsage2Request>(offset);
6231 fidl::encoding::Encode::<AudioCapturerSetUsage2Request, D>::encode(
6233 (<AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
6234 encoder,
6235 offset,
6236 _depth,
6237 )
6238 }
6239 }
6240 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioCaptureUsage2, D>>
6241 fidl::encoding::Encode<AudioCapturerSetUsage2Request, D> for (T0,)
6242 {
6243 #[inline]
6244 unsafe fn encode(
6245 self,
6246 encoder: &mut fidl::encoding::Encoder<'_, D>,
6247 offset: usize,
6248 depth: fidl::encoding::Depth,
6249 ) -> fidl::Result<()> {
6250 encoder.debug_check_bounds::<AudioCapturerSetUsage2Request>(offset);
6251 self.0.encode(encoder, offset + 0, depth)?;
6255 Ok(())
6256 }
6257 }
6258
6259 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6260 for AudioCapturerSetUsage2Request
6261 {
6262 #[inline(always)]
6263 fn new_empty() -> Self {
6264 Self { usage: fidl::new_empty!(AudioCaptureUsage2, D) }
6265 }
6266
6267 #[inline]
6268 unsafe fn decode(
6269 &mut self,
6270 decoder: &mut fidl::encoding::Decoder<'_, D>,
6271 offset: usize,
6272 _depth: fidl::encoding::Depth,
6273 ) -> fidl::Result<()> {
6274 decoder.debug_check_bounds::<Self>(offset);
6275 fidl::decode!(AudioCaptureUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
6277 Ok(())
6278 }
6279 }
6280
6281 impl fidl::encoding::ValueTypeMarker for AudioCapturerSetUsageRequest {
6282 type Borrowed<'a> = &'a Self;
6283 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6284 value
6285 }
6286 }
6287
6288 unsafe impl fidl::encoding::TypeMarker for AudioCapturerSetUsageRequest {
6289 type Owned = Self;
6290
6291 #[inline(always)]
6292 fn inline_align(_context: fidl::encoding::Context) -> usize {
6293 4
6294 }
6295
6296 #[inline(always)]
6297 fn inline_size(_context: fidl::encoding::Context) -> usize {
6298 4
6299 }
6300 }
6301
6302 unsafe impl<D: fidl::encoding::ResourceDialect>
6303 fidl::encoding::Encode<AudioCapturerSetUsageRequest, D> for &AudioCapturerSetUsageRequest
6304 {
6305 #[inline]
6306 unsafe fn encode(
6307 self,
6308 encoder: &mut fidl::encoding::Encoder<'_, D>,
6309 offset: usize,
6310 _depth: fidl::encoding::Depth,
6311 ) -> fidl::Result<()> {
6312 encoder.debug_check_bounds::<AudioCapturerSetUsageRequest>(offset);
6313 fidl::encoding::Encode::<AudioCapturerSetUsageRequest, D>::encode(
6315 (<AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
6316 encoder,
6317 offset,
6318 _depth,
6319 )
6320 }
6321 }
6322 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioCaptureUsage, D>>
6323 fidl::encoding::Encode<AudioCapturerSetUsageRequest, D> for (T0,)
6324 {
6325 #[inline]
6326 unsafe fn encode(
6327 self,
6328 encoder: &mut fidl::encoding::Encoder<'_, D>,
6329 offset: usize,
6330 depth: fidl::encoding::Depth,
6331 ) -> fidl::Result<()> {
6332 encoder.debug_check_bounds::<AudioCapturerSetUsageRequest>(offset);
6333 self.0.encode(encoder, offset + 0, depth)?;
6337 Ok(())
6338 }
6339 }
6340
6341 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6342 for AudioCapturerSetUsageRequest
6343 {
6344 #[inline(always)]
6345 fn new_empty() -> Self {
6346 Self { usage: fidl::new_empty!(AudioCaptureUsage, D) }
6347 }
6348
6349 #[inline]
6350 unsafe fn decode(
6351 &mut self,
6352 decoder: &mut fidl::encoding::Decoder<'_, D>,
6353 offset: usize,
6354 _depth: fidl::encoding::Depth,
6355 ) -> fidl::Result<()> {
6356 decoder.debug_check_bounds::<Self>(offset);
6357 fidl::decode!(AudioCaptureUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
6359 Ok(())
6360 }
6361 }
6362
6363 impl fidl::encoding::ValueTypeMarker for AudioCapturerStartAsyncCaptureRequest {
6364 type Borrowed<'a> = &'a Self;
6365 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6366 value
6367 }
6368 }
6369
6370 unsafe impl fidl::encoding::TypeMarker for AudioCapturerStartAsyncCaptureRequest {
6371 type Owned = Self;
6372
6373 #[inline(always)]
6374 fn inline_align(_context: fidl::encoding::Context) -> usize {
6375 4
6376 }
6377
6378 #[inline(always)]
6379 fn inline_size(_context: fidl::encoding::Context) -> usize {
6380 4
6381 }
6382 #[inline(always)]
6383 fn encode_is_copy() -> bool {
6384 true
6385 }
6386
6387 #[inline(always)]
6388 fn decode_is_copy() -> bool {
6389 true
6390 }
6391 }
6392
6393 unsafe impl<D: fidl::encoding::ResourceDialect>
6394 fidl::encoding::Encode<AudioCapturerStartAsyncCaptureRequest, D>
6395 for &AudioCapturerStartAsyncCaptureRequest
6396 {
6397 #[inline]
6398 unsafe fn encode(
6399 self,
6400 encoder: &mut fidl::encoding::Encoder<'_, D>,
6401 offset: usize,
6402 _depth: fidl::encoding::Depth,
6403 ) -> fidl::Result<()> {
6404 encoder.debug_check_bounds::<AudioCapturerStartAsyncCaptureRequest>(offset);
6405 unsafe {
6406 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
6408 (buf_ptr as *mut AudioCapturerStartAsyncCaptureRequest)
6409 .write_unaligned((self as *const AudioCapturerStartAsyncCaptureRequest).read());
6410 }
6413 Ok(())
6414 }
6415 }
6416 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
6417 fidl::encoding::Encode<AudioCapturerStartAsyncCaptureRequest, D> for (T0,)
6418 {
6419 #[inline]
6420 unsafe fn encode(
6421 self,
6422 encoder: &mut fidl::encoding::Encoder<'_, D>,
6423 offset: usize,
6424 depth: fidl::encoding::Depth,
6425 ) -> fidl::Result<()> {
6426 encoder.debug_check_bounds::<AudioCapturerStartAsyncCaptureRequest>(offset);
6427 self.0.encode(encoder, offset + 0, depth)?;
6431 Ok(())
6432 }
6433 }
6434
6435 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6436 for AudioCapturerStartAsyncCaptureRequest
6437 {
6438 #[inline(always)]
6439 fn new_empty() -> Self {
6440 Self { frames_per_packet: fidl::new_empty!(u32, D) }
6441 }
6442
6443 #[inline]
6444 unsafe fn decode(
6445 &mut self,
6446 decoder: &mut fidl::encoding::Decoder<'_, D>,
6447 offset: usize,
6448 _depth: fidl::encoding::Depth,
6449 ) -> fidl::Result<()> {
6450 decoder.debug_check_bounds::<Self>(offset);
6451 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
6452 unsafe {
6455 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
6456 }
6457 Ok(())
6458 }
6459 }
6460
6461 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatAac {
6462 type Borrowed<'a> = &'a Self;
6463 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6464 value
6465 }
6466 }
6467
6468 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatAac {
6469 type Owned = Self;
6470
6471 #[inline(always)]
6472 fn inline_align(_context: fidl::encoding::Context) -> usize {
6473 1
6474 }
6475
6476 #[inline(always)]
6477 fn inline_size(_context: fidl::encoding::Context) -> usize {
6478 1
6479 }
6480 }
6481
6482 unsafe impl<D: fidl::encoding::ResourceDialect>
6483 fidl::encoding::Encode<AudioCompressedFormatAac, D> for &AudioCompressedFormatAac
6484 {
6485 #[inline]
6486 unsafe fn encode(
6487 self,
6488 encoder: &mut fidl::encoding::Encoder<'_, D>,
6489 offset: usize,
6490 _depth: fidl::encoding::Depth,
6491 ) -> fidl::Result<()> {
6492 encoder.debug_check_bounds::<AudioCompressedFormatAac>(offset);
6493 encoder.write_num(0u8, offset);
6494 Ok(())
6495 }
6496 }
6497
6498 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6499 for AudioCompressedFormatAac
6500 {
6501 #[inline(always)]
6502 fn new_empty() -> Self {
6503 Self
6504 }
6505
6506 #[inline]
6507 unsafe fn decode(
6508 &mut self,
6509 decoder: &mut fidl::encoding::Decoder<'_, D>,
6510 offset: usize,
6511 _depth: fidl::encoding::Depth,
6512 ) -> fidl::Result<()> {
6513 decoder.debug_check_bounds::<Self>(offset);
6514 match decoder.read_num::<u8>(offset) {
6515 0 => Ok(()),
6516 _ => Err(fidl::Error::Invalid),
6517 }
6518 }
6519 }
6520
6521 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatSbc {
6522 type Borrowed<'a> = &'a Self;
6523 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6524 value
6525 }
6526 }
6527
6528 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatSbc {
6529 type Owned = Self;
6530
6531 #[inline(always)]
6532 fn inline_align(_context: fidl::encoding::Context) -> usize {
6533 1
6534 }
6535
6536 #[inline(always)]
6537 fn inline_size(_context: fidl::encoding::Context) -> usize {
6538 1
6539 }
6540 }
6541
6542 unsafe impl<D: fidl::encoding::ResourceDialect>
6543 fidl::encoding::Encode<AudioCompressedFormatSbc, D> for &AudioCompressedFormatSbc
6544 {
6545 #[inline]
6546 unsafe fn encode(
6547 self,
6548 encoder: &mut fidl::encoding::Encoder<'_, D>,
6549 offset: usize,
6550 _depth: fidl::encoding::Depth,
6551 ) -> fidl::Result<()> {
6552 encoder.debug_check_bounds::<AudioCompressedFormatSbc>(offset);
6553 encoder.write_num(0u8, offset);
6554 Ok(())
6555 }
6556 }
6557
6558 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6559 for AudioCompressedFormatSbc
6560 {
6561 #[inline(always)]
6562 fn new_empty() -> Self {
6563 Self
6564 }
6565
6566 #[inline]
6567 unsafe fn decode(
6568 &mut self,
6569 decoder: &mut fidl::encoding::Decoder<'_, D>,
6570 offset: usize,
6571 _depth: fidl::encoding::Depth,
6572 ) -> fidl::Result<()> {
6573 decoder.debug_check_bounds::<Self>(offset);
6574 match decoder.read_num::<u8>(offset) {
6575 0 => Ok(()),
6576 _ => Err(fidl::Error::Invalid),
6577 }
6578 }
6579 }
6580
6581 impl fidl::encoding::ValueTypeMarker for AudioConsumerSetRateRequest {
6582 type Borrowed<'a> = &'a Self;
6583 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6584 value
6585 }
6586 }
6587
6588 unsafe impl fidl::encoding::TypeMarker for AudioConsumerSetRateRequest {
6589 type Owned = Self;
6590
6591 #[inline(always)]
6592 fn inline_align(_context: fidl::encoding::Context) -> usize {
6593 4
6594 }
6595
6596 #[inline(always)]
6597 fn inline_size(_context: fidl::encoding::Context) -> usize {
6598 4
6599 }
6600 }
6601
6602 unsafe impl<D: fidl::encoding::ResourceDialect>
6603 fidl::encoding::Encode<AudioConsumerSetRateRequest, D> for &AudioConsumerSetRateRequest
6604 {
6605 #[inline]
6606 unsafe fn encode(
6607 self,
6608 encoder: &mut fidl::encoding::Encoder<'_, D>,
6609 offset: usize,
6610 _depth: fidl::encoding::Depth,
6611 ) -> fidl::Result<()> {
6612 encoder.debug_check_bounds::<AudioConsumerSetRateRequest>(offset);
6613 fidl::encoding::Encode::<AudioConsumerSetRateRequest, D>::encode(
6615 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.rate),),
6616 encoder,
6617 offset,
6618 _depth,
6619 )
6620 }
6621 }
6622 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
6623 fidl::encoding::Encode<AudioConsumerSetRateRequest, D> for (T0,)
6624 {
6625 #[inline]
6626 unsafe fn encode(
6627 self,
6628 encoder: &mut fidl::encoding::Encoder<'_, D>,
6629 offset: usize,
6630 depth: fidl::encoding::Depth,
6631 ) -> fidl::Result<()> {
6632 encoder.debug_check_bounds::<AudioConsumerSetRateRequest>(offset);
6633 self.0.encode(encoder, offset + 0, depth)?;
6637 Ok(())
6638 }
6639 }
6640
6641 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6642 for AudioConsumerSetRateRequest
6643 {
6644 #[inline(always)]
6645 fn new_empty() -> Self {
6646 Self { rate: fidl::new_empty!(f32, D) }
6647 }
6648
6649 #[inline]
6650 unsafe fn decode(
6651 &mut self,
6652 decoder: &mut fidl::encoding::Decoder<'_, D>,
6653 offset: usize,
6654 _depth: fidl::encoding::Depth,
6655 ) -> fidl::Result<()> {
6656 decoder.debug_check_bounds::<Self>(offset);
6657 fidl::decode!(f32, D, &mut self.rate, decoder, offset + 0, _depth)?;
6659 Ok(())
6660 }
6661 }
6662
6663 impl fidl::encoding::ValueTypeMarker for AudioConsumerStartRequest {
6664 type Borrowed<'a> = &'a Self;
6665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6666 value
6667 }
6668 }
6669
6670 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStartRequest {
6671 type Owned = Self;
6672
6673 #[inline(always)]
6674 fn inline_align(_context: fidl::encoding::Context) -> usize {
6675 8
6676 }
6677
6678 #[inline(always)]
6679 fn inline_size(_context: fidl::encoding::Context) -> usize {
6680 24
6681 }
6682 }
6683
6684 unsafe impl<D: fidl::encoding::ResourceDialect>
6685 fidl::encoding::Encode<AudioConsumerStartRequest, D> for &AudioConsumerStartRequest
6686 {
6687 #[inline]
6688 unsafe fn encode(
6689 self,
6690 encoder: &mut fidl::encoding::Encoder<'_, D>,
6691 offset: usize,
6692 _depth: fidl::encoding::Depth,
6693 ) -> fidl::Result<()> {
6694 encoder.debug_check_bounds::<AudioConsumerStartRequest>(offset);
6695 fidl::encoding::Encode::<AudioConsumerStartRequest, D>::encode(
6697 (
6698 <AudioConsumerStartFlags as fidl::encoding::ValueTypeMarker>::borrow(
6699 &self.flags,
6700 ),
6701 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.reference_time),
6702 <i64 as fidl::encoding::ValueTypeMarker>::borrow(&self.media_time),
6703 ),
6704 encoder,
6705 offset,
6706 _depth,
6707 )
6708 }
6709 }
6710 unsafe impl<
6711 D: fidl::encoding::ResourceDialect,
6712 T0: fidl::encoding::Encode<AudioConsumerStartFlags, D>,
6713 T1: fidl::encoding::Encode<i64, D>,
6714 T2: fidl::encoding::Encode<i64, D>,
6715 > fidl::encoding::Encode<AudioConsumerStartRequest, D> for (T0, T1, T2)
6716 {
6717 #[inline]
6718 unsafe fn encode(
6719 self,
6720 encoder: &mut fidl::encoding::Encoder<'_, D>,
6721 offset: usize,
6722 depth: fidl::encoding::Depth,
6723 ) -> fidl::Result<()> {
6724 encoder.debug_check_bounds::<AudioConsumerStartRequest>(offset);
6725 unsafe {
6728 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
6729 (ptr as *mut u64).write_unaligned(0);
6730 }
6731 self.0.encode(encoder, offset + 0, depth)?;
6733 self.1.encode(encoder, offset + 8, depth)?;
6734 self.2.encode(encoder, offset + 16, depth)?;
6735 Ok(())
6736 }
6737 }
6738
6739 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6740 for AudioConsumerStartRequest
6741 {
6742 #[inline(always)]
6743 fn new_empty() -> Self {
6744 Self {
6745 flags: fidl::new_empty!(AudioConsumerStartFlags, D),
6746 reference_time: fidl::new_empty!(i64, D),
6747 media_time: fidl::new_empty!(i64, D),
6748 }
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 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
6761 let padval = unsafe { (ptr as *const u64).read_unaligned() };
6762 let mask = 0xffffffff00000000u64;
6763 let maskedval = padval & mask;
6764 if maskedval != 0 {
6765 return Err(fidl::Error::NonZeroPadding {
6766 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
6767 });
6768 }
6769 fidl::decode!(
6770 AudioConsumerStartFlags,
6771 D,
6772 &mut self.flags,
6773 decoder,
6774 offset + 0,
6775 _depth
6776 )?;
6777 fidl::decode!(i64, D, &mut self.reference_time, decoder, offset + 8, _depth)?;
6778 fidl::decode!(i64, D, &mut self.media_time, decoder, offset + 16, _depth)?;
6779 Ok(())
6780 }
6781 }
6782
6783 impl fidl::encoding::ValueTypeMarker for AudioConsumerWatchStatusResponse {
6784 type Borrowed<'a> = &'a Self;
6785 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6786 value
6787 }
6788 }
6789
6790 unsafe impl fidl::encoding::TypeMarker for AudioConsumerWatchStatusResponse {
6791 type Owned = Self;
6792
6793 #[inline(always)]
6794 fn inline_align(_context: fidl::encoding::Context) -> usize {
6795 8
6796 }
6797
6798 #[inline(always)]
6799 fn inline_size(_context: fidl::encoding::Context) -> usize {
6800 16
6801 }
6802 }
6803
6804 unsafe impl<D: fidl::encoding::ResourceDialect>
6805 fidl::encoding::Encode<AudioConsumerWatchStatusResponse, D>
6806 for &AudioConsumerWatchStatusResponse
6807 {
6808 #[inline]
6809 unsafe fn encode(
6810 self,
6811 encoder: &mut fidl::encoding::Encoder<'_, D>,
6812 offset: usize,
6813 _depth: fidl::encoding::Depth,
6814 ) -> fidl::Result<()> {
6815 encoder.debug_check_bounds::<AudioConsumerWatchStatusResponse>(offset);
6816 fidl::encoding::Encode::<AudioConsumerWatchStatusResponse, D>::encode(
6818 (<AudioConsumerStatus as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
6819 encoder,
6820 offset,
6821 _depth,
6822 )
6823 }
6824 }
6825 unsafe impl<
6826 D: fidl::encoding::ResourceDialect,
6827 T0: fidl::encoding::Encode<AudioConsumerStatus, D>,
6828 > fidl::encoding::Encode<AudioConsumerWatchStatusResponse, D> for (T0,)
6829 {
6830 #[inline]
6831 unsafe fn encode(
6832 self,
6833 encoder: &mut fidl::encoding::Encoder<'_, D>,
6834 offset: usize,
6835 depth: fidl::encoding::Depth,
6836 ) -> fidl::Result<()> {
6837 encoder.debug_check_bounds::<AudioConsumerWatchStatusResponse>(offset);
6838 self.0.encode(encoder, offset + 0, depth)?;
6842 Ok(())
6843 }
6844 }
6845
6846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6847 for AudioConsumerWatchStatusResponse
6848 {
6849 #[inline(always)]
6850 fn new_empty() -> Self {
6851 Self { status: fidl::new_empty!(AudioConsumerStatus, D) }
6852 }
6853
6854 #[inline]
6855 unsafe fn decode(
6856 &mut self,
6857 decoder: &mut fidl::encoding::Decoder<'_, D>,
6858 offset: usize,
6859 _depth: fidl::encoding::Depth,
6860 ) -> fidl::Result<()> {
6861 decoder.debug_check_bounds::<Self>(offset);
6862 fidl::decode!(AudioConsumerStatus, D, &mut self.status, decoder, offset + 0, _depth)?;
6864 Ok(())
6865 }
6866 }
6867
6868 impl fidl::encoding::ValueTypeMarker for AudioCoreEnableDeviceSettingsRequest {
6869 type Borrowed<'a> = &'a Self;
6870 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6871 value
6872 }
6873 }
6874
6875 unsafe impl fidl::encoding::TypeMarker for AudioCoreEnableDeviceSettingsRequest {
6876 type Owned = Self;
6877
6878 #[inline(always)]
6879 fn inline_align(_context: fidl::encoding::Context) -> usize {
6880 1
6881 }
6882
6883 #[inline(always)]
6884 fn inline_size(_context: fidl::encoding::Context) -> usize {
6885 1
6886 }
6887 }
6888
6889 unsafe impl<D: fidl::encoding::ResourceDialect>
6890 fidl::encoding::Encode<AudioCoreEnableDeviceSettingsRequest, D>
6891 for &AudioCoreEnableDeviceSettingsRequest
6892 {
6893 #[inline]
6894 unsafe fn encode(
6895 self,
6896 encoder: &mut fidl::encoding::Encoder<'_, D>,
6897 offset: usize,
6898 _depth: fidl::encoding::Depth,
6899 ) -> fidl::Result<()> {
6900 encoder.debug_check_bounds::<AudioCoreEnableDeviceSettingsRequest>(offset);
6901 fidl::encoding::Encode::<AudioCoreEnableDeviceSettingsRequest, D>::encode(
6903 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
6904 encoder,
6905 offset,
6906 _depth,
6907 )
6908 }
6909 }
6910 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
6911 fidl::encoding::Encode<AudioCoreEnableDeviceSettingsRequest, D> for (T0,)
6912 {
6913 #[inline]
6914 unsafe fn encode(
6915 self,
6916 encoder: &mut fidl::encoding::Encoder<'_, D>,
6917 offset: usize,
6918 depth: fidl::encoding::Depth,
6919 ) -> fidl::Result<()> {
6920 encoder.debug_check_bounds::<AudioCoreEnableDeviceSettingsRequest>(offset);
6921 self.0.encode(encoder, offset + 0, depth)?;
6925 Ok(())
6926 }
6927 }
6928
6929 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
6930 for AudioCoreEnableDeviceSettingsRequest
6931 {
6932 #[inline(always)]
6933 fn new_empty() -> Self {
6934 Self { enabled: fidl::new_empty!(bool, D) }
6935 }
6936
6937 #[inline]
6938 unsafe fn decode(
6939 &mut self,
6940 decoder: &mut fidl::encoding::Decoder<'_, D>,
6941 offset: usize,
6942 _depth: fidl::encoding::Depth,
6943 ) -> fidl::Result<()> {
6944 decoder.debug_check_bounds::<Self>(offset);
6945 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
6947 Ok(())
6948 }
6949 }
6950
6951 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolume2Request {
6952 type Borrowed<'a> = &'a Self;
6953 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
6954 value
6955 }
6956 }
6957
6958 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolume2Request {
6959 type Owned = Self;
6960
6961 #[inline(always)]
6962 fn inline_align(_context: fidl::encoding::Context) -> usize {
6963 8
6964 }
6965
6966 #[inline(always)]
6967 fn inline_size(_context: fidl::encoding::Context) -> usize {
6968 24
6969 }
6970 }
6971
6972 unsafe impl<D: fidl::encoding::ResourceDialect>
6973 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Request, D>
6974 for &AudioCoreGetDbFromVolume2Request
6975 {
6976 #[inline]
6977 unsafe fn encode(
6978 self,
6979 encoder: &mut fidl::encoding::Encoder<'_, D>,
6980 offset: usize,
6981 _depth: fidl::encoding::Depth,
6982 ) -> fidl::Result<()> {
6983 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Request>(offset);
6984 fidl::encoding::Encode::<AudioCoreGetDbFromVolume2Request, D>::encode(
6986 (
6987 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
6988 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),
6989 ),
6990 encoder,
6991 offset,
6992 _depth,
6993 )
6994 }
6995 }
6996 unsafe impl<
6997 D: fidl::encoding::ResourceDialect,
6998 T0: fidl::encoding::Encode<Usage2, D>,
6999 T1: fidl::encoding::Encode<f32, D>,
7000 > fidl::encoding::Encode<AudioCoreGetDbFromVolume2Request, D> for (T0, T1)
7001 {
7002 #[inline]
7003 unsafe fn encode(
7004 self,
7005 encoder: &mut fidl::encoding::Encoder<'_, D>,
7006 offset: usize,
7007 depth: fidl::encoding::Depth,
7008 ) -> fidl::Result<()> {
7009 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Request>(offset);
7010 unsafe {
7013 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7014 (ptr as *mut u64).write_unaligned(0);
7015 }
7016 self.0.encode(encoder, offset + 0, depth)?;
7018 self.1.encode(encoder, offset + 16, depth)?;
7019 Ok(())
7020 }
7021 }
7022
7023 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7024 for AudioCoreGetDbFromVolume2Request
7025 {
7026 #[inline(always)]
7027 fn new_empty() -> Self {
7028 Self { usage: fidl::new_empty!(Usage2, D), volume: fidl::new_empty!(f32, D) }
7029 }
7030
7031 #[inline]
7032 unsafe fn decode(
7033 &mut self,
7034 decoder: &mut fidl::encoding::Decoder<'_, D>,
7035 offset: usize,
7036 _depth: fidl::encoding::Depth,
7037 ) -> fidl::Result<()> {
7038 decoder.debug_check_bounds::<Self>(offset);
7039 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7041 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7042 let mask = 0xffffffff00000000u64;
7043 let maskedval = padval & mask;
7044 if maskedval != 0 {
7045 return Err(fidl::Error::NonZeroPadding {
7046 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7047 });
7048 }
7049 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7050 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 16, _depth)?;
7051 Ok(())
7052 }
7053 }
7054
7055 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolumeRequest {
7056 type Borrowed<'a> = &'a Self;
7057 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7058 value
7059 }
7060 }
7061
7062 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolumeRequest {
7063 type Owned = Self;
7064
7065 #[inline(always)]
7066 fn inline_align(_context: fidl::encoding::Context) -> usize {
7067 8
7068 }
7069
7070 #[inline(always)]
7071 fn inline_size(_context: fidl::encoding::Context) -> usize {
7072 24
7073 }
7074 }
7075
7076 unsafe impl<D: fidl::encoding::ResourceDialect>
7077 fidl::encoding::Encode<AudioCoreGetDbFromVolumeRequest, D>
7078 for &AudioCoreGetDbFromVolumeRequest
7079 {
7080 #[inline]
7081 unsafe fn encode(
7082 self,
7083 encoder: &mut fidl::encoding::Encoder<'_, D>,
7084 offset: usize,
7085 _depth: fidl::encoding::Depth,
7086 ) -> fidl::Result<()> {
7087 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeRequest>(offset);
7088 fidl::encoding::Encode::<AudioCoreGetDbFromVolumeRequest, D>::encode(
7090 (
7091 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7092 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),
7093 ),
7094 encoder,
7095 offset,
7096 _depth,
7097 )
7098 }
7099 }
7100 unsafe impl<
7101 D: fidl::encoding::ResourceDialect,
7102 T0: fidl::encoding::Encode<Usage, D>,
7103 T1: fidl::encoding::Encode<f32, D>,
7104 > fidl::encoding::Encode<AudioCoreGetDbFromVolumeRequest, D> for (T0, T1)
7105 {
7106 #[inline]
7107 unsafe fn encode(
7108 self,
7109 encoder: &mut fidl::encoding::Encoder<'_, D>,
7110 offset: usize,
7111 depth: fidl::encoding::Depth,
7112 ) -> fidl::Result<()> {
7113 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeRequest>(offset);
7114 unsafe {
7117 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7118 (ptr as *mut u64).write_unaligned(0);
7119 }
7120 self.0.encode(encoder, offset + 0, depth)?;
7122 self.1.encode(encoder, offset + 16, depth)?;
7123 Ok(())
7124 }
7125 }
7126
7127 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7128 for AudioCoreGetDbFromVolumeRequest
7129 {
7130 #[inline(always)]
7131 fn new_empty() -> Self {
7132 Self { usage: fidl::new_empty!(Usage, D), volume: fidl::new_empty!(f32, D) }
7133 }
7134
7135 #[inline]
7136 unsafe fn decode(
7137 &mut self,
7138 decoder: &mut fidl::encoding::Decoder<'_, D>,
7139 offset: usize,
7140 _depth: fidl::encoding::Depth,
7141 ) -> fidl::Result<()> {
7142 decoder.debug_check_bounds::<Self>(offset);
7143 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7145 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7146 let mask = 0xffffffff00000000u64;
7147 let maskedval = padval & mask;
7148 if maskedval != 0 {
7149 return Err(fidl::Error::NonZeroPadding {
7150 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7151 });
7152 }
7153 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7154 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 16, _depth)?;
7155 Ok(())
7156 }
7157 }
7158
7159 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolumeResponse {
7160 type Borrowed<'a> = &'a Self;
7161 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7162 value
7163 }
7164 }
7165
7166 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolumeResponse {
7167 type Owned = Self;
7168
7169 #[inline(always)]
7170 fn inline_align(_context: fidl::encoding::Context) -> usize {
7171 4
7172 }
7173
7174 #[inline(always)]
7175 fn inline_size(_context: fidl::encoding::Context) -> usize {
7176 4
7177 }
7178 }
7179
7180 unsafe impl<D: fidl::encoding::ResourceDialect>
7181 fidl::encoding::Encode<AudioCoreGetDbFromVolumeResponse, D>
7182 for &AudioCoreGetDbFromVolumeResponse
7183 {
7184 #[inline]
7185 unsafe fn encode(
7186 self,
7187 encoder: &mut fidl::encoding::Encoder<'_, D>,
7188 offset: usize,
7189 _depth: fidl::encoding::Depth,
7190 ) -> fidl::Result<()> {
7191 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeResponse>(offset);
7192 fidl::encoding::Encode::<AudioCoreGetDbFromVolumeResponse, D>::encode(
7194 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),),
7195 encoder,
7196 offset,
7197 _depth,
7198 )
7199 }
7200 }
7201 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
7202 fidl::encoding::Encode<AudioCoreGetDbFromVolumeResponse, D> for (T0,)
7203 {
7204 #[inline]
7205 unsafe fn encode(
7206 self,
7207 encoder: &mut fidl::encoding::Encoder<'_, D>,
7208 offset: usize,
7209 depth: fidl::encoding::Depth,
7210 ) -> fidl::Result<()> {
7211 encoder.debug_check_bounds::<AudioCoreGetDbFromVolumeResponse>(offset);
7212 self.0.encode(encoder, offset + 0, depth)?;
7216 Ok(())
7217 }
7218 }
7219
7220 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7221 for AudioCoreGetDbFromVolumeResponse
7222 {
7223 #[inline(always)]
7224 fn new_empty() -> Self {
7225 Self { gain_db: fidl::new_empty!(f32, D) }
7226 }
7227
7228 #[inline]
7229 unsafe fn decode(
7230 &mut self,
7231 decoder: &mut fidl::encoding::Decoder<'_, D>,
7232 offset: usize,
7233 _depth: fidl::encoding::Depth,
7234 ) -> fidl::Result<()> {
7235 decoder.debug_check_bounds::<Self>(offset);
7236 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
7238 Ok(())
7239 }
7240 }
7241
7242 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDb2Request {
7243 type Borrowed<'a> = &'a Self;
7244 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7245 value
7246 }
7247 }
7248
7249 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDb2Request {
7250 type Owned = Self;
7251
7252 #[inline(always)]
7253 fn inline_align(_context: fidl::encoding::Context) -> usize {
7254 8
7255 }
7256
7257 #[inline(always)]
7258 fn inline_size(_context: fidl::encoding::Context) -> usize {
7259 24
7260 }
7261 }
7262
7263 unsafe impl<D: fidl::encoding::ResourceDialect>
7264 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Request, D>
7265 for &AudioCoreGetVolumeFromDb2Request
7266 {
7267 #[inline]
7268 unsafe fn encode(
7269 self,
7270 encoder: &mut fidl::encoding::Encoder<'_, D>,
7271 offset: usize,
7272 _depth: fidl::encoding::Depth,
7273 ) -> fidl::Result<()> {
7274 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Request>(offset);
7275 fidl::encoding::Encode::<AudioCoreGetVolumeFromDb2Request, D>::encode(
7277 (
7278 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7279 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7280 ),
7281 encoder,
7282 offset,
7283 _depth,
7284 )
7285 }
7286 }
7287 unsafe impl<
7288 D: fidl::encoding::ResourceDialect,
7289 T0: fidl::encoding::Encode<Usage2, D>,
7290 T1: fidl::encoding::Encode<f32, D>,
7291 > fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Request, D> for (T0, T1)
7292 {
7293 #[inline]
7294 unsafe fn encode(
7295 self,
7296 encoder: &mut fidl::encoding::Encoder<'_, D>,
7297 offset: usize,
7298 depth: fidl::encoding::Depth,
7299 ) -> fidl::Result<()> {
7300 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Request>(offset);
7301 unsafe {
7304 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7305 (ptr as *mut u64).write_unaligned(0);
7306 }
7307 self.0.encode(encoder, offset + 0, depth)?;
7309 self.1.encode(encoder, offset + 16, depth)?;
7310 Ok(())
7311 }
7312 }
7313
7314 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7315 for AudioCoreGetVolumeFromDb2Request
7316 {
7317 #[inline(always)]
7318 fn new_empty() -> Self {
7319 Self { usage: fidl::new_empty!(Usage2, D), gain_db: fidl::new_empty!(f32, D) }
7320 }
7321
7322 #[inline]
7323 unsafe fn decode(
7324 &mut self,
7325 decoder: &mut fidl::encoding::Decoder<'_, D>,
7326 offset: usize,
7327 _depth: fidl::encoding::Depth,
7328 ) -> fidl::Result<()> {
7329 decoder.debug_check_bounds::<Self>(offset);
7330 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7332 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7333 let mask = 0xffffffff00000000u64;
7334 let maskedval = padval & mask;
7335 if maskedval != 0 {
7336 return Err(fidl::Error::NonZeroPadding {
7337 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7338 });
7339 }
7340 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7341 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 16, _depth)?;
7342 Ok(())
7343 }
7344 }
7345
7346 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDbRequest {
7347 type Borrowed<'a> = &'a Self;
7348 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7349 value
7350 }
7351 }
7352
7353 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDbRequest {
7354 type Owned = Self;
7355
7356 #[inline(always)]
7357 fn inline_align(_context: fidl::encoding::Context) -> usize {
7358 8
7359 }
7360
7361 #[inline(always)]
7362 fn inline_size(_context: fidl::encoding::Context) -> usize {
7363 24
7364 }
7365 }
7366
7367 unsafe impl<D: fidl::encoding::ResourceDialect>
7368 fidl::encoding::Encode<AudioCoreGetVolumeFromDbRequest, D>
7369 for &AudioCoreGetVolumeFromDbRequest
7370 {
7371 #[inline]
7372 unsafe fn encode(
7373 self,
7374 encoder: &mut fidl::encoding::Encoder<'_, D>,
7375 offset: usize,
7376 _depth: fidl::encoding::Depth,
7377 ) -> fidl::Result<()> {
7378 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbRequest>(offset);
7379 fidl::encoding::Encode::<AudioCoreGetVolumeFromDbRequest, D>::encode(
7381 (
7382 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7383 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7384 ),
7385 encoder,
7386 offset,
7387 _depth,
7388 )
7389 }
7390 }
7391 unsafe impl<
7392 D: fidl::encoding::ResourceDialect,
7393 T0: fidl::encoding::Encode<Usage, D>,
7394 T1: fidl::encoding::Encode<f32, D>,
7395 > fidl::encoding::Encode<AudioCoreGetVolumeFromDbRequest, D> for (T0, T1)
7396 {
7397 #[inline]
7398 unsafe fn encode(
7399 self,
7400 encoder: &mut fidl::encoding::Encoder<'_, D>,
7401 offset: usize,
7402 depth: fidl::encoding::Depth,
7403 ) -> fidl::Result<()> {
7404 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbRequest>(offset);
7405 unsafe {
7408 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
7409 (ptr as *mut u64).write_unaligned(0);
7410 }
7411 self.0.encode(encoder, offset + 0, depth)?;
7413 self.1.encode(encoder, offset + 16, depth)?;
7414 Ok(())
7415 }
7416 }
7417
7418 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7419 for AudioCoreGetVolumeFromDbRequest
7420 {
7421 #[inline(always)]
7422 fn new_empty() -> Self {
7423 Self { usage: fidl::new_empty!(Usage, D), gain_db: fidl::new_empty!(f32, D) }
7424 }
7425
7426 #[inline]
7427 unsafe fn decode(
7428 &mut self,
7429 decoder: &mut fidl::encoding::Decoder<'_, D>,
7430 offset: usize,
7431 _depth: fidl::encoding::Depth,
7432 ) -> fidl::Result<()> {
7433 decoder.debug_check_bounds::<Self>(offset);
7434 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
7436 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7437 let mask = 0xffffffff00000000u64;
7438 let maskedval = padval & mask;
7439 if maskedval != 0 {
7440 return Err(fidl::Error::NonZeroPadding {
7441 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
7442 });
7443 }
7444 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7445 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 16, _depth)?;
7446 Ok(())
7447 }
7448 }
7449
7450 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDbResponse {
7451 type Borrowed<'a> = &'a Self;
7452 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7453 value
7454 }
7455 }
7456
7457 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDbResponse {
7458 type Owned = Self;
7459
7460 #[inline(always)]
7461 fn inline_align(_context: fidl::encoding::Context) -> usize {
7462 4
7463 }
7464
7465 #[inline(always)]
7466 fn inline_size(_context: fidl::encoding::Context) -> usize {
7467 4
7468 }
7469 }
7470
7471 unsafe impl<D: fidl::encoding::ResourceDialect>
7472 fidl::encoding::Encode<AudioCoreGetVolumeFromDbResponse, D>
7473 for &AudioCoreGetVolumeFromDbResponse
7474 {
7475 #[inline]
7476 unsafe fn encode(
7477 self,
7478 encoder: &mut fidl::encoding::Encoder<'_, D>,
7479 offset: usize,
7480 _depth: fidl::encoding::Depth,
7481 ) -> fidl::Result<()> {
7482 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbResponse>(offset);
7483 fidl::encoding::Encode::<AudioCoreGetVolumeFromDbResponse, D>::encode(
7485 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),),
7486 encoder,
7487 offset,
7488 _depth,
7489 )
7490 }
7491 }
7492 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
7493 fidl::encoding::Encode<AudioCoreGetVolumeFromDbResponse, D> for (T0,)
7494 {
7495 #[inline]
7496 unsafe fn encode(
7497 self,
7498 encoder: &mut fidl::encoding::Encoder<'_, D>,
7499 offset: usize,
7500 depth: fidl::encoding::Depth,
7501 ) -> fidl::Result<()> {
7502 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDbResponse>(offset);
7503 self.0.encode(encoder, offset + 0, depth)?;
7507 Ok(())
7508 }
7509 }
7510
7511 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7512 for AudioCoreGetVolumeFromDbResponse
7513 {
7514 #[inline(always)]
7515 fn new_empty() -> Self {
7516 Self { volume: fidl::new_empty!(f32, D) }
7517 }
7518
7519 #[inline]
7520 unsafe fn decode(
7521 &mut self,
7522 decoder: &mut fidl::encoding::Decoder<'_, D>,
7523 offset: usize,
7524 _depth: fidl::encoding::Depth,
7525 ) -> fidl::Result<()> {
7526 decoder.debug_check_bounds::<Self>(offset);
7527 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 0, _depth)?;
7529 Ok(())
7530 }
7531 }
7532
7533 impl fidl::encoding::ValueTypeMarker for AudioCoreSetCaptureUsageGain2Request {
7534 type Borrowed<'a> = &'a Self;
7535 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7536 value
7537 }
7538 }
7539
7540 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetCaptureUsageGain2Request {
7541 type Owned = Self;
7542
7543 #[inline(always)]
7544 fn inline_align(_context: fidl::encoding::Context) -> usize {
7545 4
7546 }
7547
7548 #[inline(always)]
7549 fn inline_size(_context: fidl::encoding::Context) -> usize {
7550 8
7551 }
7552 }
7553
7554 unsafe impl<D: fidl::encoding::ResourceDialect>
7555 fidl::encoding::Encode<AudioCoreSetCaptureUsageGain2Request, D>
7556 for &AudioCoreSetCaptureUsageGain2Request
7557 {
7558 #[inline]
7559 unsafe fn encode(
7560 self,
7561 encoder: &mut fidl::encoding::Encoder<'_, D>,
7562 offset: usize,
7563 _depth: fidl::encoding::Depth,
7564 ) -> fidl::Result<()> {
7565 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGain2Request>(offset);
7566 fidl::encoding::Encode::<AudioCoreSetCaptureUsageGain2Request, D>::encode(
7568 (
7569 <AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7570 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7571 ),
7572 encoder,
7573 offset,
7574 _depth,
7575 )
7576 }
7577 }
7578 unsafe impl<
7579 D: fidl::encoding::ResourceDialect,
7580 T0: fidl::encoding::Encode<AudioCaptureUsage2, D>,
7581 T1: fidl::encoding::Encode<f32, D>,
7582 > fidl::encoding::Encode<AudioCoreSetCaptureUsageGain2Request, D> for (T0, T1)
7583 {
7584 #[inline]
7585 unsafe fn encode(
7586 self,
7587 encoder: &mut fidl::encoding::Encoder<'_, D>,
7588 offset: usize,
7589 depth: fidl::encoding::Depth,
7590 ) -> fidl::Result<()> {
7591 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGain2Request>(offset);
7592 self.0.encode(encoder, offset + 0, depth)?;
7596 self.1.encode(encoder, offset + 4, depth)?;
7597 Ok(())
7598 }
7599 }
7600
7601 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7602 for AudioCoreSetCaptureUsageGain2Request
7603 {
7604 #[inline(always)]
7605 fn new_empty() -> Self {
7606 Self {
7607 usage: fidl::new_empty!(AudioCaptureUsage2, D),
7608 gain_db: fidl::new_empty!(f32, D),
7609 }
7610 }
7611
7612 #[inline]
7613 unsafe fn decode(
7614 &mut self,
7615 decoder: &mut fidl::encoding::Decoder<'_, D>,
7616 offset: usize,
7617 _depth: fidl::encoding::Depth,
7618 ) -> fidl::Result<()> {
7619 decoder.debug_check_bounds::<Self>(offset);
7620 fidl::decode!(AudioCaptureUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
7622 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
7623 Ok(())
7624 }
7625 }
7626
7627 impl fidl::encoding::ValueTypeMarker for AudioCoreSetCaptureUsageGainRequest {
7628 type Borrowed<'a> = &'a Self;
7629 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7630 value
7631 }
7632 }
7633
7634 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetCaptureUsageGainRequest {
7635 type Owned = Self;
7636
7637 #[inline(always)]
7638 fn inline_align(_context: fidl::encoding::Context) -> usize {
7639 4
7640 }
7641
7642 #[inline(always)]
7643 fn inline_size(_context: fidl::encoding::Context) -> usize {
7644 8
7645 }
7646 }
7647
7648 unsafe impl<D: fidl::encoding::ResourceDialect>
7649 fidl::encoding::Encode<AudioCoreSetCaptureUsageGainRequest, D>
7650 for &AudioCoreSetCaptureUsageGainRequest
7651 {
7652 #[inline]
7653 unsafe fn encode(
7654 self,
7655 encoder: &mut fidl::encoding::Encoder<'_, D>,
7656 offset: usize,
7657 _depth: fidl::encoding::Depth,
7658 ) -> fidl::Result<()> {
7659 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGainRequest>(offset);
7660 fidl::encoding::Encode::<AudioCoreSetCaptureUsageGainRequest, D>::encode(
7662 (
7663 <AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7664 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7665 ),
7666 encoder,
7667 offset,
7668 _depth,
7669 )
7670 }
7671 }
7672 unsafe impl<
7673 D: fidl::encoding::ResourceDialect,
7674 T0: fidl::encoding::Encode<AudioCaptureUsage, D>,
7675 T1: fidl::encoding::Encode<f32, D>,
7676 > fidl::encoding::Encode<AudioCoreSetCaptureUsageGainRequest, D> for (T0, T1)
7677 {
7678 #[inline]
7679 unsafe fn encode(
7680 self,
7681 encoder: &mut fidl::encoding::Encoder<'_, D>,
7682 offset: usize,
7683 depth: fidl::encoding::Depth,
7684 ) -> fidl::Result<()> {
7685 encoder.debug_check_bounds::<AudioCoreSetCaptureUsageGainRequest>(offset);
7686 self.0.encode(encoder, offset + 0, depth)?;
7690 self.1.encode(encoder, offset + 4, depth)?;
7691 Ok(())
7692 }
7693 }
7694
7695 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7696 for AudioCoreSetCaptureUsageGainRequest
7697 {
7698 #[inline(always)]
7699 fn new_empty() -> Self {
7700 Self {
7701 usage: fidl::new_empty!(AudioCaptureUsage, D),
7702 gain_db: fidl::new_empty!(f32, D),
7703 }
7704 }
7705
7706 #[inline]
7707 unsafe fn decode(
7708 &mut self,
7709 decoder: &mut fidl::encoding::Decoder<'_, D>,
7710 offset: usize,
7711 _depth: fidl::encoding::Depth,
7712 ) -> fidl::Result<()> {
7713 decoder.debug_check_bounds::<Self>(offset);
7714 fidl::decode!(AudioCaptureUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
7716 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
7717 Ok(())
7718 }
7719 }
7720
7721 impl fidl::encoding::ValueTypeMarker for AudioCoreSetInteraction2Request {
7722 type Borrowed<'a> = &'a Self;
7723 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7724 value
7725 }
7726 }
7727
7728 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetInteraction2Request {
7729 type Owned = Self;
7730
7731 #[inline(always)]
7732 fn inline_align(_context: fidl::encoding::Context) -> usize {
7733 8
7734 }
7735
7736 #[inline(always)]
7737 fn inline_size(_context: fidl::encoding::Context) -> usize {
7738 40
7739 }
7740 }
7741
7742 unsafe impl<D: fidl::encoding::ResourceDialect>
7743 fidl::encoding::Encode<AudioCoreSetInteraction2Request, D>
7744 for &AudioCoreSetInteraction2Request
7745 {
7746 #[inline]
7747 unsafe fn encode(
7748 self,
7749 encoder: &mut fidl::encoding::Encoder<'_, D>,
7750 offset: usize,
7751 _depth: fidl::encoding::Depth,
7752 ) -> fidl::Result<()> {
7753 encoder.debug_check_bounds::<AudioCoreSetInteraction2Request>(offset);
7754 fidl::encoding::Encode::<AudioCoreSetInteraction2Request, D>::encode(
7756 (
7757 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.active),
7758 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.affected),
7759 <Behavior as fidl::encoding::ValueTypeMarker>::borrow(&self.behavior),
7760 ),
7761 encoder,
7762 offset,
7763 _depth,
7764 )
7765 }
7766 }
7767 unsafe impl<
7768 D: fidl::encoding::ResourceDialect,
7769 T0: fidl::encoding::Encode<Usage2, D>,
7770 T1: fidl::encoding::Encode<Usage2, D>,
7771 T2: fidl::encoding::Encode<Behavior, D>,
7772 > fidl::encoding::Encode<AudioCoreSetInteraction2Request, D> for (T0, T1, T2)
7773 {
7774 #[inline]
7775 unsafe fn encode(
7776 self,
7777 encoder: &mut fidl::encoding::Encoder<'_, D>,
7778 offset: usize,
7779 depth: fidl::encoding::Depth,
7780 ) -> fidl::Result<()> {
7781 encoder.debug_check_bounds::<AudioCoreSetInteraction2Request>(offset);
7782 unsafe {
7785 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
7786 (ptr as *mut u64).write_unaligned(0);
7787 }
7788 self.0.encode(encoder, offset + 0, depth)?;
7790 self.1.encode(encoder, offset + 16, depth)?;
7791 self.2.encode(encoder, offset + 32, depth)?;
7792 Ok(())
7793 }
7794 }
7795
7796 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7797 for AudioCoreSetInteraction2Request
7798 {
7799 #[inline(always)]
7800 fn new_empty() -> Self {
7801 Self {
7802 active: fidl::new_empty!(Usage2, D),
7803 affected: fidl::new_empty!(Usage2, D),
7804 behavior: fidl::new_empty!(Behavior, 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 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
7818 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7819 let mask = 0xffffffff00000000u64;
7820 let maskedval = padval & mask;
7821 if maskedval != 0 {
7822 return Err(fidl::Error::NonZeroPadding {
7823 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
7824 });
7825 }
7826 fidl::decode!(Usage2, D, &mut self.active, decoder, offset + 0, _depth)?;
7827 fidl::decode!(Usage2, D, &mut self.affected, decoder, offset + 16, _depth)?;
7828 fidl::decode!(Behavior, D, &mut self.behavior, decoder, offset + 32, _depth)?;
7829 Ok(())
7830 }
7831 }
7832
7833 impl fidl::encoding::ValueTypeMarker for AudioCoreSetInteractionRequest {
7834 type Borrowed<'a> = &'a Self;
7835 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7836 value
7837 }
7838 }
7839
7840 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetInteractionRequest {
7841 type Owned = Self;
7842
7843 #[inline(always)]
7844 fn inline_align(_context: fidl::encoding::Context) -> usize {
7845 8
7846 }
7847
7848 #[inline(always)]
7849 fn inline_size(_context: fidl::encoding::Context) -> usize {
7850 40
7851 }
7852 }
7853
7854 unsafe impl<D: fidl::encoding::ResourceDialect>
7855 fidl::encoding::Encode<AudioCoreSetInteractionRequest, D>
7856 for &AudioCoreSetInteractionRequest
7857 {
7858 #[inline]
7859 unsafe fn encode(
7860 self,
7861 encoder: &mut fidl::encoding::Encoder<'_, D>,
7862 offset: usize,
7863 _depth: fidl::encoding::Depth,
7864 ) -> fidl::Result<()> {
7865 encoder.debug_check_bounds::<AudioCoreSetInteractionRequest>(offset);
7866 fidl::encoding::Encode::<AudioCoreSetInteractionRequest, D>::encode(
7868 (
7869 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.active),
7870 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.affected),
7871 <Behavior as fidl::encoding::ValueTypeMarker>::borrow(&self.behavior),
7872 ),
7873 encoder,
7874 offset,
7875 _depth,
7876 )
7877 }
7878 }
7879 unsafe impl<
7880 D: fidl::encoding::ResourceDialect,
7881 T0: fidl::encoding::Encode<Usage, D>,
7882 T1: fidl::encoding::Encode<Usage, D>,
7883 T2: fidl::encoding::Encode<Behavior, D>,
7884 > fidl::encoding::Encode<AudioCoreSetInteractionRequest, D> for (T0, T1, T2)
7885 {
7886 #[inline]
7887 unsafe fn encode(
7888 self,
7889 encoder: &mut fidl::encoding::Encoder<'_, D>,
7890 offset: usize,
7891 depth: fidl::encoding::Depth,
7892 ) -> fidl::Result<()> {
7893 encoder.debug_check_bounds::<AudioCoreSetInteractionRequest>(offset);
7894 unsafe {
7897 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
7898 (ptr as *mut u64).write_unaligned(0);
7899 }
7900 self.0.encode(encoder, offset + 0, depth)?;
7902 self.1.encode(encoder, offset + 16, depth)?;
7903 self.2.encode(encoder, offset + 32, depth)?;
7904 Ok(())
7905 }
7906 }
7907
7908 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
7909 for AudioCoreSetInteractionRequest
7910 {
7911 #[inline(always)]
7912 fn new_empty() -> Self {
7913 Self {
7914 active: fidl::new_empty!(Usage, D),
7915 affected: fidl::new_empty!(Usage, D),
7916 behavior: fidl::new_empty!(Behavior, D),
7917 }
7918 }
7919
7920 #[inline]
7921 unsafe fn decode(
7922 &mut self,
7923 decoder: &mut fidl::encoding::Decoder<'_, D>,
7924 offset: usize,
7925 _depth: fidl::encoding::Depth,
7926 ) -> fidl::Result<()> {
7927 decoder.debug_check_bounds::<Self>(offset);
7928 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
7930 let padval = unsafe { (ptr as *const u64).read_unaligned() };
7931 let mask = 0xffffffff00000000u64;
7932 let maskedval = padval & mask;
7933 if maskedval != 0 {
7934 return Err(fidl::Error::NonZeroPadding {
7935 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
7936 });
7937 }
7938 fidl::decode!(Usage, D, &mut self.active, decoder, offset + 0, _depth)?;
7939 fidl::decode!(Usage, D, &mut self.affected, decoder, offset + 16, _depth)?;
7940 fidl::decode!(Behavior, D, &mut self.behavior, decoder, offset + 32, _depth)?;
7941 Ok(())
7942 }
7943 }
7944
7945 impl fidl::encoding::ValueTypeMarker for AudioCoreSetRenderUsageGain2Request {
7946 type Borrowed<'a> = &'a Self;
7947 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
7948 value
7949 }
7950 }
7951
7952 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetRenderUsageGain2Request {
7953 type Owned = Self;
7954
7955 #[inline(always)]
7956 fn inline_align(_context: fidl::encoding::Context) -> usize {
7957 4
7958 }
7959
7960 #[inline(always)]
7961 fn inline_size(_context: fidl::encoding::Context) -> usize {
7962 8
7963 }
7964 }
7965
7966 unsafe impl<D: fidl::encoding::ResourceDialect>
7967 fidl::encoding::Encode<AudioCoreSetRenderUsageGain2Request, D>
7968 for &AudioCoreSetRenderUsageGain2Request
7969 {
7970 #[inline]
7971 unsafe fn encode(
7972 self,
7973 encoder: &mut fidl::encoding::Encoder<'_, D>,
7974 offset: usize,
7975 _depth: fidl::encoding::Depth,
7976 ) -> fidl::Result<()> {
7977 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGain2Request>(offset);
7978 fidl::encoding::Encode::<AudioCoreSetRenderUsageGain2Request, D>::encode(
7980 (
7981 <AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
7982 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
7983 ),
7984 encoder,
7985 offset,
7986 _depth,
7987 )
7988 }
7989 }
7990 unsafe impl<
7991 D: fidl::encoding::ResourceDialect,
7992 T0: fidl::encoding::Encode<AudioRenderUsage2, D>,
7993 T1: fidl::encoding::Encode<f32, D>,
7994 > fidl::encoding::Encode<AudioCoreSetRenderUsageGain2Request, D> for (T0, T1)
7995 {
7996 #[inline]
7997 unsafe fn encode(
7998 self,
7999 encoder: &mut fidl::encoding::Encoder<'_, D>,
8000 offset: usize,
8001 depth: fidl::encoding::Depth,
8002 ) -> fidl::Result<()> {
8003 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGain2Request>(offset);
8004 self.0.encode(encoder, offset + 0, depth)?;
8008 self.1.encode(encoder, offset + 4, depth)?;
8009 Ok(())
8010 }
8011 }
8012
8013 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8014 for AudioCoreSetRenderUsageGain2Request
8015 {
8016 #[inline(always)]
8017 fn new_empty() -> Self {
8018 Self {
8019 usage: fidl::new_empty!(AudioRenderUsage2, D),
8020 gain_db: fidl::new_empty!(f32, D),
8021 }
8022 }
8023
8024 #[inline]
8025 unsafe fn decode(
8026 &mut self,
8027 decoder: &mut fidl::encoding::Decoder<'_, D>,
8028 offset: usize,
8029 _depth: fidl::encoding::Depth,
8030 ) -> fidl::Result<()> {
8031 decoder.debug_check_bounds::<Self>(offset);
8032 fidl::decode!(AudioRenderUsage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
8034 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
8035 Ok(())
8036 }
8037 }
8038
8039 impl fidl::encoding::ValueTypeMarker for AudioCoreSetRenderUsageGainRequest {
8040 type Borrowed<'a> = &'a Self;
8041 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8042 value
8043 }
8044 }
8045
8046 unsafe impl fidl::encoding::TypeMarker for AudioCoreSetRenderUsageGainRequest {
8047 type Owned = Self;
8048
8049 #[inline(always)]
8050 fn inline_align(_context: fidl::encoding::Context) -> usize {
8051 4
8052 }
8053
8054 #[inline(always)]
8055 fn inline_size(_context: fidl::encoding::Context) -> usize {
8056 8
8057 }
8058 }
8059
8060 unsafe impl<D: fidl::encoding::ResourceDialect>
8061 fidl::encoding::Encode<AudioCoreSetRenderUsageGainRequest, D>
8062 for &AudioCoreSetRenderUsageGainRequest
8063 {
8064 #[inline]
8065 unsafe fn encode(
8066 self,
8067 encoder: &mut fidl::encoding::Encoder<'_, D>,
8068 offset: usize,
8069 _depth: fidl::encoding::Depth,
8070 ) -> fidl::Result<()> {
8071 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGainRequest>(offset);
8072 fidl::encoding::Encode::<AudioCoreSetRenderUsageGainRequest, D>::encode(
8074 (
8075 <AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
8076 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
8077 ),
8078 encoder,
8079 offset,
8080 _depth,
8081 )
8082 }
8083 }
8084 unsafe impl<
8085 D: fidl::encoding::ResourceDialect,
8086 T0: fidl::encoding::Encode<AudioRenderUsage, D>,
8087 T1: fidl::encoding::Encode<f32, D>,
8088 > fidl::encoding::Encode<AudioCoreSetRenderUsageGainRequest, D> for (T0, T1)
8089 {
8090 #[inline]
8091 unsafe fn encode(
8092 self,
8093 encoder: &mut fidl::encoding::Encoder<'_, D>,
8094 offset: usize,
8095 depth: fidl::encoding::Depth,
8096 ) -> fidl::Result<()> {
8097 encoder.debug_check_bounds::<AudioCoreSetRenderUsageGainRequest>(offset);
8098 self.0.encode(encoder, offset + 0, depth)?;
8102 self.1.encode(encoder, offset + 4, depth)?;
8103 Ok(())
8104 }
8105 }
8106
8107 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8108 for AudioCoreSetRenderUsageGainRequest
8109 {
8110 #[inline(always)]
8111 fn new_empty() -> Self {
8112 Self { usage: fidl::new_empty!(AudioRenderUsage, D), gain_db: fidl::new_empty!(f32, D) }
8113 }
8114
8115 #[inline]
8116 unsafe fn decode(
8117 &mut self,
8118 decoder: &mut fidl::encoding::Decoder<'_, D>,
8119 offset: usize,
8120 _depth: fidl::encoding::Depth,
8121 ) -> fidl::Result<()> {
8122 decoder.debug_check_bounds::<Self>(offset);
8123 fidl::decode!(AudioRenderUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
8125 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 4, _depth)?;
8126 Ok(())
8127 }
8128 }
8129
8130 impl fidl::encoding::ValueTypeMarker for AudioCoreGetDbFromVolume2Response {
8131 type Borrowed<'a> = &'a Self;
8132 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8133 value
8134 }
8135 }
8136
8137 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetDbFromVolume2Response {
8138 type Owned = Self;
8139
8140 #[inline(always)]
8141 fn inline_align(_context: fidl::encoding::Context) -> usize {
8142 4
8143 }
8144
8145 #[inline(always)]
8146 fn inline_size(_context: fidl::encoding::Context) -> usize {
8147 4
8148 }
8149 }
8150
8151 unsafe impl<D: fidl::encoding::ResourceDialect>
8152 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Response, D>
8153 for &AudioCoreGetDbFromVolume2Response
8154 {
8155 #[inline]
8156 unsafe fn encode(
8157 self,
8158 encoder: &mut fidl::encoding::Encoder<'_, D>,
8159 offset: usize,
8160 _depth: fidl::encoding::Depth,
8161 ) -> fidl::Result<()> {
8162 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Response>(offset);
8163 fidl::encoding::Encode::<AudioCoreGetDbFromVolume2Response, D>::encode(
8165 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),),
8166 encoder,
8167 offset,
8168 _depth,
8169 )
8170 }
8171 }
8172 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
8173 fidl::encoding::Encode<AudioCoreGetDbFromVolume2Response, D> for (T0,)
8174 {
8175 #[inline]
8176 unsafe fn encode(
8177 self,
8178 encoder: &mut fidl::encoding::Encoder<'_, D>,
8179 offset: usize,
8180 depth: fidl::encoding::Depth,
8181 ) -> fidl::Result<()> {
8182 encoder.debug_check_bounds::<AudioCoreGetDbFromVolume2Response>(offset);
8183 self.0.encode(encoder, offset + 0, depth)?;
8187 Ok(())
8188 }
8189 }
8190
8191 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8192 for AudioCoreGetDbFromVolume2Response
8193 {
8194 #[inline(always)]
8195 fn new_empty() -> Self {
8196 Self { gain_db: fidl::new_empty!(f32, D) }
8197 }
8198
8199 #[inline]
8200 unsafe fn decode(
8201 &mut self,
8202 decoder: &mut fidl::encoding::Decoder<'_, D>,
8203 offset: usize,
8204 _depth: fidl::encoding::Depth,
8205 ) -> fidl::Result<()> {
8206 decoder.debug_check_bounds::<Self>(offset);
8207 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
8209 Ok(())
8210 }
8211 }
8212
8213 impl fidl::encoding::ValueTypeMarker for AudioCoreGetVolumeFromDb2Response {
8214 type Borrowed<'a> = &'a Self;
8215 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8216 value
8217 }
8218 }
8219
8220 unsafe impl fidl::encoding::TypeMarker for AudioCoreGetVolumeFromDb2Response {
8221 type Owned = Self;
8222
8223 #[inline(always)]
8224 fn inline_align(_context: fidl::encoding::Context) -> usize {
8225 4
8226 }
8227
8228 #[inline(always)]
8229 fn inline_size(_context: fidl::encoding::Context) -> usize {
8230 4
8231 }
8232 }
8233
8234 unsafe impl<D: fidl::encoding::ResourceDialect>
8235 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Response, D>
8236 for &AudioCoreGetVolumeFromDb2Response
8237 {
8238 #[inline]
8239 unsafe fn encode(
8240 self,
8241 encoder: &mut fidl::encoding::Encoder<'_, D>,
8242 offset: usize,
8243 _depth: fidl::encoding::Depth,
8244 ) -> fidl::Result<()> {
8245 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Response>(offset);
8246 fidl::encoding::Encode::<AudioCoreGetVolumeFromDb2Response, D>::encode(
8248 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.volume),),
8249 encoder,
8250 offset,
8251 _depth,
8252 )
8253 }
8254 }
8255 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
8256 fidl::encoding::Encode<AudioCoreGetVolumeFromDb2Response, D> for (T0,)
8257 {
8258 #[inline]
8259 unsafe fn encode(
8260 self,
8261 encoder: &mut fidl::encoding::Encoder<'_, D>,
8262 offset: usize,
8263 depth: fidl::encoding::Depth,
8264 ) -> fidl::Result<()> {
8265 encoder.debug_check_bounds::<AudioCoreGetVolumeFromDb2Response>(offset);
8266 self.0.encode(encoder, offset + 0, depth)?;
8270 Ok(())
8271 }
8272 }
8273
8274 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8275 for AudioCoreGetVolumeFromDb2Response
8276 {
8277 #[inline(always)]
8278 fn new_empty() -> Self {
8279 Self { volume: fidl::new_empty!(f32, D) }
8280 }
8281
8282 #[inline]
8283 unsafe fn decode(
8284 &mut self,
8285 decoder: &mut fidl::encoding::Decoder<'_, D>,
8286 offset: usize,
8287 _depth: fidl::encoding::Depth,
8288 ) -> fidl::Result<()> {
8289 decoder.debug_check_bounds::<Self>(offset);
8290 fidl::decode!(f32, D, &mut self.volume, decoder, offset + 0, _depth)?;
8292 Ok(())
8293 }
8294 }
8295
8296 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDeviceGainRequest {
8297 type Borrowed<'a> = &'a Self;
8298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8299 value
8300 }
8301 }
8302
8303 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDeviceGainRequest {
8304 type Owned = Self;
8305
8306 #[inline(always)]
8307 fn inline_align(_context: fidl::encoding::Context) -> usize {
8308 8
8309 }
8310
8311 #[inline(always)]
8312 fn inline_size(_context: fidl::encoding::Context) -> usize {
8313 8
8314 }
8315 #[inline(always)]
8316 fn encode_is_copy() -> bool {
8317 true
8318 }
8319
8320 #[inline(always)]
8321 fn decode_is_copy() -> bool {
8322 true
8323 }
8324 }
8325
8326 unsafe impl<D: fidl::encoding::ResourceDialect>
8327 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainRequest, D>
8328 for &AudioDeviceEnumeratorGetDeviceGainRequest
8329 {
8330 #[inline]
8331 unsafe fn encode(
8332 self,
8333 encoder: &mut fidl::encoding::Encoder<'_, D>,
8334 offset: usize,
8335 _depth: fidl::encoding::Depth,
8336 ) -> fidl::Result<()> {
8337 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainRequest>(offset);
8338 unsafe {
8339 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8341 (buf_ptr as *mut AudioDeviceEnumeratorGetDeviceGainRequest).write_unaligned(
8342 (self as *const AudioDeviceEnumeratorGetDeviceGainRequest).read(),
8343 );
8344 }
8347 Ok(())
8348 }
8349 }
8350 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
8351 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainRequest, D> for (T0,)
8352 {
8353 #[inline]
8354 unsafe fn encode(
8355 self,
8356 encoder: &mut fidl::encoding::Encoder<'_, D>,
8357 offset: usize,
8358 depth: fidl::encoding::Depth,
8359 ) -> fidl::Result<()> {
8360 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainRequest>(offset);
8361 self.0.encode(encoder, offset + 0, depth)?;
8365 Ok(())
8366 }
8367 }
8368
8369 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8370 for AudioDeviceEnumeratorGetDeviceGainRequest
8371 {
8372 #[inline(always)]
8373 fn new_empty() -> Self {
8374 Self { device_token: fidl::new_empty!(u64, D) }
8375 }
8376
8377 #[inline]
8378 unsafe fn decode(
8379 &mut self,
8380 decoder: &mut fidl::encoding::Decoder<'_, D>,
8381 offset: usize,
8382 _depth: fidl::encoding::Depth,
8383 ) -> fidl::Result<()> {
8384 decoder.debug_check_bounds::<Self>(offset);
8385 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8386 unsafe {
8389 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
8390 }
8391 Ok(())
8392 }
8393 }
8394
8395 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDeviceGainResponse {
8396 type Borrowed<'a> = &'a Self;
8397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8398 value
8399 }
8400 }
8401
8402 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDeviceGainResponse {
8403 type Owned = Self;
8404
8405 #[inline(always)]
8406 fn inline_align(_context: fidl::encoding::Context) -> usize {
8407 8
8408 }
8409
8410 #[inline(always)]
8411 fn inline_size(_context: fidl::encoding::Context) -> usize {
8412 16
8413 }
8414 }
8415
8416 unsafe impl<D: fidl::encoding::ResourceDialect>
8417 fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainResponse, D>
8418 for &AudioDeviceEnumeratorGetDeviceGainResponse
8419 {
8420 #[inline]
8421 unsafe fn encode(
8422 self,
8423 encoder: &mut fidl::encoding::Encoder<'_, D>,
8424 offset: usize,
8425 _depth: fidl::encoding::Depth,
8426 ) -> fidl::Result<()> {
8427 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainResponse>(offset);
8428 fidl::encoding::Encode::<AudioDeviceEnumeratorGetDeviceGainResponse, D>::encode(
8430 (
8431 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
8432 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
8433 ),
8434 encoder,
8435 offset,
8436 _depth,
8437 )
8438 }
8439 }
8440 unsafe impl<
8441 D: fidl::encoding::ResourceDialect,
8442 T0: fidl::encoding::Encode<u64, D>,
8443 T1: fidl::encoding::Encode<AudioGainInfo, D>,
8444 > fidl::encoding::Encode<AudioDeviceEnumeratorGetDeviceGainResponse, D> for (T0, T1)
8445 {
8446 #[inline]
8447 unsafe fn encode(
8448 self,
8449 encoder: &mut fidl::encoding::Encoder<'_, D>,
8450 offset: usize,
8451 depth: fidl::encoding::Depth,
8452 ) -> fidl::Result<()> {
8453 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDeviceGainResponse>(offset);
8454 self.0.encode(encoder, offset + 0, depth)?;
8458 self.1.encode(encoder, offset + 8, depth)?;
8459 Ok(())
8460 }
8461 }
8462
8463 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8464 for AudioDeviceEnumeratorGetDeviceGainResponse
8465 {
8466 #[inline(always)]
8467 fn new_empty() -> Self {
8468 Self {
8469 device_token: fidl::new_empty!(u64, D),
8470 gain_info: fidl::new_empty!(AudioGainInfo, D),
8471 }
8472 }
8473
8474 #[inline]
8475 unsafe fn decode(
8476 &mut self,
8477 decoder: &mut fidl::encoding::Decoder<'_, D>,
8478 offset: usize,
8479 _depth: fidl::encoding::Depth,
8480 ) -> fidl::Result<()> {
8481 decoder.debug_check_bounds::<Self>(offset);
8482 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
8484 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
8485 Ok(())
8486 }
8487 }
8488
8489 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorGetDevicesResponse {
8490 type Borrowed<'a> = &'a Self;
8491 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8492 value
8493 }
8494 }
8495
8496 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorGetDevicesResponse {
8497 type Owned = Self;
8498
8499 #[inline(always)]
8500 fn inline_align(_context: fidl::encoding::Context) -> usize {
8501 8
8502 }
8503
8504 #[inline(always)]
8505 fn inline_size(_context: fidl::encoding::Context) -> usize {
8506 16
8507 }
8508 }
8509
8510 unsafe impl<D: fidl::encoding::ResourceDialect>
8511 fidl::encoding::Encode<AudioDeviceEnumeratorGetDevicesResponse, D>
8512 for &AudioDeviceEnumeratorGetDevicesResponse
8513 {
8514 #[inline]
8515 unsafe fn encode(
8516 self,
8517 encoder: &mut fidl::encoding::Encoder<'_, D>,
8518 offset: usize,
8519 _depth: fidl::encoding::Depth,
8520 ) -> fidl::Result<()> {
8521 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDevicesResponse>(offset);
8522 fidl::encoding::Encode::<AudioDeviceEnumeratorGetDevicesResponse, D>::encode(
8524 (
8525 <fidl::encoding::UnboundedVector<AudioDeviceInfo> as fidl::encoding::ValueTypeMarker>::borrow(&self.devices),
8526 ),
8527 encoder, offset, _depth
8528 )
8529 }
8530 }
8531 unsafe impl<
8532 D: fidl::encoding::ResourceDialect,
8533 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<AudioDeviceInfo>, D>,
8534 > fidl::encoding::Encode<AudioDeviceEnumeratorGetDevicesResponse, D> for (T0,)
8535 {
8536 #[inline]
8537 unsafe fn encode(
8538 self,
8539 encoder: &mut fidl::encoding::Encoder<'_, D>,
8540 offset: usize,
8541 depth: fidl::encoding::Depth,
8542 ) -> fidl::Result<()> {
8543 encoder.debug_check_bounds::<AudioDeviceEnumeratorGetDevicesResponse>(offset);
8544 self.0.encode(encoder, offset + 0, depth)?;
8548 Ok(())
8549 }
8550 }
8551
8552 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8553 for AudioDeviceEnumeratorGetDevicesResponse
8554 {
8555 #[inline(always)]
8556 fn new_empty() -> Self {
8557 Self { devices: fidl::new_empty!(fidl::encoding::UnboundedVector<AudioDeviceInfo>, D) }
8558 }
8559
8560 #[inline]
8561 unsafe fn decode(
8562 &mut self,
8563 decoder: &mut fidl::encoding::Decoder<'_, D>,
8564 offset: usize,
8565 _depth: fidl::encoding::Depth,
8566 ) -> fidl::Result<()> {
8567 decoder.debug_check_bounds::<Self>(offset);
8568 fidl::decode!(
8570 fidl::encoding::UnboundedVector<AudioDeviceInfo>,
8571 D,
8572 &mut self.devices,
8573 decoder,
8574 offset + 0,
8575 _depth
8576 )?;
8577 Ok(())
8578 }
8579 }
8580
8581 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
8582 type Borrowed<'a> = &'a Self;
8583 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8584 value
8585 }
8586 }
8587
8588 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest {
8589 type Owned = Self;
8590
8591 #[inline(always)]
8592 fn inline_align(_context: fidl::encoding::Context) -> usize {
8593 8
8594 }
8595
8596 #[inline(always)]
8597 fn inline_size(_context: fidl::encoding::Context) -> usize {
8598 16
8599 }
8600 #[inline(always)]
8601 fn encode_is_copy() -> bool {
8602 true
8603 }
8604
8605 #[inline(always)]
8606 fn decode_is_copy() -> bool {
8607 true
8608 }
8609 }
8610
8611 unsafe impl<D: fidl::encoding::ResourceDialect>
8612 fidl::encoding::Encode<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest, D>
8613 for &AudioDeviceEnumeratorOnDefaultDeviceChangedRequest
8614 {
8615 #[inline]
8616 unsafe fn encode(
8617 self,
8618 encoder: &mut fidl::encoding::Encoder<'_, D>,
8619 offset: usize,
8620 _depth: fidl::encoding::Depth,
8621 ) -> fidl::Result<()> {
8622 encoder
8623 .debug_check_bounds::<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest>(offset);
8624 unsafe {
8625 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8627 (buf_ptr as *mut AudioDeviceEnumeratorOnDefaultDeviceChangedRequest)
8628 .write_unaligned(
8629 (self as *const AudioDeviceEnumeratorOnDefaultDeviceChangedRequest).read(),
8630 );
8631 }
8634 Ok(())
8635 }
8636 }
8637 unsafe impl<
8638 D: fidl::encoding::ResourceDialect,
8639 T0: fidl::encoding::Encode<u64, D>,
8640 T1: fidl::encoding::Encode<u64, D>,
8641 > fidl::encoding::Encode<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest, D>
8642 for (T0, T1)
8643 {
8644 #[inline]
8645 unsafe fn encode(
8646 self,
8647 encoder: &mut fidl::encoding::Encoder<'_, D>,
8648 offset: usize,
8649 depth: fidl::encoding::Depth,
8650 ) -> fidl::Result<()> {
8651 encoder
8652 .debug_check_bounds::<AudioDeviceEnumeratorOnDefaultDeviceChangedRequest>(offset);
8653 self.0.encode(encoder, offset + 0, depth)?;
8657 self.1.encode(encoder, offset + 8, depth)?;
8658 Ok(())
8659 }
8660 }
8661
8662 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8663 for AudioDeviceEnumeratorOnDefaultDeviceChangedRequest
8664 {
8665 #[inline(always)]
8666 fn new_empty() -> Self {
8667 Self {
8668 old_default_token: fidl::new_empty!(u64, D),
8669 new_default_token: fidl::new_empty!(u64, D),
8670 }
8671 }
8672
8673 #[inline]
8674 unsafe fn decode(
8675 &mut self,
8676 decoder: &mut fidl::encoding::Decoder<'_, D>,
8677 offset: usize,
8678 _depth: fidl::encoding::Depth,
8679 ) -> fidl::Result<()> {
8680 decoder.debug_check_bounds::<Self>(offset);
8681 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8682 unsafe {
8685 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
8686 }
8687 Ok(())
8688 }
8689 }
8690
8691 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceAddedRequest {
8692 type Borrowed<'a> = &'a Self;
8693 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8694 value
8695 }
8696 }
8697
8698 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceAddedRequest {
8699 type Owned = Self;
8700
8701 #[inline(always)]
8702 fn inline_align(_context: fidl::encoding::Context) -> usize {
8703 8
8704 }
8705
8706 #[inline(always)]
8707 fn inline_size(_context: fidl::encoding::Context) -> usize {
8708 56
8709 }
8710 }
8711
8712 unsafe impl<D: fidl::encoding::ResourceDialect>
8713 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceAddedRequest, D>
8714 for &AudioDeviceEnumeratorOnDeviceAddedRequest
8715 {
8716 #[inline]
8717 unsafe fn encode(
8718 self,
8719 encoder: &mut fidl::encoding::Encoder<'_, D>,
8720 offset: usize,
8721 _depth: fidl::encoding::Depth,
8722 ) -> fidl::Result<()> {
8723 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceAddedRequest>(offset);
8724 fidl::encoding::Encode::<AudioDeviceEnumeratorOnDeviceAddedRequest, D>::encode(
8726 (<AudioDeviceInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.device),),
8727 encoder,
8728 offset,
8729 _depth,
8730 )
8731 }
8732 }
8733 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioDeviceInfo, D>>
8734 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceAddedRequest, D> for (T0,)
8735 {
8736 #[inline]
8737 unsafe fn encode(
8738 self,
8739 encoder: &mut fidl::encoding::Encoder<'_, D>,
8740 offset: usize,
8741 depth: fidl::encoding::Depth,
8742 ) -> fidl::Result<()> {
8743 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceAddedRequest>(offset);
8744 self.0.encode(encoder, offset + 0, depth)?;
8748 Ok(())
8749 }
8750 }
8751
8752 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8753 for AudioDeviceEnumeratorOnDeviceAddedRequest
8754 {
8755 #[inline(always)]
8756 fn new_empty() -> Self {
8757 Self { device: fidl::new_empty!(AudioDeviceInfo, D) }
8758 }
8759
8760 #[inline]
8761 unsafe fn decode(
8762 &mut self,
8763 decoder: &mut fidl::encoding::Decoder<'_, D>,
8764 offset: usize,
8765 _depth: fidl::encoding::Depth,
8766 ) -> fidl::Result<()> {
8767 decoder.debug_check_bounds::<Self>(offset);
8768 fidl::decode!(AudioDeviceInfo, D, &mut self.device, decoder, offset + 0, _depth)?;
8770 Ok(())
8771 }
8772 }
8773
8774 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceGainChangedRequest {
8775 type Borrowed<'a> = &'a Self;
8776 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8777 value
8778 }
8779 }
8780
8781 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceGainChangedRequest {
8782 type Owned = Self;
8783
8784 #[inline(always)]
8785 fn inline_align(_context: fidl::encoding::Context) -> usize {
8786 8
8787 }
8788
8789 #[inline(always)]
8790 fn inline_size(_context: fidl::encoding::Context) -> usize {
8791 16
8792 }
8793 }
8794
8795 unsafe impl<D: fidl::encoding::ResourceDialect>
8796 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D>
8797 for &AudioDeviceEnumeratorOnDeviceGainChangedRequest
8798 {
8799 #[inline]
8800 unsafe fn encode(
8801 self,
8802 encoder: &mut fidl::encoding::Encoder<'_, D>,
8803 offset: usize,
8804 _depth: fidl::encoding::Depth,
8805 ) -> fidl::Result<()> {
8806 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceGainChangedRequest>(offset);
8807 fidl::encoding::Encode::<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D>::encode(
8809 (
8810 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
8811 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
8812 ),
8813 encoder,
8814 offset,
8815 _depth,
8816 )
8817 }
8818 }
8819 unsafe impl<
8820 D: fidl::encoding::ResourceDialect,
8821 T0: fidl::encoding::Encode<u64, D>,
8822 T1: fidl::encoding::Encode<AudioGainInfo, D>,
8823 > fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceGainChangedRequest, D> for (T0, T1)
8824 {
8825 #[inline]
8826 unsafe fn encode(
8827 self,
8828 encoder: &mut fidl::encoding::Encoder<'_, D>,
8829 offset: usize,
8830 depth: fidl::encoding::Depth,
8831 ) -> fidl::Result<()> {
8832 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceGainChangedRequest>(offset);
8833 self.0.encode(encoder, offset + 0, depth)?;
8837 self.1.encode(encoder, offset + 8, depth)?;
8838 Ok(())
8839 }
8840 }
8841
8842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8843 for AudioDeviceEnumeratorOnDeviceGainChangedRequest
8844 {
8845 #[inline(always)]
8846 fn new_empty() -> Self {
8847 Self {
8848 device_token: fidl::new_empty!(u64, D),
8849 gain_info: fidl::new_empty!(AudioGainInfo, D),
8850 }
8851 }
8852
8853 #[inline]
8854 unsafe fn decode(
8855 &mut self,
8856 decoder: &mut fidl::encoding::Decoder<'_, D>,
8857 offset: usize,
8858 _depth: fidl::encoding::Depth,
8859 ) -> fidl::Result<()> {
8860 decoder.debug_check_bounds::<Self>(offset);
8861 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
8863 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
8864 Ok(())
8865 }
8866 }
8867
8868 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorOnDeviceRemovedRequest {
8869 type Borrowed<'a> = &'a Self;
8870 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8871 value
8872 }
8873 }
8874
8875 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorOnDeviceRemovedRequest {
8876 type Owned = Self;
8877
8878 #[inline(always)]
8879 fn inline_align(_context: fidl::encoding::Context) -> usize {
8880 8
8881 }
8882
8883 #[inline(always)]
8884 fn inline_size(_context: fidl::encoding::Context) -> usize {
8885 8
8886 }
8887 #[inline(always)]
8888 fn encode_is_copy() -> bool {
8889 true
8890 }
8891
8892 #[inline(always)]
8893 fn decode_is_copy() -> bool {
8894 true
8895 }
8896 }
8897
8898 unsafe impl<D: fidl::encoding::ResourceDialect>
8899 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceRemovedRequest, D>
8900 for &AudioDeviceEnumeratorOnDeviceRemovedRequest
8901 {
8902 #[inline]
8903 unsafe fn encode(
8904 self,
8905 encoder: &mut fidl::encoding::Encoder<'_, D>,
8906 offset: usize,
8907 _depth: fidl::encoding::Depth,
8908 ) -> fidl::Result<()> {
8909 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceRemovedRequest>(offset);
8910 unsafe {
8911 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
8913 (buf_ptr as *mut AudioDeviceEnumeratorOnDeviceRemovedRequest).write_unaligned(
8914 (self as *const AudioDeviceEnumeratorOnDeviceRemovedRequest).read(),
8915 );
8916 }
8919 Ok(())
8920 }
8921 }
8922 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
8923 fidl::encoding::Encode<AudioDeviceEnumeratorOnDeviceRemovedRequest, D> for (T0,)
8924 {
8925 #[inline]
8926 unsafe fn encode(
8927 self,
8928 encoder: &mut fidl::encoding::Encoder<'_, D>,
8929 offset: usize,
8930 depth: fidl::encoding::Depth,
8931 ) -> fidl::Result<()> {
8932 encoder.debug_check_bounds::<AudioDeviceEnumeratorOnDeviceRemovedRequest>(offset);
8933 self.0.encode(encoder, offset + 0, depth)?;
8937 Ok(())
8938 }
8939 }
8940
8941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
8942 for AudioDeviceEnumeratorOnDeviceRemovedRequest
8943 {
8944 #[inline(always)]
8945 fn new_empty() -> Self {
8946 Self { device_token: fidl::new_empty!(u64, D) }
8947 }
8948
8949 #[inline]
8950 unsafe fn decode(
8951 &mut self,
8952 decoder: &mut fidl::encoding::Decoder<'_, D>,
8953 offset: usize,
8954 _depth: fidl::encoding::Depth,
8955 ) -> fidl::Result<()> {
8956 decoder.debug_check_bounds::<Self>(offset);
8957 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
8958 unsafe {
8961 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
8962 }
8963 Ok(())
8964 }
8965 }
8966
8967 impl fidl::encoding::ValueTypeMarker for AudioDeviceEnumeratorSetDeviceGainRequest {
8968 type Borrowed<'a> = &'a Self;
8969 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
8970 value
8971 }
8972 }
8973
8974 unsafe impl fidl::encoding::TypeMarker for AudioDeviceEnumeratorSetDeviceGainRequest {
8975 type Owned = Self;
8976
8977 #[inline(always)]
8978 fn inline_align(_context: fidl::encoding::Context) -> usize {
8979 8
8980 }
8981
8982 #[inline(always)]
8983 fn inline_size(_context: fidl::encoding::Context) -> usize {
8984 24
8985 }
8986 }
8987
8988 unsafe impl<D: fidl::encoding::ResourceDialect>
8989 fidl::encoding::Encode<AudioDeviceEnumeratorSetDeviceGainRequest, D>
8990 for &AudioDeviceEnumeratorSetDeviceGainRequest
8991 {
8992 #[inline]
8993 unsafe fn encode(
8994 self,
8995 encoder: &mut fidl::encoding::Encoder<'_, D>,
8996 offset: usize,
8997 _depth: fidl::encoding::Depth,
8998 ) -> fidl::Result<()> {
8999 encoder.debug_check_bounds::<AudioDeviceEnumeratorSetDeviceGainRequest>(offset);
9000 fidl::encoding::Encode::<AudioDeviceEnumeratorSetDeviceGainRequest, D>::encode(
9002 (
9003 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.device_token),
9004 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
9005 <AudioGainValidFlags as fidl::encoding::ValueTypeMarker>::borrow(
9006 &self.valid_flags,
9007 ),
9008 ),
9009 encoder,
9010 offset,
9011 _depth,
9012 )
9013 }
9014 }
9015 unsafe impl<
9016 D: fidl::encoding::ResourceDialect,
9017 T0: fidl::encoding::Encode<u64, D>,
9018 T1: fidl::encoding::Encode<AudioGainInfo, D>,
9019 T2: fidl::encoding::Encode<AudioGainValidFlags, D>,
9020 > fidl::encoding::Encode<AudioDeviceEnumeratorSetDeviceGainRequest, D> for (T0, T1, T2)
9021 {
9022 #[inline]
9023 unsafe fn encode(
9024 self,
9025 encoder: &mut fidl::encoding::Encoder<'_, D>,
9026 offset: usize,
9027 depth: fidl::encoding::Depth,
9028 ) -> fidl::Result<()> {
9029 encoder.debug_check_bounds::<AudioDeviceEnumeratorSetDeviceGainRequest>(offset);
9030 unsafe {
9033 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
9034 (ptr as *mut u64).write_unaligned(0);
9035 }
9036 self.0.encode(encoder, offset + 0, depth)?;
9038 self.1.encode(encoder, offset + 8, depth)?;
9039 self.2.encode(encoder, offset + 16, depth)?;
9040 Ok(())
9041 }
9042 }
9043
9044 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9045 for AudioDeviceEnumeratorSetDeviceGainRequest
9046 {
9047 #[inline(always)]
9048 fn new_empty() -> Self {
9049 Self {
9050 device_token: fidl::new_empty!(u64, D),
9051 gain_info: fidl::new_empty!(AudioGainInfo, D),
9052 valid_flags: fidl::new_empty!(AudioGainValidFlags, D),
9053 }
9054 }
9055
9056 #[inline]
9057 unsafe fn decode(
9058 &mut self,
9059 decoder: &mut fidl::encoding::Decoder<'_, D>,
9060 offset: usize,
9061 _depth: fidl::encoding::Depth,
9062 ) -> fidl::Result<()> {
9063 decoder.debug_check_bounds::<Self>(offset);
9064 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
9066 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9067 let mask = 0xffffffff00000000u64;
9068 let maskedval = padval & mask;
9069 if maskedval != 0 {
9070 return Err(fidl::Error::NonZeroPadding {
9071 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
9072 });
9073 }
9074 fidl::decode!(u64, D, &mut self.device_token, decoder, offset + 0, _depth)?;
9075 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 8, _depth)?;
9076 fidl::decode!(
9077 AudioGainValidFlags,
9078 D,
9079 &mut self.valid_flags,
9080 decoder,
9081 offset + 16,
9082 _depth
9083 )?;
9084 Ok(())
9085 }
9086 }
9087
9088 impl fidl::encoding::ValueTypeMarker for AudioDeviceInfo {
9089 type Borrowed<'a> = &'a Self;
9090 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9091 value
9092 }
9093 }
9094
9095 unsafe impl fidl::encoding::TypeMarker for AudioDeviceInfo {
9096 type Owned = Self;
9097
9098 #[inline(always)]
9099 fn inline_align(_context: fidl::encoding::Context) -> usize {
9100 8
9101 }
9102
9103 #[inline(always)]
9104 fn inline_size(_context: fidl::encoding::Context) -> usize {
9105 56
9106 }
9107 }
9108
9109 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioDeviceInfo, D>
9110 for &AudioDeviceInfo
9111 {
9112 #[inline]
9113 unsafe fn encode(
9114 self,
9115 encoder: &mut fidl::encoding::Encoder<'_, D>,
9116 offset: usize,
9117 _depth: fidl::encoding::Depth,
9118 ) -> fidl::Result<()> {
9119 encoder.debug_check_bounds::<AudioDeviceInfo>(offset);
9120 fidl::encoding::Encode::<AudioDeviceInfo, D>::encode(
9122 (
9123 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
9124 &self.name,
9125 ),
9126 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
9127 &self.unique_id,
9128 ),
9129 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.token_id),
9130 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_input),
9131 <AudioGainInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_info),
9132 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.is_default),
9133 ),
9134 encoder,
9135 offset,
9136 _depth,
9137 )
9138 }
9139 }
9140 unsafe impl<
9141 D: fidl::encoding::ResourceDialect,
9142 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
9143 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
9144 T2: fidl::encoding::Encode<u64, D>,
9145 T3: fidl::encoding::Encode<bool, D>,
9146 T4: fidl::encoding::Encode<AudioGainInfo, D>,
9147 T5: fidl::encoding::Encode<bool, D>,
9148 > fidl::encoding::Encode<AudioDeviceInfo, D> for (T0, T1, T2, T3, T4, T5)
9149 {
9150 #[inline]
9151 unsafe fn encode(
9152 self,
9153 encoder: &mut fidl::encoding::Encoder<'_, D>,
9154 offset: usize,
9155 depth: fidl::encoding::Depth,
9156 ) -> fidl::Result<()> {
9157 encoder.debug_check_bounds::<AudioDeviceInfo>(offset);
9158 unsafe {
9161 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
9162 (ptr as *mut u64).write_unaligned(0);
9163 }
9164 unsafe {
9165 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(48);
9166 (ptr as *mut u64).write_unaligned(0);
9167 }
9168 self.0.encode(encoder, offset + 0, depth)?;
9170 self.1.encode(encoder, offset + 16, depth)?;
9171 self.2.encode(encoder, offset + 32, depth)?;
9172 self.3.encode(encoder, offset + 40, depth)?;
9173 self.4.encode(encoder, offset + 44, depth)?;
9174 self.5.encode(encoder, offset + 52, depth)?;
9175 Ok(())
9176 }
9177 }
9178
9179 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioDeviceInfo {
9180 #[inline(always)]
9181 fn new_empty() -> Self {
9182 Self {
9183 name: fidl::new_empty!(fidl::encoding::UnboundedString, D),
9184 unique_id: fidl::new_empty!(fidl::encoding::UnboundedString, D),
9185 token_id: fidl::new_empty!(u64, D),
9186 is_input: fidl::new_empty!(bool, D),
9187 gain_info: fidl::new_empty!(AudioGainInfo, D),
9188 is_default: fidl::new_empty!(bool, D),
9189 }
9190 }
9191
9192 #[inline]
9193 unsafe fn decode(
9194 &mut self,
9195 decoder: &mut fidl::encoding::Decoder<'_, D>,
9196 offset: usize,
9197 _depth: fidl::encoding::Depth,
9198 ) -> fidl::Result<()> {
9199 decoder.debug_check_bounds::<Self>(offset);
9200 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
9202 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9203 let mask = 0xffffff00u64;
9204 let maskedval = padval & mask;
9205 if maskedval != 0 {
9206 return Err(fidl::Error::NonZeroPadding {
9207 padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
9208 });
9209 }
9210 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(48) };
9211 let padval = unsafe { (ptr as *const u64).read_unaligned() };
9212 let mask = 0xffffff0000000000u64;
9213 let maskedval = padval & mask;
9214 if maskedval != 0 {
9215 return Err(fidl::Error::NonZeroPadding {
9216 padding_start: offset + 48 + ((mask as u64).trailing_zeros() / 8) as usize,
9217 });
9218 }
9219 fidl::decode!(
9220 fidl::encoding::UnboundedString,
9221 D,
9222 &mut self.name,
9223 decoder,
9224 offset + 0,
9225 _depth
9226 )?;
9227 fidl::decode!(
9228 fidl::encoding::UnboundedString,
9229 D,
9230 &mut self.unique_id,
9231 decoder,
9232 offset + 16,
9233 _depth
9234 )?;
9235 fidl::decode!(u64, D, &mut self.token_id, decoder, offset + 32, _depth)?;
9236 fidl::decode!(bool, D, &mut self.is_input, decoder, offset + 40, _depth)?;
9237 fidl::decode!(AudioGainInfo, D, &mut self.gain_info, decoder, offset + 44, _depth)?;
9238 fidl::decode!(bool, D, &mut self.is_default, decoder, offset + 52, _depth)?;
9239 Ok(())
9240 }
9241 }
9242
9243 impl fidl::encoding::ValueTypeMarker for AudioGainInfo {
9244 type Borrowed<'a> = &'a Self;
9245 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9246 value
9247 }
9248 }
9249
9250 unsafe impl fidl::encoding::TypeMarker for AudioGainInfo {
9251 type Owned = Self;
9252
9253 #[inline(always)]
9254 fn inline_align(_context: fidl::encoding::Context) -> usize {
9255 4
9256 }
9257
9258 #[inline(always)]
9259 fn inline_size(_context: fidl::encoding::Context) -> usize {
9260 8
9261 }
9262 }
9263
9264 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioGainInfo, D>
9265 for &AudioGainInfo
9266 {
9267 #[inline]
9268 unsafe fn encode(
9269 self,
9270 encoder: &mut fidl::encoding::Encoder<'_, D>,
9271 offset: usize,
9272 _depth: fidl::encoding::Depth,
9273 ) -> fidl::Result<()> {
9274 encoder.debug_check_bounds::<AudioGainInfo>(offset);
9275 fidl::encoding::Encode::<AudioGainInfo, D>::encode(
9277 (
9278 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_db),
9279 <AudioGainInfoFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.flags),
9280 ),
9281 encoder,
9282 offset,
9283 _depth,
9284 )
9285 }
9286 }
9287 unsafe impl<
9288 D: fidl::encoding::ResourceDialect,
9289 T0: fidl::encoding::Encode<f32, D>,
9290 T1: fidl::encoding::Encode<AudioGainInfoFlags, D>,
9291 > fidl::encoding::Encode<AudioGainInfo, D> for (T0, T1)
9292 {
9293 #[inline]
9294 unsafe fn encode(
9295 self,
9296 encoder: &mut fidl::encoding::Encoder<'_, D>,
9297 offset: usize,
9298 depth: fidl::encoding::Depth,
9299 ) -> fidl::Result<()> {
9300 encoder.debug_check_bounds::<AudioGainInfo>(offset);
9301 self.0.encode(encoder, offset + 0, depth)?;
9305 self.1.encode(encoder, offset + 4, depth)?;
9306 Ok(())
9307 }
9308 }
9309
9310 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioGainInfo {
9311 #[inline(always)]
9312 fn new_empty() -> Self {
9313 Self {
9314 gain_db: fidl::new_empty!(f32, D),
9315 flags: fidl::new_empty!(AudioGainInfoFlags, D),
9316 }
9317 }
9318
9319 #[inline]
9320 unsafe fn decode(
9321 &mut self,
9322 decoder: &mut fidl::encoding::Decoder<'_, D>,
9323 offset: usize,
9324 _depth: fidl::encoding::Depth,
9325 ) -> fidl::Result<()> {
9326 decoder.debug_check_bounds::<Self>(offset);
9327 fidl::decode!(f32, D, &mut self.gain_db, decoder, offset + 0, _depth)?;
9329 fidl::decode!(AudioGainInfoFlags, D, &mut self.flags, decoder, offset + 4, _depth)?;
9330 Ok(())
9331 }
9332 }
9333
9334 impl fidl::encoding::ValueTypeMarker for AudioRendererEnableMinLeadTimeEventsRequest {
9335 type Borrowed<'a> = &'a Self;
9336 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9337 value
9338 }
9339 }
9340
9341 unsafe impl fidl::encoding::TypeMarker for AudioRendererEnableMinLeadTimeEventsRequest {
9342 type Owned = Self;
9343
9344 #[inline(always)]
9345 fn inline_align(_context: fidl::encoding::Context) -> usize {
9346 1
9347 }
9348
9349 #[inline(always)]
9350 fn inline_size(_context: fidl::encoding::Context) -> usize {
9351 1
9352 }
9353 }
9354
9355 unsafe impl<D: fidl::encoding::ResourceDialect>
9356 fidl::encoding::Encode<AudioRendererEnableMinLeadTimeEventsRequest, D>
9357 for &AudioRendererEnableMinLeadTimeEventsRequest
9358 {
9359 #[inline]
9360 unsafe fn encode(
9361 self,
9362 encoder: &mut fidl::encoding::Encoder<'_, D>,
9363 offset: usize,
9364 _depth: fidl::encoding::Depth,
9365 ) -> fidl::Result<()> {
9366 encoder.debug_check_bounds::<AudioRendererEnableMinLeadTimeEventsRequest>(offset);
9367 fidl::encoding::Encode::<AudioRendererEnableMinLeadTimeEventsRequest, D>::encode(
9369 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
9370 encoder,
9371 offset,
9372 _depth,
9373 )
9374 }
9375 }
9376 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
9377 fidl::encoding::Encode<AudioRendererEnableMinLeadTimeEventsRequest, D> for (T0,)
9378 {
9379 #[inline]
9380 unsafe fn encode(
9381 self,
9382 encoder: &mut fidl::encoding::Encoder<'_, D>,
9383 offset: usize,
9384 depth: fidl::encoding::Depth,
9385 ) -> fidl::Result<()> {
9386 encoder.debug_check_bounds::<AudioRendererEnableMinLeadTimeEventsRequest>(offset);
9387 self.0.encode(encoder, offset + 0, depth)?;
9391 Ok(())
9392 }
9393 }
9394
9395 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9396 for AudioRendererEnableMinLeadTimeEventsRequest
9397 {
9398 #[inline(always)]
9399 fn new_empty() -> Self {
9400 Self { enabled: fidl::new_empty!(bool, D) }
9401 }
9402
9403 #[inline]
9404 unsafe fn decode(
9405 &mut self,
9406 decoder: &mut fidl::encoding::Decoder<'_, D>,
9407 offset: usize,
9408 _depth: fidl::encoding::Depth,
9409 ) -> fidl::Result<()> {
9410 decoder.debug_check_bounds::<Self>(offset);
9411 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
9413 Ok(())
9414 }
9415 }
9416
9417 impl fidl::encoding::ValueTypeMarker for AudioRendererGetMinLeadTimeResponse {
9418 type Borrowed<'a> = &'a Self;
9419 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9420 value
9421 }
9422 }
9423
9424 unsafe impl fidl::encoding::TypeMarker for AudioRendererGetMinLeadTimeResponse {
9425 type Owned = Self;
9426
9427 #[inline(always)]
9428 fn inline_align(_context: fidl::encoding::Context) -> usize {
9429 8
9430 }
9431
9432 #[inline(always)]
9433 fn inline_size(_context: fidl::encoding::Context) -> usize {
9434 8
9435 }
9436 #[inline(always)]
9437 fn encode_is_copy() -> bool {
9438 true
9439 }
9440
9441 #[inline(always)]
9442 fn decode_is_copy() -> bool {
9443 true
9444 }
9445 }
9446
9447 unsafe impl<D: fidl::encoding::ResourceDialect>
9448 fidl::encoding::Encode<AudioRendererGetMinLeadTimeResponse, D>
9449 for &AudioRendererGetMinLeadTimeResponse
9450 {
9451 #[inline]
9452 unsafe fn encode(
9453 self,
9454 encoder: &mut fidl::encoding::Encoder<'_, D>,
9455 offset: usize,
9456 _depth: fidl::encoding::Depth,
9457 ) -> fidl::Result<()> {
9458 encoder.debug_check_bounds::<AudioRendererGetMinLeadTimeResponse>(offset);
9459 unsafe {
9460 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9462 (buf_ptr as *mut AudioRendererGetMinLeadTimeResponse)
9463 .write_unaligned((self as *const AudioRendererGetMinLeadTimeResponse).read());
9464 }
9467 Ok(())
9468 }
9469 }
9470 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
9471 fidl::encoding::Encode<AudioRendererGetMinLeadTimeResponse, D> for (T0,)
9472 {
9473 #[inline]
9474 unsafe fn encode(
9475 self,
9476 encoder: &mut fidl::encoding::Encoder<'_, D>,
9477 offset: usize,
9478 depth: fidl::encoding::Depth,
9479 ) -> fidl::Result<()> {
9480 encoder.debug_check_bounds::<AudioRendererGetMinLeadTimeResponse>(offset);
9481 self.0.encode(encoder, offset + 0, depth)?;
9485 Ok(())
9486 }
9487 }
9488
9489 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9490 for AudioRendererGetMinLeadTimeResponse
9491 {
9492 #[inline(always)]
9493 fn new_empty() -> Self {
9494 Self { min_lead_time_nsec: fidl::new_empty!(i64, D) }
9495 }
9496
9497 #[inline]
9498 unsafe fn decode(
9499 &mut self,
9500 decoder: &mut fidl::encoding::Decoder<'_, D>,
9501 offset: usize,
9502 _depth: fidl::encoding::Depth,
9503 ) -> fidl::Result<()> {
9504 decoder.debug_check_bounds::<Self>(offset);
9505 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9506 unsafe {
9509 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9510 }
9511 Ok(())
9512 }
9513 }
9514
9515 impl fidl::encoding::ValueTypeMarker for AudioRendererOnMinLeadTimeChangedRequest {
9516 type Borrowed<'a> = &'a Self;
9517 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9518 value
9519 }
9520 }
9521
9522 unsafe impl fidl::encoding::TypeMarker for AudioRendererOnMinLeadTimeChangedRequest {
9523 type Owned = Self;
9524
9525 #[inline(always)]
9526 fn inline_align(_context: fidl::encoding::Context) -> usize {
9527 8
9528 }
9529
9530 #[inline(always)]
9531 fn inline_size(_context: fidl::encoding::Context) -> usize {
9532 8
9533 }
9534 #[inline(always)]
9535 fn encode_is_copy() -> bool {
9536 true
9537 }
9538
9539 #[inline(always)]
9540 fn decode_is_copy() -> bool {
9541 true
9542 }
9543 }
9544
9545 unsafe impl<D: fidl::encoding::ResourceDialect>
9546 fidl::encoding::Encode<AudioRendererOnMinLeadTimeChangedRequest, D>
9547 for &AudioRendererOnMinLeadTimeChangedRequest
9548 {
9549 #[inline]
9550 unsafe fn encode(
9551 self,
9552 encoder: &mut fidl::encoding::Encoder<'_, D>,
9553 offset: usize,
9554 _depth: fidl::encoding::Depth,
9555 ) -> fidl::Result<()> {
9556 encoder.debug_check_bounds::<AudioRendererOnMinLeadTimeChangedRequest>(offset);
9557 unsafe {
9558 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9560 (buf_ptr as *mut AudioRendererOnMinLeadTimeChangedRequest).write_unaligned(
9561 (self as *const AudioRendererOnMinLeadTimeChangedRequest).read(),
9562 );
9563 }
9566 Ok(())
9567 }
9568 }
9569 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
9570 fidl::encoding::Encode<AudioRendererOnMinLeadTimeChangedRequest, D> for (T0,)
9571 {
9572 #[inline]
9573 unsafe fn encode(
9574 self,
9575 encoder: &mut fidl::encoding::Encoder<'_, D>,
9576 offset: usize,
9577 depth: fidl::encoding::Depth,
9578 ) -> fidl::Result<()> {
9579 encoder.debug_check_bounds::<AudioRendererOnMinLeadTimeChangedRequest>(offset);
9580 self.0.encode(encoder, offset + 0, depth)?;
9584 Ok(())
9585 }
9586 }
9587
9588 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9589 for AudioRendererOnMinLeadTimeChangedRequest
9590 {
9591 #[inline(always)]
9592 fn new_empty() -> Self {
9593 Self { min_lead_time_nsec: fidl::new_empty!(i64, D) }
9594 }
9595
9596 #[inline]
9597 unsafe fn decode(
9598 &mut self,
9599 decoder: &mut fidl::encoding::Decoder<'_, D>,
9600 offset: usize,
9601 _depth: fidl::encoding::Depth,
9602 ) -> fidl::Result<()> {
9603 decoder.debug_check_bounds::<Self>(offset);
9604 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9605 unsafe {
9608 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
9609 }
9610 Ok(())
9611 }
9612 }
9613
9614 impl fidl::encoding::ValueTypeMarker for AudioRendererPauseResponse {
9615 type Borrowed<'a> = &'a Self;
9616 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9617 value
9618 }
9619 }
9620
9621 unsafe impl fidl::encoding::TypeMarker for AudioRendererPauseResponse {
9622 type Owned = Self;
9623
9624 #[inline(always)]
9625 fn inline_align(_context: fidl::encoding::Context) -> usize {
9626 8
9627 }
9628
9629 #[inline(always)]
9630 fn inline_size(_context: fidl::encoding::Context) -> usize {
9631 16
9632 }
9633 #[inline(always)]
9634 fn encode_is_copy() -> bool {
9635 true
9636 }
9637
9638 #[inline(always)]
9639 fn decode_is_copy() -> bool {
9640 true
9641 }
9642 }
9643
9644 unsafe impl<D: fidl::encoding::ResourceDialect>
9645 fidl::encoding::Encode<AudioRendererPauseResponse, D> for &AudioRendererPauseResponse
9646 {
9647 #[inline]
9648 unsafe fn encode(
9649 self,
9650 encoder: &mut fidl::encoding::Encoder<'_, D>,
9651 offset: usize,
9652 _depth: fidl::encoding::Depth,
9653 ) -> fidl::Result<()> {
9654 encoder.debug_check_bounds::<AudioRendererPauseResponse>(offset);
9655 unsafe {
9656 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9658 (buf_ptr as *mut AudioRendererPauseResponse)
9659 .write_unaligned((self as *const AudioRendererPauseResponse).read());
9660 }
9663 Ok(())
9664 }
9665 }
9666 unsafe impl<
9667 D: fidl::encoding::ResourceDialect,
9668 T0: fidl::encoding::Encode<i64, D>,
9669 T1: fidl::encoding::Encode<i64, D>,
9670 > fidl::encoding::Encode<AudioRendererPauseResponse, D> for (T0, T1)
9671 {
9672 #[inline]
9673 unsafe fn encode(
9674 self,
9675 encoder: &mut fidl::encoding::Encoder<'_, D>,
9676 offset: usize,
9677 depth: fidl::encoding::Depth,
9678 ) -> fidl::Result<()> {
9679 encoder.debug_check_bounds::<AudioRendererPauseResponse>(offset);
9680 self.0.encode(encoder, offset + 0, depth)?;
9684 self.1.encode(encoder, offset + 8, depth)?;
9685 Ok(())
9686 }
9687 }
9688
9689 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9690 for AudioRendererPauseResponse
9691 {
9692 #[inline(always)]
9693 fn new_empty() -> Self {
9694 Self { reference_time: fidl::new_empty!(i64, D), media_time: 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, 16);
9710 }
9711 Ok(())
9712 }
9713 }
9714
9715 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayNoReplyRequest {
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 AudioRendererPlayNoReplyRequest {
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<AudioRendererPlayNoReplyRequest, D>
9747 for &AudioRendererPlayNoReplyRequest
9748 {
9749 #[inline]
9750 unsafe fn encode(
9751 self,
9752 encoder: &mut fidl::encoding::Encoder<'_, D>,
9753 offset: usize,
9754 _depth: fidl::encoding::Depth,
9755 ) -> fidl::Result<()> {
9756 encoder.debug_check_bounds::<AudioRendererPlayNoReplyRequest>(offset);
9757 unsafe {
9758 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9760 (buf_ptr as *mut AudioRendererPlayNoReplyRequest)
9761 .write_unaligned((self as *const AudioRendererPlayNoReplyRequest).read());
9762 }
9765 Ok(())
9766 }
9767 }
9768 unsafe impl<
9769 D: fidl::encoding::ResourceDialect,
9770 T0: fidl::encoding::Encode<i64, D>,
9771 T1: fidl::encoding::Encode<i64, D>,
9772 > fidl::encoding::Encode<AudioRendererPlayNoReplyRequest, D> for (T0, T1)
9773 {
9774 #[inline]
9775 unsafe fn encode(
9776 self,
9777 encoder: &mut fidl::encoding::Encoder<'_, D>,
9778 offset: usize,
9779 depth: fidl::encoding::Depth,
9780 ) -> fidl::Result<()> {
9781 encoder.debug_check_bounds::<AudioRendererPlayNoReplyRequest>(offset);
9782 self.0.encode(encoder, offset + 0, depth)?;
9786 self.1.encode(encoder, offset + 8, depth)?;
9787 Ok(())
9788 }
9789 }
9790
9791 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
9792 for AudioRendererPlayNoReplyRequest
9793 {
9794 #[inline(always)]
9795 fn new_empty() -> Self {
9796 Self { reference_time: fidl::new_empty!(i64, D), media_time: fidl::new_empty!(i64, D) }
9797 }
9798
9799 #[inline]
9800 unsafe fn decode(
9801 &mut self,
9802 decoder: &mut fidl::encoding::Decoder<'_, D>,
9803 offset: usize,
9804 _depth: fidl::encoding::Depth,
9805 ) -> fidl::Result<()> {
9806 decoder.debug_check_bounds::<Self>(offset);
9807 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
9808 unsafe {
9811 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
9812 }
9813 Ok(())
9814 }
9815 }
9816
9817 impl fidl::encoding::ValueTypeMarker for AudioRendererPlayRequest {
9818 type Borrowed<'a> = &'a Self;
9819 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
9820 value
9821 }
9822 }
9823
9824 unsafe impl fidl::encoding::TypeMarker for AudioRendererPlayRequest {
9825 type Owned = Self;
9826
9827 #[inline(always)]
9828 fn inline_align(_context: fidl::encoding::Context) -> usize {
9829 8
9830 }
9831
9832 #[inline(always)]
9833 fn inline_size(_context: fidl::encoding::Context) -> usize {
9834 16
9835 }
9836 #[inline(always)]
9837 fn encode_is_copy() -> bool {
9838 true
9839 }
9840
9841 #[inline(always)]
9842 fn decode_is_copy() -> bool {
9843 true
9844 }
9845 }
9846
9847 unsafe impl<D: fidl::encoding::ResourceDialect>
9848 fidl::encoding::Encode<AudioRendererPlayRequest, D> for &AudioRendererPlayRequest
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::<AudioRendererPlayRequest>(offset);
9858 unsafe {
9859 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9861 (buf_ptr as *mut AudioRendererPlayRequest)
9862 .write_unaligned((self as *const AudioRendererPlayRequest).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<AudioRendererPlayRequest, 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::<AudioRendererPlayRequest>(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 AudioRendererPlayRequest
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 AudioRendererPlayResponse {
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 AudioRendererPlayResponse {
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<AudioRendererPlayResponse, D> for &AudioRendererPlayResponse
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::<AudioRendererPlayResponse>(offset);
9959 unsafe {
9960 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
9962 (buf_ptr as *mut AudioRendererPlayResponse)
9963 .write_unaligned((self as *const AudioRendererPlayResponse).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<AudioRendererPlayResponse, 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::<AudioRendererPlayResponse>(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 AudioRendererPlayResponse
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 AudioRendererSetPcmStreamTypeRequest {
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 AudioRendererSetPcmStreamTypeRequest {
10027 type Owned = Self;
10028
10029 #[inline(always)]
10030 fn inline_align(_context: fidl::encoding::Context) -> usize {
10031 4
10032 }
10033
10034 #[inline(always)]
10035 fn inline_size(_context: fidl::encoding::Context) -> usize {
10036 12
10037 }
10038 }
10039
10040 unsafe impl<D: fidl::encoding::ResourceDialect>
10041 fidl::encoding::Encode<AudioRendererSetPcmStreamTypeRequest, D>
10042 for &AudioRendererSetPcmStreamTypeRequest
10043 {
10044 #[inline]
10045 unsafe fn encode(
10046 self,
10047 encoder: &mut fidl::encoding::Encoder<'_, D>,
10048 offset: usize,
10049 _depth: fidl::encoding::Depth,
10050 ) -> fidl::Result<()> {
10051 encoder.debug_check_bounds::<AudioRendererSetPcmStreamTypeRequest>(offset);
10052 fidl::encoding::Encode::<AudioRendererSetPcmStreamTypeRequest, D>::encode(
10054 (<AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),),
10055 encoder,
10056 offset,
10057 _depth,
10058 )
10059 }
10060 }
10061 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioStreamType, D>>
10062 fidl::encoding::Encode<AudioRendererSetPcmStreamTypeRequest, D> for (T0,)
10063 {
10064 #[inline]
10065 unsafe fn encode(
10066 self,
10067 encoder: &mut fidl::encoding::Encoder<'_, D>,
10068 offset: usize,
10069 depth: fidl::encoding::Depth,
10070 ) -> fidl::Result<()> {
10071 encoder.debug_check_bounds::<AudioRendererSetPcmStreamTypeRequest>(offset);
10072 self.0.encode(encoder, offset + 0, depth)?;
10076 Ok(())
10077 }
10078 }
10079
10080 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10081 for AudioRendererSetPcmStreamTypeRequest
10082 {
10083 #[inline(always)]
10084 fn new_empty() -> Self {
10085 Self { type_: fidl::new_empty!(AudioStreamType, D) }
10086 }
10087
10088 #[inline]
10089 unsafe fn decode(
10090 &mut self,
10091 decoder: &mut fidl::encoding::Decoder<'_, D>,
10092 offset: usize,
10093 _depth: fidl::encoding::Depth,
10094 ) -> fidl::Result<()> {
10095 decoder.debug_check_bounds::<Self>(offset);
10096 fidl::decode!(AudioStreamType, D, &mut self.type_, decoder, offset + 0, _depth)?;
10098 Ok(())
10099 }
10100 }
10101
10102 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPtsContinuityThresholdRequest {
10103 type Borrowed<'a> = &'a Self;
10104 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10105 value
10106 }
10107 }
10108
10109 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPtsContinuityThresholdRequest {
10110 type Owned = Self;
10111
10112 #[inline(always)]
10113 fn inline_align(_context: fidl::encoding::Context) -> usize {
10114 4
10115 }
10116
10117 #[inline(always)]
10118 fn inline_size(_context: fidl::encoding::Context) -> usize {
10119 4
10120 }
10121 }
10122
10123 unsafe impl<D: fidl::encoding::ResourceDialect>
10124 fidl::encoding::Encode<AudioRendererSetPtsContinuityThresholdRequest, D>
10125 for &AudioRendererSetPtsContinuityThresholdRequest
10126 {
10127 #[inline]
10128 unsafe fn encode(
10129 self,
10130 encoder: &mut fidl::encoding::Encoder<'_, D>,
10131 offset: usize,
10132 _depth: fidl::encoding::Depth,
10133 ) -> fidl::Result<()> {
10134 encoder.debug_check_bounds::<AudioRendererSetPtsContinuityThresholdRequest>(offset);
10135 fidl::encoding::Encode::<AudioRendererSetPtsContinuityThresholdRequest, D>::encode(
10137 (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.threshold_seconds),),
10138 encoder,
10139 offset,
10140 _depth,
10141 )
10142 }
10143 }
10144 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
10145 fidl::encoding::Encode<AudioRendererSetPtsContinuityThresholdRequest, D> for (T0,)
10146 {
10147 #[inline]
10148 unsafe fn encode(
10149 self,
10150 encoder: &mut fidl::encoding::Encoder<'_, D>,
10151 offset: usize,
10152 depth: fidl::encoding::Depth,
10153 ) -> fidl::Result<()> {
10154 encoder.debug_check_bounds::<AudioRendererSetPtsContinuityThresholdRequest>(offset);
10155 self.0.encode(encoder, offset + 0, depth)?;
10159 Ok(())
10160 }
10161 }
10162
10163 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10164 for AudioRendererSetPtsContinuityThresholdRequest
10165 {
10166 #[inline(always)]
10167 fn new_empty() -> Self {
10168 Self { threshold_seconds: fidl::new_empty!(f32, D) }
10169 }
10170
10171 #[inline]
10172 unsafe fn decode(
10173 &mut self,
10174 decoder: &mut fidl::encoding::Decoder<'_, D>,
10175 offset: usize,
10176 _depth: fidl::encoding::Depth,
10177 ) -> fidl::Result<()> {
10178 decoder.debug_check_bounds::<Self>(offset);
10179 fidl::decode!(f32, D, &mut self.threshold_seconds, decoder, offset + 0, _depth)?;
10181 Ok(())
10182 }
10183 }
10184
10185 impl fidl::encoding::ValueTypeMarker for AudioRendererSetPtsUnitsRequest {
10186 type Borrowed<'a> = &'a Self;
10187 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10188 value
10189 }
10190 }
10191
10192 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetPtsUnitsRequest {
10193 type Owned = Self;
10194
10195 #[inline(always)]
10196 fn inline_align(_context: fidl::encoding::Context) -> usize {
10197 4
10198 }
10199
10200 #[inline(always)]
10201 fn inline_size(_context: fidl::encoding::Context) -> usize {
10202 8
10203 }
10204 #[inline(always)]
10205 fn encode_is_copy() -> bool {
10206 true
10207 }
10208
10209 #[inline(always)]
10210 fn decode_is_copy() -> bool {
10211 true
10212 }
10213 }
10214
10215 unsafe impl<D: fidl::encoding::ResourceDialect>
10216 fidl::encoding::Encode<AudioRendererSetPtsUnitsRequest, D>
10217 for &AudioRendererSetPtsUnitsRequest
10218 {
10219 #[inline]
10220 unsafe fn encode(
10221 self,
10222 encoder: &mut fidl::encoding::Encoder<'_, D>,
10223 offset: usize,
10224 _depth: fidl::encoding::Depth,
10225 ) -> fidl::Result<()> {
10226 encoder.debug_check_bounds::<AudioRendererSetPtsUnitsRequest>(offset);
10227 unsafe {
10228 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10230 (buf_ptr as *mut AudioRendererSetPtsUnitsRequest)
10231 .write_unaligned((self as *const AudioRendererSetPtsUnitsRequest).read());
10232 }
10235 Ok(())
10236 }
10237 }
10238 unsafe impl<
10239 D: fidl::encoding::ResourceDialect,
10240 T0: fidl::encoding::Encode<u32, D>,
10241 T1: fidl::encoding::Encode<u32, D>,
10242 > fidl::encoding::Encode<AudioRendererSetPtsUnitsRequest, D> for (T0, T1)
10243 {
10244 #[inline]
10245 unsafe fn encode(
10246 self,
10247 encoder: &mut fidl::encoding::Encoder<'_, D>,
10248 offset: usize,
10249 depth: fidl::encoding::Depth,
10250 ) -> fidl::Result<()> {
10251 encoder.debug_check_bounds::<AudioRendererSetPtsUnitsRequest>(offset);
10252 self.0.encode(encoder, offset + 0, depth)?;
10256 self.1.encode(encoder, offset + 4, depth)?;
10257 Ok(())
10258 }
10259 }
10260
10261 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10262 for AudioRendererSetPtsUnitsRequest
10263 {
10264 #[inline(always)]
10265 fn new_empty() -> Self {
10266 Self {
10267 tick_per_second_numerator: fidl::new_empty!(u32, D),
10268 tick_per_second_denominator: fidl::new_empty!(u32, D),
10269 }
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 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10281 unsafe {
10284 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
10285 }
10286 Ok(())
10287 }
10288 }
10289
10290 impl fidl::encoding::ValueTypeMarker for AudioRendererSetUsage2Request {
10291 type Borrowed<'a> = &'a Self;
10292 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10293 value
10294 }
10295 }
10296
10297 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetUsage2Request {
10298 type Owned = Self;
10299
10300 #[inline(always)]
10301 fn inline_align(_context: fidl::encoding::Context) -> usize {
10302 4
10303 }
10304
10305 #[inline(always)]
10306 fn inline_size(_context: fidl::encoding::Context) -> usize {
10307 4
10308 }
10309 }
10310
10311 unsafe impl<D: fidl::encoding::ResourceDialect>
10312 fidl::encoding::Encode<AudioRendererSetUsage2Request, D>
10313 for &AudioRendererSetUsage2Request
10314 {
10315 #[inline]
10316 unsafe fn encode(
10317 self,
10318 encoder: &mut fidl::encoding::Encoder<'_, D>,
10319 offset: usize,
10320 _depth: fidl::encoding::Depth,
10321 ) -> fidl::Result<()> {
10322 encoder.debug_check_bounds::<AudioRendererSetUsage2Request>(offset);
10323 fidl::encoding::Encode::<AudioRendererSetUsage2Request, D>::encode(
10325 (<AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage2),),
10326 encoder,
10327 offset,
10328 _depth,
10329 )
10330 }
10331 }
10332 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioRenderUsage2, D>>
10333 fidl::encoding::Encode<AudioRendererSetUsage2Request, D> for (T0,)
10334 {
10335 #[inline]
10336 unsafe fn encode(
10337 self,
10338 encoder: &mut fidl::encoding::Encoder<'_, D>,
10339 offset: usize,
10340 depth: fidl::encoding::Depth,
10341 ) -> fidl::Result<()> {
10342 encoder.debug_check_bounds::<AudioRendererSetUsage2Request>(offset);
10343 self.0.encode(encoder, offset + 0, depth)?;
10347 Ok(())
10348 }
10349 }
10350
10351 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10352 for AudioRendererSetUsage2Request
10353 {
10354 #[inline(always)]
10355 fn new_empty() -> Self {
10356 Self { usage2: fidl::new_empty!(AudioRenderUsage2, D) }
10357 }
10358
10359 #[inline]
10360 unsafe fn decode(
10361 &mut self,
10362 decoder: &mut fidl::encoding::Decoder<'_, D>,
10363 offset: usize,
10364 _depth: fidl::encoding::Depth,
10365 ) -> fidl::Result<()> {
10366 decoder.debug_check_bounds::<Self>(offset);
10367 fidl::decode!(AudioRenderUsage2, D, &mut self.usage2, decoder, offset + 0, _depth)?;
10369 Ok(())
10370 }
10371 }
10372
10373 impl fidl::encoding::ValueTypeMarker for AudioRendererSetUsageRequest {
10374 type Borrowed<'a> = &'a Self;
10375 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10376 value
10377 }
10378 }
10379
10380 unsafe impl fidl::encoding::TypeMarker for AudioRendererSetUsageRequest {
10381 type Owned = Self;
10382
10383 #[inline(always)]
10384 fn inline_align(_context: fidl::encoding::Context) -> usize {
10385 4
10386 }
10387
10388 #[inline(always)]
10389 fn inline_size(_context: fidl::encoding::Context) -> usize {
10390 4
10391 }
10392 }
10393
10394 unsafe impl<D: fidl::encoding::ResourceDialect>
10395 fidl::encoding::Encode<AudioRendererSetUsageRequest, D> for &AudioRendererSetUsageRequest
10396 {
10397 #[inline]
10398 unsafe fn encode(
10399 self,
10400 encoder: &mut fidl::encoding::Encoder<'_, D>,
10401 offset: usize,
10402 _depth: fidl::encoding::Depth,
10403 ) -> fidl::Result<()> {
10404 encoder.debug_check_bounds::<AudioRendererSetUsageRequest>(offset);
10405 fidl::encoding::Encode::<AudioRendererSetUsageRequest, D>::encode(
10407 (<AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),),
10408 encoder,
10409 offset,
10410 _depth,
10411 )
10412 }
10413 }
10414 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<AudioRenderUsage, D>>
10415 fidl::encoding::Encode<AudioRendererSetUsageRequest, D> for (T0,)
10416 {
10417 #[inline]
10418 unsafe fn encode(
10419 self,
10420 encoder: &mut fidl::encoding::Encoder<'_, D>,
10421 offset: usize,
10422 depth: fidl::encoding::Depth,
10423 ) -> fidl::Result<()> {
10424 encoder.debug_check_bounds::<AudioRendererSetUsageRequest>(offset);
10425 self.0.encode(encoder, offset + 0, depth)?;
10429 Ok(())
10430 }
10431 }
10432
10433 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
10434 for AudioRendererSetUsageRequest
10435 {
10436 #[inline(always)]
10437 fn new_empty() -> Self {
10438 Self { usage: fidl::new_empty!(AudioRenderUsage, D) }
10439 }
10440
10441 #[inline]
10442 unsafe fn decode(
10443 &mut self,
10444 decoder: &mut fidl::encoding::Decoder<'_, D>,
10445 offset: usize,
10446 _depth: fidl::encoding::Depth,
10447 ) -> fidl::Result<()> {
10448 decoder.debug_check_bounds::<Self>(offset);
10449 fidl::decode!(AudioRenderUsage, D, &mut self.usage, decoder, offset + 0, _depth)?;
10451 Ok(())
10452 }
10453 }
10454
10455 impl fidl::encoding::ValueTypeMarker for AudioStreamType {
10456 type Borrowed<'a> = &'a Self;
10457 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10458 value
10459 }
10460 }
10461
10462 unsafe impl fidl::encoding::TypeMarker for AudioStreamType {
10463 type Owned = Self;
10464
10465 #[inline(always)]
10466 fn inline_align(_context: fidl::encoding::Context) -> usize {
10467 4
10468 }
10469
10470 #[inline(always)]
10471 fn inline_size(_context: fidl::encoding::Context) -> usize {
10472 12
10473 }
10474 }
10475
10476 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioStreamType, D>
10477 for &AudioStreamType
10478 {
10479 #[inline]
10480 unsafe fn encode(
10481 self,
10482 encoder: &mut fidl::encoding::Encoder<'_, D>,
10483 offset: usize,
10484 _depth: fidl::encoding::Depth,
10485 ) -> fidl::Result<()> {
10486 encoder.debug_check_bounds::<AudioStreamType>(offset);
10487 fidl::encoding::Encode::<AudioStreamType, D>::encode(
10489 (
10490 <AudioSampleFormat as fidl::encoding::ValueTypeMarker>::borrow(
10491 &self.sample_format,
10492 ),
10493 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.channels),
10494 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frames_per_second),
10495 ),
10496 encoder,
10497 offset,
10498 _depth,
10499 )
10500 }
10501 }
10502 unsafe impl<
10503 D: fidl::encoding::ResourceDialect,
10504 T0: fidl::encoding::Encode<AudioSampleFormat, D>,
10505 T1: fidl::encoding::Encode<u32, D>,
10506 T2: fidl::encoding::Encode<u32, D>,
10507 > fidl::encoding::Encode<AudioStreamType, D> for (T0, T1, T2)
10508 {
10509 #[inline]
10510 unsafe fn encode(
10511 self,
10512 encoder: &mut fidl::encoding::Encoder<'_, D>,
10513 offset: usize,
10514 depth: fidl::encoding::Depth,
10515 ) -> fidl::Result<()> {
10516 encoder.debug_check_bounds::<AudioStreamType>(offset);
10517 self.0.encode(encoder, offset + 0, depth)?;
10521 self.1.encode(encoder, offset + 4, depth)?;
10522 self.2.encode(encoder, offset + 8, depth)?;
10523 Ok(())
10524 }
10525 }
10526
10527 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioStreamType {
10528 #[inline(always)]
10529 fn new_empty() -> Self {
10530 Self {
10531 sample_format: fidl::new_empty!(AudioSampleFormat, D),
10532 channels: fidl::new_empty!(u32, D),
10533 frames_per_second: fidl::new_empty!(u32, D),
10534 }
10535 }
10536
10537 #[inline]
10538 unsafe fn decode(
10539 &mut self,
10540 decoder: &mut fidl::encoding::Decoder<'_, D>,
10541 offset: usize,
10542 _depth: fidl::encoding::Depth,
10543 ) -> fidl::Result<()> {
10544 decoder.debug_check_bounds::<Self>(offset);
10545 fidl::decode!(
10547 AudioSampleFormat,
10548 D,
10549 &mut self.sample_format,
10550 decoder,
10551 offset + 0,
10552 _depth
10553 )?;
10554 fidl::decode!(u32, D, &mut self.channels, decoder, offset + 4, _depth)?;
10555 fidl::decode!(u32, D, &mut self.frames_per_second, decoder, offset + 8, _depth)?;
10556 Ok(())
10557 }
10558 }
10559
10560 impl fidl::encoding::ValueTypeMarker for Compression {
10561 type Borrowed<'a> = &'a Self;
10562 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10563 value
10564 }
10565 }
10566
10567 unsafe impl fidl::encoding::TypeMarker for Compression {
10568 type Owned = Self;
10569
10570 #[inline(always)]
10571 fn inline_align(_context: fidl::encoding::Context) -> usize {
10572 8
10573 }
10574
10575 #[inline(always)]
10576 fn inline_size(_context: fidl::encoding::Context) -> usize {
10577 32
10578 }
10579 }
10580
10581 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Compression, D>
10582 for &Compression
10583 {
10584 #[inline]
10585 unsafe fn encode(
10586 self,
10587 encoder: &mut fidl::encoding::Encoder<'_, D>,
10588 offset: usize,
10589 _depth: fidl::encoding::Depth,
10590 ) -> fidl::Result<()> {
10591 encoder.debug_check_bounds::<Compression>(offset);
10592 fidl::encoding::Encode::<Compression, D>::encode(
10594 (
10595 <fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(&self.type_),
10596 <fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>> as fidl::encoding::ValueTypeMarker>::borrow(&self.parameters),
10597 ),
10598 encoder, offset, _depth
10599 )
10600 }
10601 }
10602 unsafe impl<
10603 D: fidl::encoding::ResourceDialect,
10604 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
10605 T1: fidl::encoding::Encode<fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>, D>,
10606 > fidl::encoding::Encode<Compression, D> for (T0, T1)
10607 {
10608 #[inline]
10609 unsafe fn encode(
10610 self,
10611 encoder: &mut fidl::encoding::Encoder<'_, D>,
10612 offset: usize,
10613 depth: fidl::encoding::Depth,
10614 ) -> fidl::Result<()> {
10615 encoder.debug_check_bounds::<Compression>(offset);
10616 self.0.encode(encoder, offset + 0, depth)?;
10620 self.1.encode(encoder, offset + 16, depth)?;
10621 Ok(())
10622 }
10623 }
10624
10625 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Compression {
10626 #[inline(always)]
10627 fn new_empty() -> Self {
10628 Self {
10629 type_: fidl::new_empty!(fidl::encoding::BoundedString<256>, D),
10630 parameters: fidl::new_empty!(
10631 fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>,
10632 D
10633 ),
10634 }
10635 }
10636
10637 #[inline]
10638 unsafe fn decode(
10639 &mut self,
10640 decoder: &mut fidl::encoding::Decoder<'_, D>,
10641 offset: usize,
10642 _depth: fidl::encoding::Depth,
10643 ) -> fidl::Result<()> {
10644 decoder.debug_check_bounds::<Self>(offset);
10645 fidl::decode!(
10647 fidl::encoding::BoundedString<256>,
10648 D,
10649 &mut self.type_,
10650 decoder,
10651 offset + 0,
10652 _depth
10653 )?;
10654 fidl::decode!(
10655 fidl::encoding::Optional<fidl::encoding::Vector<u8, 8192>>,
10656 D,
10657 &mut self.parameters,
10658 decoder,
10659 offset + 16,
10660 _depth
10661 )?;
10662 Ok(())
10663 }
10664 }
10665
10666 impl fidl::encoding::ValueTypeMarker for EncryptionPattern {
10667 type Borrowed<'a> = &'a Self;
10668 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10669 value
10670 }
10671 }
10672
10673 unsafe impl fidl::encoding::TypeMarker for EncryptionPattern {
10674 type Owned = Self;
10675
10676 #[inline(always)]
10677 fn inline_align(_context: fidl::encoding::Context) -> usize {
10678 4
10679 }
10680
10681 #[inline(always)]
10682 fn inline_size(_context: fidl::encoding::Context) -> usize {
10683 8
10684 }
10685 #[inline(always)]
10686 fn encode_is_copy() -> bool {
10687 true
10688 }
10689
10690 #[inline(always)]
10691 fn decode_is_copy() -> bool {
10692 true
10693 }
10694 }
10695
10696 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncryptionPattern, D>
10697 for &EncryptionPattern
10698 {
10699 #[inline]
10700 unsafe fn encode(
10701 self,
10702 encoder: &mut fidl::encoding::Encoder<'_, D>,
10703 offset: usize,
10704 _depth: fidl::encoding::Depth,
10705 ) -> fidl::Result<()> {
10706 encoder.debug_check_bounds::<EncryptionPattern>(offset);
10707 unsafe {
10708 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
10710 (buf_ptr as *mut EncryptionPattern)
10711 .write_unaligned((self as *const EncryptionPattern).read());
10712 }
10715 Ok(())
10716 }
10717 }
10718 unsafe impl<
10719 D: fidl::encoding::ResourceDialect,
10720 T0: fidl::encoding::Encode<u32, D>,
10721 T1: fidl::encoding::Encode<u32, D>,
10722 > fidl::encoding::Encode<EncryptionPattern, D> for (T0, T1)
10723 {
10724 #[inline]
10725 unsafe fn encode(
10726 self,
10727 encoder: &mut fidl::encoding::Encoder<'_, D>,
10728 offset: usize,
10729 depth: fidl::encoding::Depth,
10730 ) -> fidl::Result<()> {
10731 encoder.debug_check_bounds::<EncryptionPattern>(offset);
10732 self.0.encode(encoder, offset + 0, depth)?;
10736 self.1.encode(encoder, offset + 4, depth)?;
10737 Ok(())
10738 }
10739 }
10740
10741 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncryptionPattern {
10742 #[inline(always)]
10743 fn new_empty() -> Self {
10744 Self {
10745 clear_blocks: fidl::new_empty!(u32, D),
10746 encrypted_blocks: fidl::new_empty!(u32, D),
10747 }
10748 }
10749
10750 #[inline]
10751 unsafe fn decode(
10752 &mut self,
10753 decoder: &mut fidl::encoding::Decoder<'_, D>,
10754 offset: usize,
10755 _depth: fidl::encoding::Depth,
10756 ) -> fidl::Result<()> {
10757 decoder.debug_check_bounds::<Self>(offset);
10758 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
10759 unsafe {
10762 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
10763 }
10764 Ok(())
10765 }
10766 }
10767
10768 impl fidl::encoding::ValueTypeMarker for Metadata {
10769 type Borrowed<'a> = &'a Self;
10770 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10771 value
10772 }
10773 }
10774
10775 unsafe impl fidl::encoding::TypeMarker for Metadata {
10776 type Owned = Self;
10777
10778 #[inline(always)]
10779 fn inline_align(_context: fidl::encoding::Context) -> usize {
10780 8
10781 }
10782
10783 #[inline(always)]
10784 fn inline_size(_context: fidl::encoding::Context) -> usize {
10785 16
10786 }
10787 }
10788
10789 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Metadata, D> for &Metadata {
10790 #[inline]
10791 unsafe fn encode(
10792 self,
10793 encoder: &mut fidl::encoding::Encoder<'_, D>,
10794 offset: usize,
10795 _depth: fidl::encoding::Depth,
10796 ) -> fidl::Result<()> {
10797 encoder.debug_check_bounds::<Metadata>(offset);
10798 fidl::encoding::Encode::<Metadata, D>::encode(
10800 (
10801 <fidl::encoding::UnboundedVector<Property> as fidl::encoding::ValueTypeMarker>::borrow(&self.properties),
10802 ),
10803 encoder, offset, _depth
10804 )
10805 }
10806 }
10807 unsafe impl<
10808 D: fidl::encoding::ResourceDialect,
10809 T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<Property>, D>,
10810 > fidl::encoding::Encode<Metadata, D> for (T0,)
10811 {
10812 #[inline]
10813 unsafe fn encode(
10814 self,
10815 encoder: &mut fidl::encoding::Encoder<'_, D>,
10816 offset: usize,
10817 depth: fidl::encoding::Depth,
10818 ) -> fidl::Result<()> {
10819 encoder.debug_check_bounds::<Metadata>(offset);
10820 self.0.encode(encoder, offset + 0, depth)?;
10824 Ok(())
10825 }
10826 }
10827
10828 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Metadata {
10829 #[inline(always)]
10830 fn new_empty() -> Self {
10831 Self { properties: fidl::new_empty!(fidl::encoding::UnboundedVector<Property>, D) }
10832 }
10833
10834 #[inline]
10835 unsafe fn decode(
10836 &mut self,
10837 decoder: &mut fidl::encoding::Decoder<'_, D>,
10838 offset: usize,
10839 _depth: fidl::encoding::Depth,
10840 ) -> fidl::Result<()> {
10841 decoder.debug_check_bounds::<Self>(offset);
10842 fidl::decode!(
10844 fidl::encoding::UnboundedVector<Property>,
10845 D,
10846 &mut self.properties,
10847 decoder,
10848 offset + 0,
10849 _depth
10850 )?;
10851 Ok(())
10852 }
10853 }
10854
10855 impl fidl::encoding::ValueTypeMarker for Parameter {
10856 type Borrowed<'a> = &'a Self;
10857 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10858 value
10859 }
10860 }
10861
10862 unsafe impl fidl::encoding::TypeMarker for Parameter {
10863 type Owned = Self;
10864
10865 #[inline(always)]
10866 fn inline_align(_context: fidl::encoding::Context) -> usize {
10867 8
10868 }
10869
10870 #[inline(always)]
10871 fn inline_size(_context: fidl::encoding::Context) -> usize {
10872 48
10873 }
10874 }
10875
10876 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Parameter, D>
10877 for &Parameter
10878 {
10879 #[inline]
10880 unsafe fn encode(
10881 self,
10882 encoder: &mut fidl::encoding::Encoder<'_, D>,
10883 offset: usize,
10884 _depth: fidl::encoding::Depth,
10885 ) -> fidl::Result<()> {
10886 encoder.debug_check_bounds::<Parameter>(offset);
10887 fidl::encoding::Encode::<Parameter, D>::encode(
10889 (
10890 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
10891 &self.scope,
10892 ),
10893 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
10894 &self.name,
10895 ),
10896 <Value as fidl::encoding::ValueTypeMarker>::borrow(&self.value),
10897 ),
10898 encoder,
10899 offset,
10900 _depth,
10901 )
10902 }
10903 }
10904 unsafe impl<
10905 D: fidl::encoding::ResourceDialect,
10906 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
10907 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
10908 T2: fidl::encoding::Encode<Value, D>,
10909 > fidl::encoding::Encode<Parameter, D> for (T0, T1, T2)
10910 {
10911 #[inline]
10912 unsafe fn encode(
10913 self,
10914 encoder: &mut fidl::encoding::Encoder<'_, D>,
10915 offset: usize,
10916 depth: fidl::encoding::Depth,
10917 ) -> fidl::Result<()> {
10918 encoder.debug_check_bounds::<Parameter>(offset);
10919 self.0.encode(encoder, offset + 0, depth)?;
10923 self.1.encode(encoder, offset + 16, depth)?;
10924 self.2.encode(encoder, offset + 32, depth)?;
10925 Ok(())
10926 }
10927 }
10928
10929 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Parameter {
10930 #[inline(always)]
10931 fn new_empty() -> Self {
10932 Self {
10933 scope: fidl::new_empty!(fidl::encoding::UnboundedString, D),
10934 name: fidl::new_empty!(fidl::encoding::UnboundedString, D),
10935 value: fidl::new_empty!(Value, D),
10936 }
10937 }
10938
10939 #[inline]
10940 unsafe fn decode(
10941 &mut self,
10942 decoder: &mut fidl::encoding::Decoder<'_, D>,
10943 offset: usize,
10944 _depth: fidl::encoding::Depth,
10945 ) -> fidl::Result<()> {
10946 decoder.debug_check_bounds::<Self>(offset);
10947 fidl::decode!(
10949 fidl::encoding::UnboundedString,
10950 D,
10951 &mut self.scope,
10952 decoder,
10953 offset + 0,
10954 _depth
10955 )?;
10956 fidl::decode!(
10957 fidl::encoding::UnboundedString,
10958 D,
10959 &mut self.name,
10960 decoder,
10961 offset + 16,
10962 _depth
10963 )?;
10964 fidl::decode!(Value, D, &mut self.value, decoder, offset + 32, _depth)?;
10965 Ok(())
10966 }
10967 }
10968
10969 impl fidl::encoding::ValueTypeMarker for PcmFormat {
10970 type Borrowed<'a> = &'a Self;
10971 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
10972 value
10973 }
10974 }
10975
10976 unsafe impl fidl::encoding::TypeMarker for PcmFormat {
10977 type Owned = Self;
10978
10979 #[inline(always)]
10980 fn inline_align(_context: fidl::encoding::Context) -> usize {
10981 8
10982 }
10983
10984 #[inline(always)]
10985 fn inline_size(_context: fidl::encoding::Context) -> usize {
10986 32
10987 }
10988 }
10989
10990 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PcmFormat, D>
10991 for &PcmFormat
10992 {
10993 #[inline]
10994 unsafe fn encode(
10995 self,
10996 encoder: &mut fidl::encoding::Encoder<'_, D>,
10997 offset: usize,
10998 _depth: fidl::encoding::Depth,
10999 ) -> fidl::Result<()> {
11000 encoder.debug_check_bounds::<PcmFormat>(offset);
11001 fidl::encoding::Encode::<PcmFormat, D>::encode(
11003 (
11004 <AudioPcmMode as fidl::encoding::ValueTypeMarker>::borrow(&self.pcm_mode),
11005 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.bits_per_sample),
11006 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.frames_per_second),
11007 <fidl::encoding::Vector<AudioChannelId, 16> as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_map),
11008 ),
11009 encoder, offset, _depth
11010 )
11011 }
11012 }
11013 unsafe impl<
11014 D: fidl::encoding::ResourceDialect,
11015 T0: fidl::encoding::Encode<AudioPcmMode, D>,
11016 T1: fidl::encoding::Encode<u32, D>,
11017 T2: fidl::encoding::Encode<u32, D>,
11018 T3: fidl::encoding::Encode<fidl::encoding::Vector<AudioChannelId, 16>, D>,
11019 > fidl::encoding::Encode<PcmFormat, D> for (T0, T1, T2, T3)
11020 {
11021 #[inline]
11022 unsafe fn encode(
11023 self,
11024 encoder: &mut fidl::encoding::Encoder<'_, D>,
11025 offset: usize,
11026 depth: fidl::encoding::Depth,
11027 ) -> fidl::Result<()> {
11028 encoder.debug_check_bounds::<PcmFormat>(offset);
11029 unsafe {
11032 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11033 (ptr as *mut u64).write_unaligned(0);
11034 }
11035 self.0.encode(encoder, offset + 0, depth)?;
11037 self.1.encode(encoder, offset + 4, depth)?;
11038 self.2.encode(encoder, offset + 8, depth)?;
11039 self.3.encode(encoder, offset + 16, depth)?;
11040 Ok(())
11041 }
11042 }
11043
11044 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PcmFormat {
11045 #[inline(always)]
11046 fn new_empty() -> Self {
11047 Self {
11048 pcm_mode: fidl::new_empty!(AudioPcmMode, D),
11049 bits_per_sample: fidl::new_empty!(u32, D),
11050 frames_per_second: fidl::new_empty!(u32, D),
11051 channel_map: fidl::new_empty!(fidl::encoding::Vector<AudioChannelId, 16>, D),
11052 }
11053 }
11054
11055 #[inline]
11056 unsafe fn decode(
11057 &mut self,
11058 decoder: &mut fidl::encoding::Decoder<'_, D>,
11059 offset: usize,
11060 _depth: fidl::encoding::Depth,
11061 ) -> fidl::Result<()> {
11062 decoder.debug_check_bounds::<Self>(offset);
11063 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
11065 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11066 let mask = 0xffffffff00000000u64;
11067 let maskedval = padval & mask;
11068 if maskedval != 0 {
11069 return Err(fidl::Error::NonZeroPadding {
11070 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11071 });
11072 }
11073 fidl::decode!(AudioPcmMode, D, &mut self.pcm_mode, decoder, offset + 0, _depth)?;
11074 fidl::decode!(u32, D, &mut self.bits_per_sample, decoder, offset + 4, _depth)?;
11075 fidl::decode!(u32, D, &mut self.frames_per_second, decoder, offset + 8, _depth)?;
11076 fidl::decode!(fidl::encoding::Vector<AudioChannelId, 16>, D, &mut self.channel_map, decoder, offset + 16, _depth)?;
11077 Ok(())
11078 }
11079 }
11080
11081 impl fidl::encoding::ValueTypeMarker for ProfileProviderRegisterHandlerWithCapacityResponse {
11082 type Borrowed<'a> = &'a Self;
11083 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11084 value
11085 }
11086 }
11087
11088 unsafe impl fidl::encoding::TypeMarker for ProfileProviderRegisterHandlerWithCapacityResponse {
11089 type Owned = Self;
11090
11091 #[inline(always)]
11092 fn inline_align(_context: fidl::encoding::Context) -> usize {
11093 8
11094 }
11095
11096 #[inline(always)]
11097 fn inline_size(_context: fidl::encoding::Context) -> usize {
11098 16
11099 }
11100 #[inline(always)]
11101 fn encode_is_copy() -> bool {
11102 true
11103 }
11104
11105 #[inline(always)]
11106 fn decode_is_copy() -> bool {
11107 true
11108 }
11109 }
11110
11111 unsafe impl<D: fidl::encoding::ResourceDialect>
11112 fidl::encoding::Encode<ProfileProviderRegisterHandlerWithCapacityResponse, D>
11113 for &ProfileProviderRegisterHandlerWithCapacityResponse
11114 {
11115 #[inline]
11116 unsafe fn encode(
11117 self,
11118 encoder: &mut fidl::encoding::Encoder<'_, D>,
11119 offset: usize,
11120 _depth: fidl::encoding::Depth,
11121 ) -> fidl::Result<()> {
11122 encoder
11123 .debug_check_bounds::<ProfileProviderRegisterHandlerWithCapacityResponse>(offset);
11124 unsafe {
11125 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11127 (buf_ptr as *mut ProfileProviderRegisterHandlerWithCapacityResponse)
11128 .write_unaligned(
11129 (self as *const ProfileProviderRegisterHandlerWithCapacityResponse).read(),
11130 );
11131 }
11134 Ok(())
11135 }
11136 }
11137 unsafe impl<
11138 D: fidl::encoding::ResourceDialect,
11139 T0: fidl::encoding::Encode<i64, D>,
11140 T1: fidl::encoding::Encode<i64, D>,
11141 > fidl::encoding::Encode<ProfileProviderRegisterHandlerWithCapacityResponse, D>
11142 for (T0, T1)
11143 {
11144 #[inline]
11145 unsafe fn encode(
11146 self,
11147 encoder: &mut fidl::encoding::Encoder<'_, D>,
11148 offset: usize,
11149 depth: fidl::encoding::Depth,
11150 ) -> fidl::Result<()> {
11151 encoder
11152 .debug_check_bounds::<ProfileProviderRegisterHandlerWithCapacityResponse>(offset);
11153 self.0.encode(encoder, offset + 0, depth)?;
11157 self.1.encode(encoder, offset + 8, depth)?;
11158 Ok(())
11159 }
11160 }
11161
11162 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11163 for ProfileProviderRegisterHandlerWithCapacityResponse
11164 {
11165 #[inline(always)]
11166 fn new_empty() -> Self {
11167 Self { period: fidl::new_empty!(i64, D), capacity: fidl::new_empty!(i64, D) }
11168 }
11169
11170 #[inline]
11171 unsafe fn decode(
11172 &mut self,
11173 decoder: &mut fidl::encoding::Decoder<'_, D>,
11174 offset: usize,
11175 _depth: fidl::encoding::Depth,
11176 ) -> fidl::Result<()> {
11177 decoder.debug_check_bounds::<Self>(offset);
11178 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11179 unsafe {
11182 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
11183 }
11184 Ok(())
11185 }
11186 }
11187
11188 impl fidl::encoding::ValueTypeMarker for Property {
11189 type Borrowed<'a> = &'a Self;
11190 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11191 value
11192 }
11193 }
11194
11195 unsafe impl fidl::encoding::TypeMarker for Property {
11196 type Owned = Self;
11197
11198 #[inline(always)]
11199 fn inline_align(_context: fidl::encoding::Context) -> usize {
11200 8
11201 }
11202
11203 #[inline(always)]
11204 fn inline_size(_context: fidl::encoding::Context) -> usize {
11205 32
11206 }
11207 }
11208
11209 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Property, D> for &Property {
11210 #[inline]
11211 unsafe fn encode(
11212 self,
11213 encoder: &mut fidl::encoding::Encoder<'_, D>,
11214 offset: usize,
11215 _depth: fidl::encoding::Depth,
11216 ) -> fidl::Result<()> {
11217 encoder.debug_check_bounds::<Property>(offset);
11218 fidl::encoding::Encode::<Property, D>::encode(
11220 (
11221 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11222 &self.label,
11223 ),
11224 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(
11225 &self.value,
11226 ),
11227 ),
11228 encoder,
11229 offset,
11230 _depth,
11231 )
11232 }
11233 }
11234 unsafe impl<
11235 D: fidl::encoding::ResourceDialect,
11236 T0: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11237 T1: fidl::encoding::Encode<fidl::encoding::UnboundedString, D>,
11238 > fidl::encoding::Encode<Property, D> for (T0, T1)
11239 {
11240 #[inline]
11241 unsafe fn encode(
11242 self,
11243 encoder: &mut fidl::encoding::Encoder<'_, D>,
11244 offset: usize,
11245 depth: fidl::encoding::Depth,
11246 ) -> fidl::Result<()> {
11247 encoder.debug_check_bounds::<Property>(offset);
11248 self.0.encode(encoder, offset + 0, depth)?;
11252 self.1.encode(encoder, offset + 16, depth)?;
11253 Ok(())
11254 }
11255 }
11256
11257 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Property {
11258 #[inline(always)]
11259 fn new_empty() -> Self {
11260 Self {
11261 label: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11262 value: fidl::new_empty!(fidl::encoding::UnboundedString, D),
11263 }
11264 }
11265
11266 #[inline]
11267 unsafe fn decode(
11268 &mut self,
11269 decoder: &mut fidl::encoding::Decoder<'_, D>,
11270 offset: usize,
11271 _depth: fidl::encoding::Depth,
11272 ) -> fidl::Result<()> {
11273 decoder.debug_check_bounds::<Self>(offset);
11274 fidl::decode!(
11276 fidl::encoding::UnboundedString,
11277 D,
11278 &mut self.label,
11279 decoder,
11280 offset + 0,
11281 _depth
11282 )?;
11283 fidl::decode!(
11284 fidl::encoding::UnboundedString,
11285 D,
11286 &mut self.value,
11287 decoder,
11288 offset + 16,
11289 _depth
11290 )?;
11291 Ok(())
11292 }
11293 }
11294
11295 impl fidl::encoding::ValueTypeMarker for SbcEncoderSettings {
11296 type Borrowed<'a> = &'a Self;
11297 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11298 value
11299 }
11300 }
11301
11302 unsafe impl fidl::encoding::TypeMarker for SbcEncoderSettings {
11303 type Owned = Self;
11304
11305 #[inline(always)]
11306 fn inline_align(_context: fidl::encoding::Context) -> usize {
11307 8
11308 }
11309
11310 #[inline(always)]
11311 fn inline_size(_context: fidl::encoding::Context) -> usize {
11312 24
11313 }
11314 }
11315
11316 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SbcEncoderSettings, D>
11317 for &SbcEncoderSettings
11318 {
11319 #[inline]
11320 unsafe fn encode(
11321 self,
11322 encoder: &mut fidl::encoding::Encoder<'_, D>,
11323 offset: usize,
11324 _depth: fidl::encoding::Depth,
11325 ) -> fidl::Result<()> {
11326 encoder.debug_check_bounds::<SbcEncoderSettings>(offset);
11327 fidl::encoding::Encode::<SbcEncoderSettings, D>::encode(
11329 (
11330 <SbcSubBands as fidl::encoding::ValueTypeMarker>::borrow(&self.sub_bands),
11331 <SbcAllocation as fidl::encoding::ValueTypeMarker>::borrow(&self.allocation),
11332 <SbcBlockCount as fidl::encoding::ValueTypeMarker>::borrow(&self.block_count),
11333 <SbcChannelMode as fidl::encoding::ValueTypeMarker>::borrow(&self.channel_mode),
11334 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.bit_pool),
11335 ),
11336 encoder,
11337 offset,
11338 _depth,
11339 )
11340 }
11341 }
11342 unsafe impl<
11343 D: fidl::encoding::ResourceDialect,
11344 T0: fidl::encoding::Encode<SbcSubBands, D>,
11345 T1: fidl::encoding::Encode<SbcAllocation, D>,
11346 T2: fidl::encoding::Encode<SbcBlockCount, D>,
11347 T3: fidl::encoding::Encode<SbcChannelMode, D>,
11348 T4: fidl::encoding::Encode<u64, D>,
11349 > fidl::encoding::Encode<SbcEncoderSettings, D> for (T0, T1, T2, T3, T4)
11350 {
11351 #[inline]
11352 unsafe fn encode(
11353 self,
11354 encoder: &mut fidl::encoding::Encoder<'_, D>,
11355 offset: usize,
11356 depth: fidl::encoding::Depth,
11357 ) -> fidl::Result<()> {
11358 encoder.debug_check_bounds::<SbcEncoderSettings>(offset);
11359 self.0.encode(encoder, offset + 0, depth)?;
11363 self.1.encode(encoder, offset + 4, depth)?;
11364 self.2.encode(encoder, offset + 8, depth)?;
11365 self.3.encode(encoder, offset + 12, depth)?;
11366 self.4.encode(encoder, offset + 16, depth)?;
11367 Ok(())
11368 }
11369 }
11370
11371 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SbcEncoderSettings {
11372 #[inline(always)]
11373 fn new_empty() -> Self {
11374 Self {
11375 sub_bands: fidl::new_empty!(SbcSubBands, D),
11376 allocation: fidl::new_empty!(SbcAllocation, D),
11377 block_count: fidl::new_empty!(SbcBlockCount, D),
11378 channel_mode: fidl::new_empty!(SbcChannelMode, D),
11379 bit_pool: fidl::new_empty!(u64, D),
11380 }
11381 }
11382
11383 #[inline]
11384 unsafe fn decode(
11385 &mut self,
11386 decoder: &mut fidl::encoding::Decoder<'_, D>,
11387 offset: usize,
11388 _depth: fidl::encoding::Depth,
11389 ) -> fidl::Result<()> {
11390 decoder.debug_check_bounds::<Self>(offset);
11391 fidl::decode!(SbcSubBands, D, &mut self.sub_bands, decoder, offset + 0, _depth)?;
11393 fidl::decode!(SbcAllocation, D, &mut self.allocation, decoder, offset + 4, _depth)?;
11394 fidl::decode!(SbcBlockCount, D, &mut self.block_count, decoder, offset + 8, _depth)?;
11395 fidl::decode!(SbcChannelMode, D, &mut self.channel_mode, decoder, offset + 12, _depth)?;
11396 fidl::decode!(u64, D, &mut self.bit_pool, decoder, offset + 16, _depth)?;
11397 Ok(())
11398 }
11399 }
11400
11401 impl fidl::encoding::ValueTypeMarker for StreamBufferSetRemovePayloadBufferRequest {
11402 type Borrowed<'a> = &'a Self;
11403 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11404 value
11405 }
11406 }
11407
11408 unsafe impl fidl::encoding::TypeMarker for StreamBufferSetRemovePayloadBufferRequest {
11409 type Owned = Self;
11410
11411 #[inline(always)]
11412 fn inline_align(_context: fidl::encoding::Context) -> usize {
11413 4
11414 }
11415
11416 #[inline(always)]
11417 fn inline_size(_context: fidl::encoding::Context) -> usize {
11418 4
11419 }
11420 #[inline(always)]
11421 fn encode_is_copy() -> bool {
11422 true
11423 }
11424
11425 #[inline(always)]
11426 fn decode_is_copy() -> bool {
11427 true
11428 }
11429 }
11430
11431 unsafe impl<D: fidl::encoding::ResourceDialect>
11432 fidl::encoding::Encode<StreamBufferSetRemovePayloadBufferRequest, D>
11433 for &StreamBufferSetRemovePayloadBufferRequest
11434 {
11435 #[inline]
11436 unsafe fn encode(
11437 self,
11438 encoder: &mut fidl::encoding::Encoder<'_, D>,
11439 offset: usize,
11440 _depth: fidl::encoding::Depth,
11441 ) -> fidl::Result<()> {
11442 encoder.debug_check_bounds::<StreamBufferSetRemovePayloadBufferRequest>(offset);
11443 unsafe {
11444 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11446 (buf_ptr as *mut StreamBufferSetRemovePayloadBufferRequest).write_unaligned(
11447 (self as *const StreamBufferSetRemovePayloadBufferRequest).read(),
11448 );
11449 }
11452 Ok(())
11453 }
11454 }
11455 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
11456 fidl::encoding::Encode<StreamBufferSetRemovePayloadBufferRequest, D> for (T0,)
11457 {
11458 #[inline]
11459 unsafe fn encode(
11460 self,
11461 encoder: &mut fidl::encoding::Encoder<'_, D>,
11462 offset: usize,
11463 depth: fidl::encoding::Depth,
11464 ) -> fidl::Result<()> {
11465 encoder.debug_check_bounds::<StreamBufferSetRemovePayloadBufferRequest>(offset);
11466 self.0.encode(encoder, offset + 0, depth)?;
11470 Ok(())
11471 }
11472 }
11473
11474 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11475 for StreamBufferSetRemovePayloadBufferRequest
11476 {
11477 #[inline(always)]
11478 fn new_empty() -> Self {
11479 Self { id: fidl::new_empty!(u32, D) }
11480 }
11481
11482 #[inline]
11483 unsafe fn decode(
11484 &mut self,
11485 decoder: &mut fidl::encoding::Decoder<'_, D>,
11486 offset: usize,
11487 _depth: fidl::encoding::Depth,
11488 ) -> fidl::Result<()> {
11489 decoder.debug_check_bounds::<Self>(offset);
11490 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11491 unsafe {
11494 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
11495 }
11496 Ok(())
11497 }
11498 }
11499
11500 impl fidl::encoding::ValueTypeMarker for StreamPacket {
11501 type Borrowed<'a> = &'a Self;
11502 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11503 value
11504 }
11505 }
11506
11507 unsafe impl fidl::encoding::TypeMarker for StreamPacket {
11508 type Owned = Self;
11509
11510 #[inline(always)]
11511 fn inline_align(_context: fidl::encoding::Context) -> usize {
11512 8
11513 }
11514
11515 #[inline(always)]
11516 fn inline_size(_context: fidl::encoding::Context) -> usize {
11517 56
11518 }
11519 }
11520
11521 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamPacket, D>
11522 for &StreamPacket
11523 {
11524 #[inline]
11525 unsafe fn encode(
11526 self,
11527 encoder: &mut fidl::encoding::Encoder<'_, D>,
11528 offset: usize,
11529 _depth: fidl::encoding::Depth,
11530 ) -> fidl::Result<()> {
11531 encoder.debug_check_bounds::<StreamPacket>(offset);
11532 unsafe {
11533 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11535 (buf_ptr as *mut StreamPacket)
11536 .write_unaligned((self as *const StreamPacket).read());
11537 let padding_ptr = buf_ptr.offset(8) as *mut u64;
11540 let padding_mask = 0xffffffff00000000u64;
11541 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
11542 let padding_ptr = buf_ptr.offset(32) as *mut u64;
11543 let padding_mask = 0xffffffff00000000u64;
11544 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
11545 }
11546 Ok(())
11547 }
11548 }
11549 unsafe impl<
11550 D: fidl::encoding::ResourceDialect,
11551 T0: fidl::encoding::Encode<i64, D>,
11552 T1: fidl::encoding::Encode<u32, D>,
11553 T2: fidl::encoding::Encode<u64, D>,
11554 T3: fidl::encoding::Encode<u64, D>,
11555 T4: fidl::encoding::Encode<u32, D>,
11556 T5: fidl::encoding::Encode<u64, D>,
11557 T6: fidl::encoding::Encode<u64, D>,
11558 > fidl::encoding::Encode<StreamPacket, D> for (T0, T1, T2, T3, T4, T5, T6)
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::<StreamPacket>(offset);
11568 unsafe {
11571 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11572 (ptr as *mut u64).write_unaligned(0);
11573 }
11574 unsafe {
11575 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
11576 (ptr as *mut u64).write_unaligned(0);
11577 }
11578 self.0.encode(encoder, offset + 0, depth)?;
11580 self.1.encode(encoder, offset + 8, depth)?;
11581 self.2.encode(encoder, offset + 16, depth)?;
11582 self.3.encode(encoder, offset + 24, depth)?;
11583 self.4.encode(encoder, offset + 32, depth)?;
11584 self.5.encode(encoder, offset + 40, depth)?;
11585 self.6.encode(encoder, offset + 48, depth)?;
11586 Ok(())
11587 }
11588 }
11589
11590 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamPacket {
11591 #[inline(always)]
11592 fn new_empty() -> Self {
11593 Self {
11594 pts: fidl::new_empty!(i64, D),
11595 payload_buffer_id: fidl::new_empty!(u32, D),
11596 payload_offset: fidl::new_empty!(u64, D),
11597 payload_size: fidl::new_empty!(u64, D),
11598 flags: fidl::new_empty!(u32, D),
11599 buffer_config: fidl::new_empty!(u64, D),
11600 stream_segment_id: fidl::new_empty!(u64, D),
11601 }
11602 }
11603
11604 #[inline]
11605 unsafe fn decode(
11606 &mut self,
11607 decoder: &mut fidl::encoding::Decoder<'_, D>,
11608 offset: usize,
11609 _depth: fidl::encoding::Depth,
11610 ) -> fidl::Result<()> {
11611 decoder.debug_check_bounds::<Self>(offset);
11612 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11613 let ptr = unsafe { buf_ptr.offset(8) };
11615 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11616 let mask = 0xffffffff00000000u64;
11617 let maskedval = padval & mask;
11618 if maskedval != 0 {
11619 return Err(fidl::Error::NonZeroPadding {
11620 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11621 });
11622 }
11623 let ptr = unsafe { buf_ptr.offset(32) };
11624 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11625 let mask = 0xffffffff00000000u64;
11626 let maskedval = padval & mask;
11627 if maskedval != 0 {
11628 return Err(fidl::Error::NonZeroPadding {
11629 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
11630 });
11631 }
11632 unsafe {
11634 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
11635 }
11636 Ok(())
11637 }
11638 }
11639
11640 impl fidl::encoding::ValueTypeMarker for StreamProcessorCloseCurrentStreamRequest {
11641 type Borrowed<'a> = &'a Self;
11642 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11643 value
11644 }
11645 }
11646
11647 unsafe impl fidl::encoding::TypeMarker for StreamProcessorCloseCurrentStreamRequest {
11648 type Owned = Self;
11649
11650 #[inline(always)]
11651 fn inline_align(_context: fidl::encoding::Context) -> usize {
11652 8
11653 }
11654
11655 #[inline(always)]
11656 fn inline_size(_context: fidl::encoding::Context) -> usize {
11657 16
11658 }
11659 }
11660
11661 unsafe impl<D: fidl::encoding::ResourceDialect>
11662 fidl::encoding::Encode<StreamProcessorCloseCurrentStreamRequest, D>
11663 for &StreamProcessorCloseCurrentStreamRequest
11664 {
11665 #[inline]
11666 unsafe fn encode(
11667 self,
11668 encoder: &mut fidl::encoding::Encoder<'_, D>,
11669 offset: usize,
11670 _depth: fidl::encoding::Depth,
11671 ) -> fidl::Result<()> {
11672 encoder.debug_check_bounds::<StreamProcessorCloseCurrentStreamRequest>(offset);
11673 fidl::encoding::Encode::<StreamProcessorCloseCurrentStreamRequest, D>::encode(
11675 (
11676 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
11677 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.release_input_buffers),
11678 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.release_output_buffers),
11679 ),
11680 encoder,
11681 offset,
11682 _depth,
11683 )
11684 }
11685 }
11686 unsafe impl<
11687 D: fidl::encoding::ResourceDialect,
11688 T0: fidl::encoding::Encode<u64, D>,
11689 T1: fidl::encoding::Encode<bool, D>,
11690 T2: fidl::encoding::Encode<bool, D>,
11691 > fidl::encoding::Encode<StreamProcessorCloseCurrentStreamRequest, D> for (T0, T1, T2)
11692 {
11693 #[inline]
11694 unsafe fn encode(
11695 self,
11696 encoder: &mut fidl::encoding::Encoder<'_, D>,
11697 offset: usize,
11698 depth: fidl::encoding::Depth,
11699 ) -> fidl::Result<()> {
11700 encoder.debug_check_bounds::<StreamProcessorCloseCurrentStreamRequest>(offset);
11701 unsafe {
11704 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
11705 (ptr as *mut u64).write_unaligned(0);
11706 }
11707 self.0.encode(encoder, offset + 0, depth)?;
11709 self.1.encode(encoder, offset + 8, depth)?;
11710 self.2.encode(encoder, offset + 9, depth)?;
11711 Ok(())
11712 }
11713 }
11714
11715 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11716 for StreamProcessorCloseCurrentStreamRequest
11717 {
11718 #[inline(always)]
11719 fn new_empty() -> Self {
11720 Self {
11721 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
11722 release_input_buffers: fidl::new_empty!(bool, D),
11723 release_output_buffers: fidl::new_empty!(bool, D),
11724 }
11725 }
11726
11727 #[inline]
11728 unsafe fn decode(
11729 &mut self,
11730 decoder: &mut fidl::encoding::Decoder<'_, D>,
11731 offset: usize,
11732 _depth: fidl::encoding::Depth,
11733 ) -> fidl::Result<()> {
11734 decoder.debug_check_bounds::<Self>(offset);
11735 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
11737 let padval = unsafe { (ptr as *const u64).read_unaligned() };
11738 let mask = 0xffffffffffff0000u64;
11739 let maskedval = padval & mask;
11740 if maskedval != 0 {
11741 return Err(fidl::Error::NonZeroPadding {
11742 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
11743 });
11744 }
11745 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
11746 fidl::decode!(bool, D, &mut self.release_input_buffers, decoder, offset + 8, _depth)?;
11747 fidl::decode!(bool, D, &mut self.release_output_buffers, decoder, offset + 9, _depth)?;
11748 Ok(())
11749 }
11750 }
11751
11752 impl fidl::encoding::ValueTypeMarker for StreamProcessorCompleteOutputBufferPartialSettingsRequest {
11753 type Borrowed<'a> = &'a Self;
11754 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11755 value
11756 }
11757 }
11758
11759 unsafe impl fidl::encoding::TypeMarker
11760 for StreamProcessorCompleteOutputBufferPartialSettingsRequest
11761 {
11762 type Owned = Self;
11763
11764 #[inline(always)]
11765 fn inline_align(_context: fidl::encoding::Context) -> usize {
11766 8
11767 }
11768
11769 #[inline(always)]
11770 fn inline_size(_context: fidl::encoding::Context) -> usize {
11771 8
11772 }
11773 #[inline(always)]
11774 fn encode_is_copy() -> bool {
11775 true
11776 }
11777
11778 #[inline(always)]
11779 fn decode_is_copy() -> bool {
11780 true
11781 }
11782 }
11783
11784 unsafe impl<D: fidl::encoding::ResourceDialect>
11785 fidl::encoding::Encode<StreamProcessorCompleteOutputBufferPartialSettingsRequest, D>
11786 for &StreamProcessorCompleteOutputBufferPartialSettingsRequest
11787 {
11788 #[inline]
11789 unsafe fn encode(
11790 self,
11791 encoder: &mut fidl::encoding::Encoder<'_, D>,
11792 offset: usize,
11793 _depth: fidl::encoding::Depth,
11794 ) -> fidl::Result<()> {
11795 encoder
11796 .debug_check_bounds::<StreamProcessorCompleteOutputBufferPartialSettingsRequest>(
11797 offset,
11798 );
11799 unsafe {
11800 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11802 (buf_ptr as *mut StreamProcessorCompleteOutputBufferPartialSettingsRequest)
11803 .write_unaligned(
11804 (self as *const StreamProcessorCompleteOutputBufferPartialSettingsRequest)
11805 .read(),
11806 );
11807 }
11810 Ok(())
11811 }
11812 }
11813 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
11814 fidl::encoding::Encode<StreamProcessorCompleteOutputBufferPartialSettingsRequest, D>
11815 for (T0,)
11816 {
11817 #[inline]
11818 unsafe fn encode(
11819 self,
11820 encoder: &mut fidl::encoding::Encoder<'_, D>,
11821 offset: usize,
11822 depth: fidl::encoding::Depth,
11823 ) -> fidl::Result<()> {
11824 encoder
11825 .debug_check_bounds::<StreamProcessorCompleteOutputBufferPartialSettingsRequest>(
11826 offset,
11827 );
11828 self.0.encode(encoder, offset + 0, depth)?;
11832 Ok(())
11833 }
11834 }
11835
11836 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11837 for StreamProcessorCompleteOutputBufferPartialSettingsRequest
11838 {
11839 #[inline(always)]
11840 fn new_empty() -> Self {
11841 Self { buffer_lifetime_ordinal: fidl::new_empty!(u64, D) }
11842 }
11843
11844 #[inline]
11845 unsafe fn decode(
11846 &mut self,
11847 decoder: &mut fidl::encoding::Decoder<'_, D>,
11848 offset: usize,
11849 _depth: fidl::encoding::Depth,
11850 ) -> fidl::Result<()> {
11851 decoder.debug_check_bounds::<Self>(offset);
11852 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11853 unsafe {
11856 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
11857 }
11858 Ok(())
11859 }
11860 }
11861
11862 impl fidl::encoding::ValueTypeMarker for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
11863 type Borrowed<'a> = &'a Self;
11864 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11865 value
11866 }
11867 }
11868
11869 unsafe impl fidl::encoding::TypeMarker for StreamProcessorFlushEndOfStreamAndCloseStreamRequest {
11870 type Owned = Self;
11871
11872 #[inline(always)]
11873 fn inline_align(_context: fidl::encoding::Context) -> usize {
11874 8
11875 }
11876
11877 #[inline(always)]
11878 fn inline_size(_context: fidl::encoding::Context) -> usize {
11879 8
11880 }
11881 #[inline(always)]
11882 fn encode_is_copy() -> bool {
11883 true
11884 }
11885
11886 #[inline(always)]
11887 fn decode_is_copy() -> bool {
11888 true
11889 }
11890 }
11891
11892 unsafe impl<D: fidl::encoding::ResourceDialect>
11893 fidl::encoding::Encode<StreamProcessorFlushEndOfStreamAndCloseStreamRequest, D>
11894 for &StreamProcessorFlushEndOfStreamAndCloseStreamRequest
11895 {
11896 #[inline]
11897 unsafe fn encode(
11898 self,
11899 encoder: &mut fidl::encoding::Encoder<'_, D>,
11900 offset: usize,
11901 _depth: fidl::encoding::Depth,
11902 ) -> fidl::Result<()> {
11903 encoder
11904 .debug_check_bounds::<StreamProcessorFlushEndOfStreamAndCloseStreamRequest>(offset);
11905 unsafe {
11906 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
11908 (buf_ptr as *mut StreamProcessorFlushEndOfStreamAndCloseStreamRequest)
11909 .write_unaligned(
11910 (self as *const StreamProcessorFlushEndOfStreamAndCloseStreamRequest)
11911 .read(),
11912 );
11913 }
11916 Ok(())
11917 }
11918 }
11919 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
11920 fidl::encoding::Encode<StreamProcessorFlushEndOfStreamAndCloseStreamRequest, D> for (T0,)
11921 {
11922 #[inline]
11923 unsafe fn encode(
11924 self,
11925 encoder: &mut fidl::encoding::Encoder<'_, D>,
11926 offset: usize,
11927 depth: fidl::encoding::Depth,
11928 ) -> fidl::Result<()> {
11929 encoder
11930 .debug_check_bounds::<StreamProcessorFlushEndOfStreamAndCloseStreamRequest>(offset);
11931 self.0.encode(encoder, offset + 0, depth)?;
11935 Ok(())
11936 }
11937 }
11938
11939 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
11940 for StreamProcessorFlushEndOfStreamAndCloseStreamRequest
11941 {
11942 #[inline(always)]
11943 fn new_empty() -> Self {
11944 Self { stream_lifetime_ordinal: fidl::new_empty!(u64, D) }
11945 }
11946
11947 #[inline]
11948 unsafe fn decode(
11949 &mut self,
11950 decoder: &mut fidl::encoding::Decoder<'_, D>,
11951 offset: usize,
11952 _depth: fidl::encoding::Depth,
11953 ) -> fidl::Result<()> {
11954 decoder.debug_check_bounds::<Self>(offset);
11955 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
11956 unsafe {
11959 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
11960 }
11961 Ok(())
11962 }
11963 }
11964
11965 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnFreeInputPacketRequest {
11966 type Borrowed<'a> = &'a Self;
11967 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
11968 value
11969 }
11970 }
11971
11972 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnFreeInputPacketRequest {
11973 type Owned = Self;
11974
11975 #[inline(always)]
11976 fn inline_align(_context: fidl::encoding::Context) -> usize {
11977 8
11978 }
11979
11980 #[inline(always)]
11981 fn inline_size(_context: fidl::encoding::Context) -> usize {
11982 16
11983 }
11984 }
11985
11986 unsafe impl<D: fidl::encoding::ResourceDialect>
11987 fidl::encoding::Encode<StreamProcessorOnFreeInputPacketRequest, D>
11988 for &StreamProcessorOnFreeInputPacketRequest
11989 {
11990 #[inline]
11991 unsafe fn encode(
11992 self,
11993 encoder: &mut fidl::encoding::Encoder<'_, D>,
11994 offset: usize,
11995 _depth: fidl::encoding::Depth,
11996 ) -> fidl::Result<()> {
11997 encoder.debug_check_bounds::<StreamProcessorOnFreeInputPacketRequest>(offset);
11998 fidl::encoding::Encode::<StreamProcessorOnFreeInputPacketRequest, D>::encode(
12000 (<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow(
12001 &self.free_input_packet,
12002 ),),
12003 encoder,
12004 offset,
12005 _depth,
12006 )
12007 }
12008 }
12009 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PacketHeader, D>>
12010 fidl::encoding::Encode<StreamProcessorOnFreeInputPacketRequest, D> for (T0,)
12011 {
12012 #[inline]
12013 unsafe fn encode(
12014 self,
12015 encoder: &mut fidl::encoding::Encoder<'_, D>,
12016 offset: usize,
12017 depth: fidl::encoding::Depth,
12018 ) -> fidl::Result<()> {
12019 encoder.debug_check_bounds::<StreamProcessorOnFreeInputPacketRequest>(offset);
12020 self.0.encode(encoder, offset + 0, depth)?;
12024 Ok(())
12025 }
12026 }
12027
12028 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12029 for StreamProcessorOnFreeInputPacketRequest
12030 {
12031 #[inline(always)]
12032 fn new_empty() -> Self {
12033 Self { free_input_packet: fidl::new_empty!(PacketHeader, D) }
12034 }
12035
12036 #[inline]
12037 unsafe fn decode(
12038 &mut self,
12039 decoder: &mut fidl::encoding::Decoder<'_, D>,
12040 offset: usize,
12041 _depth: fidl::encoding::Depth,
12042 ) -> fidl::Result<()> {
12043 decoder.debug_check_bounds::<Self>(offset);
12044 fidl::decode!(
12046 PacketHeader,
12047 D,
12048 &mut self.free_input_packet,
12049 decoder,
12050 offset + 0,
12051 _depth
12052 )?;
12053 Ok(())
12054 }
12055 }
12056
12057 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnInputConstraintsRequest {
12058 type Borrowed<'a> = &'a Self;
12059 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12060 value
12061 }
12062 }
12063
12064 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnInputConstraintsRequest {
12065 type Owned = Self;
12066
12067 #[inline(always)]
12068 fn inline_align(_context: fidl::encoding::Context) -> usize {
12069 8
12070 }
12071
12072 #[inline(always)]
12073 fn inline_size(_context: fidl::encoding::Context) -> usize {
12074 16
12075 }
12076 }
12077
12078 unsafe impl<D: fidl::encoding::ResourceDialect>
12079 fidl::encoding::Encode<StreamProcessorOnInputConstraintsRequest, D>
12080 for &StreamProcessorOnInputConstraintsRequest
12081 {
12082 #[inline]
12083 unsafe fn encode(
12084 self,
12085 encoder: &mut fidl::encoding::Encoder<'_, D>,
12086 offset: usize,
12087 _depth: fidl::encoding::Depth,
12088 ) -> fidl::Result<()> {
12089 encoder.debug_check_bounds::<StreamProcessorOnInputConstraintsRequest>(offset);
12090 fidl::encoding::Encode::<StreamProcessorOnInputConstraintsRequest, D>::encode(
12092 (<StreamBufferConstraints as fidl::encoding::ValueTypeMarker>::borrow(
12093 &self.input_constraints,
12094 ),),
12095 encoder,
12096 offset,
12097 _depth,
12098 )
12099 }
12100 }
12101 unsafe impl<
12102 D: fidl::encoding::ResourceDialect,
12103 T0: fidl::encoding::Encode<StreamBufferConstraints, D>,
12104 > fidl::encoding::Encode<StreamProcessorOnInputConstraintsRequest, D> for (T0,)
12105 {
12106 #[inline]
12107 unsafe fn encode(
12108 self,
12109 encoder: &mut fidl::encoding::Encoder<'_, D>,
12110 offset: usize,
12111 depth: fidl::encoding::Depth,
12112 ) -> fidl::Result<()> {
12113 encoder.debug_check_bounds::<StreamProcessorOnInputConstraintsRequest>(offset);
12114 self.0.encode(encoder, offset + 0, depth)?;
12118 Ok(())
12119 }
12120 }
12121
12122 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12123 for StreamProcessorOnInputConstraintsRequest
12124 {
12125 #[inline(always)]
12126 fn new_empty() -> Self {
12127 Self { input_constraints: fidl::new_empty!(StreamBufferConstraints, D) }
12128 }
12129
12130 #[inline]
12131 unsafe fn decode(
12132 &mut self,
12133 decoder: &mut fidl::encoding::Decoder<'_, D>,
12134 offset: usize,
12135 _depth: fidl::encoding::Depth,
12136 ) -> fidl::Result<()> {
12137 decoder.debug_check_bounds::<Self>(offset);
12138 fidl::decode!(
12140 StreamBufferConstraints,
12141 D,
12142 &mut self.input_constraints,
12143 decoder,
12144 offset + 0,
12145 _depth
12146 )?;
12147 Ok(())
12148 }
12149 }
12150
12151 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputConstraintsRequest {
12152 type Borrowed<'a> = &'a Self;
12153 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12154 value
12155 }
12156 }
12157
12158 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputConstraintsRequest {
12159 type Owned = Self;
12160
12161 #[inline(always)]
12162 fn inline_align(_context: fidl::encoding::Context) -> usize {
12163 8
12164 }
12165
12166 #[inline(always)]
12167 fn inline_size(_context: fidl::encoding::Context) -> usize {
12168 16
12169 }
12170 }
12171
12172 unsafe impl<D: fidl::encoding::ResourceDialect>
12173 fidl::encoding::Encode<StreamProcessorOnOutputConstraintsRequest, D>
12174 for &StreamProcessorOnOutputConstraintsRequest
12175 {
12176 #[inline]
12177 unsafe fn encode(
12178 self,
12179 encoder: &mut fidl::encoding::Encoder<'_, D>,
12180 offset: usize,
12181 _depth: fidl::encoding::Depth,
12182 ) -> fidl::Result<()> {
12183 encoder.debug_check_bounds::<StreamProcessorOnOutputConstraintsRequest>(offset);
12184 fidl::encoding::Encode::<StreamProcessorOnOutputConstraintsRequest, D>::encode(
12186 (<StreamOutputConstraints as fidl::encoding::ValueTypeMarker>::borrow(
12187 &self.output_config,
12188 ),),
12189 encoder,
12190 offset,
12191 _depth,
12192 )
12193 }
12194 }
12195 unsafe impl<
12196 D: fidl::encoding::ResourceDialect,
12197 T0: fidl::encoding::Encode<StreamOutputConstraints, D>,
12198 > fidl::encoding::Encode<StreamProcessorOnOutputConstraintsRequest, D> for (T0,)
12199 {
12200 #[inline]
12201 unsafe fn encode(
12202 self,
12203 encoder: &mut fidl::encoding::Encoder<'_, D>,
12204 offset: usize,
12205 depth: fidl::encoding::Depth,
12206 ) -> fidl::Result<()> {
12207 encoder.debug_check_bounds::<StreamProcessorOnOutputConstraintsRequest>(offset);
12208 self.0.encode(encoder, offset + 0, depth)?;
12212 Ok(())
12213 }
12214 }
12215
12216 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12217 for StreamProcessorOnOutputConstraintsRequest
12218 {
12219 #[inline(always)]
12220 fn new_empty() -> Self {
12221 Self { output_config: fidl::new_empty!(StreamOutputConstraints, D) }
12222 }
12223
12224 #[inline]
12225 unsafe fn decode(
12226 &mut self,
12227 decoder: &mut fidl::encoding::Decoder<'_, D>,
12228 offset: usize,
12229 _depth: fidl::encoding::Depth,
12230 ) -> fidl::Result<()> {
12231 decoder.debug_check_bounds::<Self>(offset);
12232 fidl::decode!(
12234 StreamOutputConstraints,
12235 D,
12236 &mut self.output_config,
12237 decoder,
12238 offset + 0,
12239 _depth
12240 )?;
12241 Ok(())
12242 }
12243 }
12244
12245 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputEndOfStreamRequest {
12246 type Borrowed<'a> = &'a Self;
12247 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12248 value
12249 }
12250 }
12251
12252 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputEndOfStreamRequest {
12253 type Owned = Self;
12254
12255 #[inline(always)]
12256 fn inline_align(_context: fidl::encoding::Context) -> usize {
12257 8
12258 }
12259
12260 #[inline(always)]
12261 fn inline_size(_context: fidl::encoding::Context) -> usize {
12262 16
12263 }
12264 }
12265
12266 unsafe impl<D: fidl::encoding::ResourceDialect>
12267 fidl::encoding::Encode<StreamProcessorOnOutputEndOfStreamRequest, D>
12268 for &StreamProcessorOnOutputEndOfStreamRequest
12269 {
12270 #[inline]
12271 unsafe fn encode(
12272 self,
12273 encoder: &mut fidl::encoding::Encoder<'_, D>,
12274 offset: usize,
12275 _depth: fidl::encoding::Depth,
12276 ) -> fidl::Result<()> {
12277 encoder.debug_check_bounds::<StreamProcessorOnOutputEndOfStreamRequest>(offset);
12278 fidl::encoding::Encode::<StreamProcessorOnOutputEndOfStreamRequest, D>::encode(
12280 (
12281 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12282 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_before),
12283 ),
12284 encoder,
12285 offset,
12286 _depth,
12287 )
12288 }
12289 }
12290 unsafe impl<
12291 D: fidl::encoding::ResourceDialect,
12292 T0: fidl::encoding::Encode<u64, D>,
12293 T1: fidl::encoding::Encode<bool, D>,
12294 > fidl::encoding::Encode<StreamProcessorOnOutputEndOfStreamRequest, D> for (T0, T1)
12295 {
12296 #[inline]
12297 unsafe fn encode(
12298 self,
12299 encoder: &mut fidl::encoding::Encoder<'_, D>,
12300 offset: usize,
12301 depth: fidl::encoding::Depth,
12302 ) -> fidl::Result<()> {
12303 encoder.debug_check_bounds::<StreamProcessorOnOutputEndOfStreamRequest>(offset);
12304 unsafe {
12307 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
12308 (ptr as *mut u64).write_unaligned(0);
12309 }
12310 self.0.encode(encoder, offset + 0, depth)?;
12312 self.1.encode(encoder, offset + 8, depth)?;
12313 Ok(())
12314 }
12315 }
12316
12317 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12318 for StreamProcessorOnOutputEndOfStreamRequest
12319 {
12320 #[inline(always)]
12321 fn new_empty() -> Self {
12322 Self {
12323 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12324 error_detected_before: fidl::new_empty!(bool, D),
12325 }
12326 }
12327
12328 #[inline]
12329 unsafe fn decode(
12330 &mut self,
12331 decoder: &mut fidl::encoding::Decoder<'_, D>,
12332 offset: usize,
12333 _depth: fidl::encoding::Depth,
12334 ) -> fidl::Result<()> {
12335 decoder.debug_check_bounds::<Self>(offset);
12336 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
12338 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12339 let mask = 0xffffffffffffff00u64;
12340 let maskedval = padval & mask;
12341 if maskedval != 0 {
12342 return Err(fidl::Error::NonZeroPadding {
12343 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
12344 });
12345 }
12346 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12347 fidl::decode!(bool, D, &mut self.error_detected_before, decoder, offset + 8, _depth)?;
12348 Ok(())
12349 }
12350 }
12351
12352 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputFormatRequest {
12353 type Borrowed<'a> = &'a Self;
12354 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12355 value
12356 }
12357 }
12358
12359 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputFormatRequest {
12360 type Owned = Self;
12361
12362 #[inline(always)]
12363 fn inline_align(_context: fidl::encoding::Context) -> usize {
12364 8
12365 }
12366
12367 #[inline(always)]
12368 fn inline_size(_context: fidl::encoding::Context) -> usize {
12369 16
12370 }
12371 }
12372
12373 unsafe impl<D: fidl::encoding::ResourceDialect>
12374 fidl::encoding::Encode<StreamProcessorOnOutputFormatRequest, D>
12375 for &StreamProcessorOnOutputFormatRequest
12376 {
12377 #[inline]
12378 unsafe fn encode(
12379 self,
12380 encoder: &mut fidl::encoding::Encoder<'_, D>,
12381 offset: usize,
12382 _depth: fidl::encoding::Depth,
12383 ) -> fidl::Result<()> {
12384 encoder.debug_check_bounds::<StreamProcessorOnOutputFormatRequest>(offset);
12385 fidl::encoding::Encode::<StreamProcessorOnOutputFormatRequest, D>::encode(
12387 (<StreamOutputFormat as fidl::encoding::ValueTypeMarker>::borrow(
12388 &self.output_format,
12389 ),),
12390 encoder,
12391 offset,
12392 _depth,
12393 )
12394 }
12395 }
12396 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamOutputFormat, D>>
12397 fidl::encoding::Encode<StreamProcessorOnOutputFormatRequest, D> for (T0,)
12398 {
12399 #[inline]
12400 unsafe fn encode(
12401 self,
12402 encoder: &mut fidl::encoding::Encoder<'_, D>,
12403 offset: usize,
12404 depth: fidl::encoding::Depth,
12405 ) -> fidl::Result<()> {
12406 encoder.debug_check_bounds::<StreamProcessorOnOutputFormatRequest>(offset);
12407 self.0.encode(encoder, offset + 0, depth)?;
12411 Ok(())
12412 }
12413 }
12414
12415 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12416 for StreamProcessorOnOutputFormatRequest
12417 {
12418 #[inline(always)]
12419 fn new_empty() -> Self {
12420 Self { output_format: fidl::new_empty!(StreamOutputFormat, D) }
12421 }
12422
12423 #[inline]
12424 unsafe fn decode(
12425 &mut self,
12426 decoder: &mut fidl::encoding::Decoder<'_, D>,
12427 offset: usize,
12428 _depth: fidl::encoding::Depth,
12429 ) -> fidl::Result<()> {
12430 decoder.debug_check_bounds::<Self>(offset);
12431 fidl::decode!(
12433 StreamOutputFormat,
12434 D,
12435 &mut self.output_format,
12436 decoder,
12437 offset + 0,
12438 _depth
12439 )?;
12440 Ok(())
12441 }
12442 }
12443
12444 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnOutputPacketRequest {
12445 type Borrowed<'a> = &'a Self;
12446 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12447 value
12448 }
12449 }
12450
12451 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnOutputPacketRequest {
12452 type Owned = Self;
12453
12454 #[inline(always)]
12455 fn inline_align(_context: fidl::encoding::Context) -> usize {
12456 8
12457 }
12458
12459 #[inline(always)]
12460 fn inline_size(_context: fidl::encoding::Context) -> usize {
12461 24
12462 }
12463 }
12464
12465 unsafe impl<D: fidl::encoding::ResourceDialect>
12466 fidl::encoding::Encode<StreamProcessorOnOutputPacketRequest, D>
12467 for &StreamProcessorOnOutputPacketRequest
12468 {
12469 #[inline]
12470 unsafe fn encode(
12471 self,
12472 encoder: &mut fidl::encoding::Encoder<'_, D>,
12473 offset: usize,
12474 _depth: fidl::encoding::Depth,
12475 ) -> fidl::Result<()> {
12476 encoder.debug_check_bounds::<StreamProcessorOnOutputPacketRequest>(offset);
12477 fidl::encoding::Encode::<StreamProcessorOnOutputPacketRequest, D>::encode(
12479 (
12480 <Packet as fidl::encoding::ValueTypeMarker>::borrow(&self.output_packet),
12481 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_before),
12482 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.error_detected_during),
12483 ),
12484 encoder,
12485 offset,
12486 _depth,
12487 )
12488 }
12489 }
12490 unsafe impl<
12491 D: fidl::encoding::ResourceDialect,
12492 T0: fidl::encoding::Encode<Packet, D>,
12493 T1: fidl::encoding::Encode<bool, D>,
12494 T2: fidl::encoding::Encode<bool, D>,
12495 > fidl::encoding::Encode<StreamProcessorOnOutputPacketRequest, D> for (T0, T1, T2)
12496 {
12497 #[inline]
12498 unsafe fn encode(
12499 self,
12500 encoder: &mut fidl::encoding::Encoder<'_, D>,
12501 offset: usize,
12502 depth: fidl::encoding::Depth,
12503 ) -> fidl::Result<()> {
12504 encoder.debug_check_bounds::<StreamProcessorOnOutputPacketRequest>(offset);
12505 unsafe {
12508 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
12509 (ptr as *mut u64).write_unaligned(0);
12510 }
12511 self.0.encode(encoder, offset + 0, depth)?;
12513 self.1.encode(encoder, offset + 16, depth)?;
12514 self.2.encode(encoder, offset + 17, depth)?;
12515 Ok(())
12516 }
12517 }
12518
12519 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12520 for StreamProcessorOnOutputPacketRequest
12521 {
12522 #[inline(always)]
12523 fn new_empty() -> Self {
12524 Self {
12525 output_packet: fidl::new_empty!(Packet, D),
12526 error_detected_before: fidl::new_empty!(bool, D),
12527 error_detected_during: fidl::new_empty!(bool, D),
12528 }
12529 }
12530
12531 #[inline]
12532 unsafe fn decode(
12533 &mut self,
12534 decoder: &mut fidl::encoding::Decoder<'_, D>,
12535 offset: usize,
12536 _depth: fidl::encoding::Depth,
12537 ) -> fidl::Result<()> {
12538 decoder.debug_check_bounds::<Self>(offset);
12539 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
12541 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12542 let mask = 0xffffffffffff0000u64;
12543 let maskedval = padval & mask;
12544 if maskedval != 0 {
12545 return Err(fidl::Error::NonZeroPadding {
12546 padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
12547 });
12548 }
12549 fidl::decode!(Packet, D, &mut self.output_packet, decoder, offset + 0, _depth)?;
12550 fidl::decode!(bool, D, &mut self.error_detected_before, decoder, offset + 16, _depth)?;
12551 fidl::decode!(bool, D, &mut self.error_detected_during, decoder, offset + 17, _depth)?;
12552 Ok(())
12553 }
12554 }
12555
12556 impl fidl::encoding::ValueTypeMarker for StreamProcessorOnStreamFailedRequest {
12557 type Borrowed<'a> = &'a Self;
12558 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12559 value
12560 }
12561 }
12562
12563 unsafe impl fidl::encoding::TypeMarker for StreamProcessorOnStreamFailedRequest {
12564 type Owned = Self;
12565
12566 #[inline(always)]
12567 fn inline_align(_context: fidl::encoding::Context) -> usize {
12568 8
12569 }
12570
12571 #[inline(always)]
12572 fn inline_size(_context: fidl::encoding::Context) -> usize {
12573 16
12574 }
12575 }
12576
12577 unsafe impl<D: fidl::encoding::ResourceDialect>
12578 fidl::encoding::Encode<StreamProcessorOnStreamFailedRequest, D>
12579 for &StreamProcessorOnStreamFailedRequest
12580 {
12581 #[inline]
12582 unsafe fn encode(
12583 self,
12584 encoder: &mut fidl::encoding::Encoder<'_, D>,
12585 offset: usize,
12586 _depth: fidl::encoding::Depth,
12587 ) -> fidl::Result<()> {
12588 encoder.debug_check_bounds::<StreamProcessorOnStreamFailedRequest>(offset);
12589 fidl::encoding::Encode::<StreamProcessorOnStreamFailedRequest, D>::encode(
12591 (
12592 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12593 <StreamError as fidl::encoding::ValueTypeMarker>::borrow(&self.error),
12594 ),
12595 encoder,
12596 offset,
12597 _depth,
12598 )
12599 }
12600 }
12601 unsafe impl<
12602 D: fidl::encoding::ResourceDialect,
12603 T0: fidl::encoding::Encode<u64, D>,
12604 T1: fidl::encoding::Encode<StreamError, D>,
12605 > fidl::encoding::Encode<StreamProcessorOnStreamFailedRequest, D> for (T0, T1)
12606 {
12607 #[inline]
12608 unsafe fn encode(
12609 self,
12610 encoder: &mut fidl::encoding::Encoder<'_, D>,
12611 offset: usize,
12612 depth: fidl::encoding::Depth,
12613 ) -> fidl::Result<()> {
12614 encoder.debug_check_bounds::<StreamProcessorOnStreamFailedRequest>(offset);
12615 unsafe {
12618 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
12619 (ptr as *mut u64).write_unaligned(0);
12620 }
12621 self.0.encode(encoder, offset + 0, depth)?;
12623 self.1.encode(encoder, offset + 8, depth)?;
12624 Ok(())
12625 }
12626 }
12627
12628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12629 for StreamProcessorOnStreamFailedRequest
12630 {
12631 #[inline(always)]
12632 fn new_empty() -> Self {
12633 Self {
12634 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12635 error: fidl::new_empty!(StreamError, D),
12636 }
12637 }
12638
12639 #[inline]
12640 unsafe fn decode(
12641 &mut self,
12642 decoder: &mut fidl::encoding::Decoder<'_, D>,
12643 offset: usize,
12644 _depth: fidl::encoding::Depth,
12645 ) -> fidl::Result<()> {
12646 decoder.debug_check_bounds::<Self>(offset);
12647 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
12649 let padval = unsafe { (ptr as *const u64).read_unaligned() };
12650 let mask = 0xffffffff00000000u64;
12651 let maskedval = padval & mask;
12652 if maskedval != 0 {
12653 return Err(fidl::Error::NonZeroPadding {
12654 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
12655 });
12656 }
12657 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12658 fidl::decode!(StreamError, D, &mut self.error, decoder, offset + 8, _depth)?;
12659 Ok(())
12660 }
12661 }
12662
12663 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputEndOfStreamRequest {
12664 type Borrowed<'a> = &'a Self;
12665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12666 value
12667 }
12668 }
12669
12670 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputEndOfStreamRequest {
12671 type Owned = Self;
12672
12673 #[inline(always)]
12674 fn inline_align(_context: fidl::encoding::Context) -> usize {
12675 8
12676 }
12677
12678 #[inline(always)]
12679 fn inline_size(_context: fidl::encoding::Context) -> usize {
12680 8
12681 }
12682 #[inline(always)]
12683 fn encode_is_copy() -> bool {
12684 true
12685 }
12686
12687 #[inline(always)]
12688 fn decode_is_copy() -> bool {
12689 true
12690 }
12691 }
12692
12693 unsafe impl<D: fidl::encoding::ResourceDialect>
12694 fidl::encoding::Encode<StreamProcessorQueueInputEndOfStreamRequest, D>
12695 for &StreamProcessorQueueInputEndOfStreamRequest
12696 {
12697 #[inline]
12698 unsafe fn encode(
12699 self,
12700 encoder: &mut fidl::encoding::Encoder<'_, D>,
12701 offset: usize,
12702 _depth: fidl::encoding::Depth,
12703 ) -> fidl::Result<()> {
12704 encoder.debug_check_bounds::<StreamProcessorQueueInputEndOfStreamRequest>(offset);
12705 unsafe {
12706 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
12708 (buf_ptr as *mut StreamProcessorQueueInputEndOfStreamRequest).write_unaligned(
12709 (self as *const StreamProcessorQueueInputEndOfStreamRequest).read(),
12710 );
12711 }
12714 Ok(())
12715 }
12716 }
12717 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
12718 fidl::encoding::Encode<StreamProcessorQueueInputEndOfStreamRequest, D> for (T0,)
12719 {
12720 #[inline]
12721 unsafe fn encode(
12722 self,
12723 encoder: &mut fidl::encoding::Encoder<'_, D>,
12724 offset: usize,
12725 depth: fidl::encoding::Depth,
12726 ) -> fidl::Result<()> {
12727 encoder.debug_check_bounds::<StreamProcessorQueueInputEndOfStreamRequest>(offset);
12728 self.0.encode(encoder, offset + 0, depth)?;
12732 Ok(())
12733 }
12734 }
12735
12736 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12737 for StreamProcessorQueueInputEndOfStreamRequest
12738 {
12739 #[inline(always)]
12740 fn new_empty() -> Self {
12741 Self { stream_lifetime_ordinal: fidl::new_empty!(u64, D) }
12742 }
12743
12744 #[inline]
12745 unsafe fn decode(
12746 &mut self,
12747 decoder: &mut fidl::encoding::Decoder<'_, D>,
12748 offset: usize,
12749 _depth: fidl::encoding::Depth,
12750 ) -> fidl::Result<()> {
12751 decoder.debug_check_bounds::<Self>(offset);
12752 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
12753 unsafe {
12756 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
12757 }
12758 Ok(())
12759 }
12760 }
12761
12762 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputFormatDetailsRequest {
12763 type Borrowed<'a> = &'a Self;
12764 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12765 value
12766 }
12767 }
12768
12769 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputFormatDetailsRequest {
12770 type Owned = Self;
12771
12772 #[inline(always)]
12773 fn inline_align(_context: fidl::encoding::Context) -> usize {
12774 8
12775 }
12776
12777 #[inline(always)]
12778 fn inline_size(_context: fidl::encoding::Context) -> usize {
12779 24
12780 }
12781 }
12782
12783 unsafe impl<D: fidl::encoding::ResourceDialect>
12784 fidl::encoding::Encode<StreamProcessorQueueInputFormatDetailsRequest, D>
12785 for &StreamProcessorQueueInputFormatDetailsRequest
12786 {
12787 #[inline]
12788 unsafe fn encode(
12789 self,
12790 encoder: &mut fidl::encoding::Encoder<'_, D>,
12791 offset: usize,
12792 _depth: fidl::encoding::Depth,
12793 ) -> fidl::Result<()> {
12794 encoder.debug_check_bounds::<StreamProcessorQueueInputFormatDetailsRequest>(offset);
12795 fidl::encoding::Encode::<StreamProcessorQueueInputFormatDetailsRequest, D>::encode(
12797 (
12798 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_lifetime_ordinal),
12799 <FormatDetails as fidl::encoding::ValueTypeMarker>::borrow(
12800 &self.format_details,
12801 ),
12802 ),
12803 encoder,
12804 offset,
12805 _depth,
12806 )
12807 }
12808 }
12809 unsafe impl<
12810 D: fidl::encoding::ResourceDialect,
12811 T0: fidl::encoding::Encode<u64, D>,
12812 T1: fidl::encoding::Encode<FormatDetails, D>,
12813 > fidl::encoding::Encode<StreamProcessorQueueInputFormatDetailsRequest, D> for (T0, T1)
12814 {
12815 #[inline]
12816 unsafe fn encode(
12817 self,
12818 encoder: &mut fidl::encoding::Encoder<'_, D>,
12819 offset: usize,
12820 depth: fidl::encoding::Depth,
12821 ) -> fidl::Result<()> {
12822 encoder.debug_check_bounds::<StreamProcessorQueueInputFormatDetailsRequest>(offset);
12823 self.0.encode(encoder, offset + 0, depth)?;
12827 self.1.encode(encoder, offset + 8, depth)?;
12828 Ok(())
12829 }
12830 }
12831
12832 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12833 for StreamProcessorQueueInputFormatDetailsRequest
12834 {
12835 #[inline(always)]
12836 fn new_empty() -> Self {
12837 Self {
12838 stream_lifetime_ordinal: fidl::new_empty!(u64, D),
12839 format_details: fidl::new_empty!(FormatDetails, D),
12840 }
12841 }
12842
12843 #[inline]
12844 unsafe fn decode(
12845 &mut self,
12846 decoder: &mut fidl::encoding::Decoder<'_, D>,
12847 offset: usize,
12848 _depth: fidl::encoding::Depth,
12849 ) -> fidl::Result<()> {
12850 decoder.debug_check_bounds::<Self>(offset);
12851 fidl::decode!(u64, D, &mut self.stream_lifetime_ordinal, decoder, offset + 0, _depth)?;
12853 fidl::decode!(FormatDetails, D, &mut self.format_details, decoder, offset + 8, _depth)?;
12854 Ok(())
12855 }
12856 }
12857
12858 impl fidl::encoding::ValueTypeMarker for StreamProcessorQueueInputPacketRequest {
12859 type Borrowed<'a> = &'a Self;
12860 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12861 value
12862 }
12863 }
12864
12865 unsafe impl fidl::encoding::TypeMarker for StreamProcessorQueueInputPacketRequest {
12866 type Owned = Self;
12867
12868 #[inline(always)]
12869 fn inline_align(_context: fidl::encoding::Context) -> usize {
12870 8
12871 }
12872
12873 #[inline(always)]
12874 fn inline_size(_context: fidl::encoding::Context) -> usize {
12875 16
12876 }
12877 }
12878
12879 unsafe impl<D: fidl::encoding::ResourceDialect>
12880 fidl::encoding::Encode<StreamProcessorQueueInputPacketRequest, D>
12881 for &StreamProcessorQueueInputPacketRequest
12882 {
12883 #[inline]
12884 unsafe fn encode(
12885 self,
12886 encoder: &mut fidl::encoding::Encoder<'_, D>,
12887 offset: usize,
12888 _depth: fidl::encoding::Depth,
12889 ) -> fidl::Result<()> {
12890 encoder.debug_check_bounds::<StreamProcessorQueueInputPacketRequest>(offset);
12891 fidl::encoding::Encode::<StreamProcessorQueueInputPacketRequest, D>::encode(
12893 (<Packet as fidl::encoding::ValueTypeMarker>::borrow(&self.packet),),
12894 encoder,
12895 offset,
12896 _depth,
12897 )
12898 }
12899 }
12900 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<Packet, D>>
12901 fidl::encoding::Encode<StreamProcessorQueueInputPacketRequest, D> for (T0,)
12902 {
12903 #[inline]
12904 unsafe fn encode(
12905 self,
12906 encoder: &mut fidl::encoding::Encoder<'_, D>,
12907 offset: usize,
12908 depth: fidl::encoding::Depth,
12909 ) -> fidl::Result<()> {
12910 encoder.debug_check_bounds::<StreamProcessorQueueInputPacketRequest>(offset);
12911 self.0.encode(encoder, offset + 0, depth)?;
12915 Ok(())
12916 }
12917 }
12918
12919 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
12920 for StreamProcessorQueueInputPacketRequest
12921 {
12922 #[inline(always)]
12923 fn new_empty() -> Self {
12924 Self { packet: fidl::new_empty!(Packet, D) }
12925 }
12926
12927 #[inline]
12928 unsafe fn decode(
12929 &mut self,
12930 decoder: &mut fidl::encoding::Decoder<'_, D>,
12931 offset: usize,
12932 _depth: fidl::encoding::Depth,
12933 ) -> fidl::Result<()> {
12934 decoder.debug_check_bounds::<Self>(offset);
12935 fidl::decode!(Packet, D, &mut self.packet, decoder, offset + 0, _depth)?;
12937 Ok(())
12938 }
12939 }
12940
12941 impl fidl::encoding::ValueTypeMarker for StreamProcessorRecycleOutputPacketRequest {
12942 type Borrowed<'a> = &'a Self;
12943 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
12944 value
12945 }
12946 }
12947
12948 unsafe impl fidl::encoding::TypeMarker for StreamProcessorRecycleOutputPacketRequest {
12949 type Owned = Self;
12950
12951 #[inline(always)]
12952 fn inline_align(_context: fidl::encoding::Context) -> usize {
12953 8
12954 }
12955
12956 #[inline(always)]
12957 fn inline_size(_context: fidl::encoding::Context) -> usize {
12958 16
12959 }
12960 }
12961
12962 unsafe impl<D: fidl::encoding::ResourceDialect>
12963 fidl::encoding::Encode<StreamProcessorRecycleOutputPacketRequest, D>
12964 for &StreamProcessorRecycleOutputPacketRequest
12965 {
12966 #[inline]
12967 unsafe fn encode(
12968 self,
12969 encoder: &mut fidl::encoding::Encoder<'_, D>,
12970 offset: usize,
12971 _depth: fidl::encoding::Depth,
12972 ) -> fidl::Result<()> {
12973 encoder.debug_check_bounds::<StreamProcessorRecycleOutputPacketRequest>(offset);
12974 fidl::encoding::Encode::<StreamProcessorRecycleOutputPacketRequest, D>::encode(
12976 (<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow(
12977 &self.available_output_packet,
12978 ),),
12979 encoder,
12980 offset,
12981 _depth,
12982 )
12983 }
12984 }
12985 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<PacketHeader, D>>
12986 fidl::encoding::Encode<StreamProcessorRecycleOutputPacketRequest, D> for (T0,)
12987 {
12988 #[inline]
12989 unsafe fn encode(
12990 self,
12991 encoder: &mut fidl::encoding::Encoder<'_, D>,
12992 offset: usize,
12993 depth: fidl::encoding::Depth,
12994 ) -> fidl::Result<()> {
12995 encoder.debug_check_bounds::<StreamProcessorRecycleOutputPacketRequest>(offset);
12996 self.0.encode(encoder, offset + 0, depth)?;
13000 Ok(())
13001 }
13002 }
13003
13004 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13005 for StreamProcessorRecycleOutputPacketRequest
13006 {
13007 #[inline(always)]
13008 fn new_empty() -> Self {
13009 Self { available_output_packet: fidl::new_empty!(PacketHeader, D) }
13010 }
13011
13012 #[inline]
13013 unsafe fn decode(
13014 &mut self,
13015 decoder: &mut fidl::encoding::Decoder<'_, D>,
13016 offset: usize,
13017 _depth: fidl::encoding::Depth,
13018 ) -> fidl::Result<()> {
13019 decoder.debug_check_bounds::<Self>(offset);
13020 fidl::decode!(
13022 PacketHeader,
13023 D,
13024 &mut self.available_output_packet,
13025 decoder,
13026 offset + 0,
13027 _depth
13028 )?;
13029 Ok(())
13030 }
13031 }
13032
13033 impl fidl::encoding::ValueTypeMarker for StreamSinkSendPacketNoReplyRequest {
13034 type Borrowed<'a> = &'a Self;
13035 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13036 value
13037 }
13038 }
13039
13040 unsafe impl fidl::encoding::TypeMarker for StreamSinkSendPacketNoReplyRequest {
13041 type Owned = Self;
13042
13043 #[inline(always)]
13044 fn inline_align(_context: fidl::encoding::Context) -> usize {
13045 8
13046 }
13047
13048 #[inline(always)]
13049 fn inline_size(_context: fidl::encoding::Context) -> usize {
13050 56
13051 }
13052 }
13053
13054 unsafe impl<D: fidl::encoding::ResourceDialect>
13055 fidl::encoding::Encode<StreamSinkSendPacketNoReplyRequest, D>
13056 for &StreamSinkSendPacketNoReplyRequest
13057 {
13058 #[inline]
13059 unsafe fn encode(
13060 self,
13061 encoder: &mut fidl::encoding::Encoder<'_, D>,
13062 offset: usize,
13063 _depth: fidl::encoding::Depth,
13064 ) -> fidl::Result<()> {
13065 encoder.debug_check_bounds::<StreamSinkSendPacketNoReplyRequest>(offset);
13066 unsafe {
13067 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13069 (buf_ptr as *mut StreamSinkSendPacketNoReplyRequest)
13070 .write_unaligned((self as *const StreamSinkSendPacketNoReplyRequest).read());
13071 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13074 let padding_mask = 0xffffffff00000000u64;
13075 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13076 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13077 let padding_mask = 0xffffffff00000000u64;
13078 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13079 }
13080 Ok(())
13081 }
13082 }
13083 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13084 fidl::encoding::Encode<StreamSinkSendPacketNoReplyRequest, D> for (T0,)
13085 {
13086 #[inline]
13087 unsafe fn encode(
13088 self,
13089 encoder: &mut fidl::encoding::Encoder<'_, D>,
13090 offset: usize,
13091 depth: fidl::encoding::Depth,
13092 ) -> fidl::Result<()> {
13093 encoder.debug_check_bounds::<StreamSinkSendPacketNoReplyRequest>(offset);
13094 self.0.encode(encoder, offset + 0, depth)?;
13098 Ok(())
13099 }
13100 }
13101
13102 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13103 for StreamSinkSendPacketNoReplyRequest
13104 {
13105 #[inline(always)]
13106 fn new_empty() -> Self {
13107 Self { packet: fidl::new_empty!(StreamPacket, D) }
13108 }
13109
13110 #[inline]
13111 unsafe fn decode(
13112 &mut self,
13113 decoder: &mut fidl::encoding::Decoder<'_, D>,
13114 offset: usize,
13115 _depth: fidl::encoding::Depth,
13116 ) -> fidl::Result<()> {
13117 decoder.debug_check_bounds::<Self>(offset);
13118 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13119 let ptr = unsafe { buf_ptr.offset(8) };
13121 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13122 let mask = 0xffffffff00000000u64;
13123 let maskedval = padval & mask;
13124 if maskedval != 0 {
13125 return Err(fidl::Error::NonZeroPadding {
13126 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13127 });
13128 }
13129 let ptr = unsafe { buf_ptr.offset(32) };
13130 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13131 let mask = 0xffffffff00000000u64;
13132 let maskedval = padval & mask;
13133 if maskedval != 0 {
13134 return Err(fidl::Error::NonZeroPadding {
13135 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13136 });
13137 }
13138 unsafe {
13140 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13141 }
13142 Ok(())
13143 }
13144 }
13145
13146 impl fidl::encoding::ValueTypeMarker for StreamSinkSendPacketRequest {
13147 type Borrowed<'a> = &'a Self;
13148 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13149 value
13150 }
13151 }
13152
13153 unsafe impl fidl::encoding::TypeMarker for StreamSinkSendPacketRequest {
13154 type Owned = Self;
13155
13156 #[inline(always)]
13157 fn inline_align(_context: fidl::encoding::Context) -> usize {
13158 8
13159 }
13160
13161 #[inline(always)]
13162 fn inline_size(_context: fidl::encoding::Context) -> usize {
13163 56
13164 }
13165 }
13166
13167 unsafe impl<D: fidl::encoding::ResourceDialect>
13168 fidl::encoding::Encode<StreamSinkSendPacketRequest, D> for &StreamSinkSendPacketRequest
13169 {
13170 #[inline]
13171 unsafe fn encode(
13172 self,
13173 encoder: &mut fidl::encoding::Encoder<'_, D>,
13174 offset: usize,
13175 _depth: fidl::encoding::Depth,
13176 ) -> fidl::Result<()> {
13177 encoder.debug_check_bounds::<StreamSinkSendPacketRequest>(offset);
13178 unsafe {
13179 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13181 (buf_ptr as *mut StreamSinkSendPacketRequest)
13182 .write_unaligned((self as *const StreamSinkSendPacketRequest).read());
13183 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13186 let padding_mask = 0xffffffff00000000u64;
13187 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13188 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13189 let padding_mask = 0xffffffff00000000u64;
13190 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13191 }
13192 Ok(())
13193 }
13194 }
13195 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13196 fidl::encoding::Encode<StreamSinkSendPacketRequest, D> for (T0,)
13197 {
13198 #[inline]
13199 unsafe fn encode(
13200 self,
13201 encoder: &mut fidl::encoding::Encoder<'_, D>,
13202 offset: usize,
13203 depth: fidl::encoding::Depth,
13204 ) -> fidl::Result<()> {
13205 encoder.debug_check_bounds::<StreamSinkSendPacketRequest>(offset);
13206 self.0.encode(encoder, offset + 0, depth)?;
13210 Ok(())
13211 }
13212 }
13213
13214 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13215 for StreamSinkSendPacketRequest
13216 {
13217 #[inline(always)]
13218 fn new_empty() -> Self {
13219 Self { packet: fidl::new_empty!(StreamPacket, D) }
13220 }
13221
13222 #[inline]
13223 unsafe fn decode(
13224 &mut self,
13225 decoder: &mut fidl::encoding::Decoder<'_, D>,
13226 offset: usize,
13227 _depth: fidl::encoding::Depth,
13228 ) -> fidl::Result<()> {
13229 decoder.debug_check_bounds::<Self>(offset);
13230 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13231 let ptr = unsafe { buf_ptr.offset(8) };
13233 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13234 let mask = 0xffffffff00000000u64;
13235 let maskedval = padval & mask;
13236 if maskedval != 0 {
13237 return Err(fidl::Error::NonZeroPadding {
13238 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13239 });
13240 }
13241 let ptr = unsafe { buf_ptr.offset(32) };
13242 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13243 let mask = 0xffffffff00000000u64;
13244 let maskedval = padval & mask;
13245 if maskedval != 0 {
13246 return Err(fidl::Error::NonZeroPadding {
13247 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13248 });
13249 }
13250 unsafe {
13252 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13253 }
13254 Ok(())
13255 }
13256 }
13257
13258 impl fidl::encoding::ValueTypeMarker for StreamSourceOnPacketProducedRequest {
13259 type Borrowed<'a> = &'a Self;
13260 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13261 value
13262 }
13263 }
13264
13265 unsafe impl fidl::encoding::TypeMarker for StreamSourceOnPacketProducedRequest {
13266 type Owned = Self;
13267
13268 #[inline(always)]
13269 fn inline_align(_context: fidl::encoding::Context) -> usize {
13270 8
13271 }
13272
13273 #[inline(always)]
13274 fn inline_size(_context: fidl::encoding::Context) -> usize {
13275 56
13276 }
13277 }
13278
13279 unsafe impl<D: fidl::encoding::ResourceDialect>
13280 fidl::encoding::Encode<StreamSourceOnPacketProducedRequest, D>
13281 for &StreamSourceOnPacketProducedRequest
13282 {
13283 #[inline]
13284 unsafe fn encode(
13285 self,
13286 encoder: &mut fidl::encoding::Encoder<'_, D>,
13287 offset: usize,
13288 _depth: fidl::encoding::Depth,
13289 ) -> fidl::Result<()> {
13290 encoder.debug_check_bounds::<StreamSourceOnPacketProducedRequest>(offset);
13291 unsafe {
13292 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13294 (buf_ptr as *mut StreamSourceOnPacketProducedRequest)
13295 .write_unaligned((self as *const StreamSourceOnPacketProducedRequest).read());
13296 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13299 let padding_mask = 0xffffffff00000000u64;
13300 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13301 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13302 let padding_mask = 0xffffffff00000000u64;
13303 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13304 }
13305 Ok(())
13306 }
13307 }
13308 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13309 fidl::encoding::Encode<StreamSourceOnPacketProducedRequest, D> for (T0,)
13310 {
13311 #[inline]
13312 unsafe fn encode(
13313 self,
13314 encoder: &mut fidl::encoding::Encoder<'_, D>,
13315 offset: usize,
13316 depth: fidl::encoding::Depth,
13317 ) -> fidl::Result<()> {
13318 encoder.debug_check_bounds::<StreamSourceOnPacketProducedRequest>(offset);
13319 self.0.encode(encoder, offset + 0, depth)?;
13323 Ok(())
13324 }
13325 }
13326
13327 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13328 for StreamSourceOnPacketProducedRequest
13329 {
13330 #[inline(always)]
13331 fn new_empty() -> Self {
13332 Self { packet: fidl::new_empty!(StreamPacket, D) }
13333 }
13334
13335 #[inline]
13336 unsafe fn decode(
13337 &mut self,
13338 decoder: &mut fidl::encoding::Decoder<'_, D>,
13339 offset: usize,
13340 _depth: fidl::encoding::Depth,
13341 ) -> fidl::Result<()> {
13342 decoder.debug_check_bounds::<Self>(offset);
13343 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13344 let ptr = unsafe { buf_ptr.offset(8) };
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 + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13352 });
13353 }
13354 let ptr = unsafe { buf_ptr.offset(32) };
13355 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13356 let mask = 0xffffffff00000000u64;
13357 let maskedval = padval & mask;
13358 if maskedval != 0 {
13359 return Err(fidl::Error::NonZeroPadding {
13360 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13361 });
13362 }
13363 unsafe {
13365 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13366 }
13367 Ok(())
13368 }
13369 }
13370
13371 impl fidl::encoding::ValueTypeMarker for StreamSourceReleasePacketRequest {
13372 type Borrowed<'a> = &'a Self;
13373 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13374 value
13375 }
13376 }
13377
13378 unsafe impl fidl::encoding::TypeMarker for StreamSourceReleasePacketRequest {
13379 type Owned = Self;
13380
13381 #[inline(always)]
13382 fn inline_align(_context: fidl::encoding::Context) -> usize {
13383 8
13384 }
13385
13386 #[inline(always)]
13387 fn inline_size(_context: fidl::encoding::Context) -> usize {
13388 56
13389 }
13390 }
13391
13392 unsafe impl<D: fidl::encoding::ResourceDialect>
13393 fidl::encoding::Encode<StreamSourceReleasePacketRequest, D>
13394 for &StreamSourceReleasePacketRequest
13395 {
13396 #[inline]
13397 unsafe fn encode(
13398 self,
13399 encoder: &mut fidl::encoding::Encoder<'_, D>,
13400 offset: usize,
13401 _depth: fidl::encoding::Depth,
13402 ) -> fidl::Result<()> {
13403 encoder.debug_check_bounds::<StreamSourceReleasePacketRequest>(offset);
13404 unsafe {
13405 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13407 (buf_ptr as *mut StreamSourceReleasePacketRequest)
13408 .write_unaligned((self as *const StreamSourceReleasePacketRequest).read());
13409 let padding_ptr = buf_ptr.offset(8) as *mut u64;
13412 let padding_mask = 0xffffffff00000000u64;
13413 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13414 let padding_ptr = buf_ptr.offset(32) as *mut u64;
13415 let padding_mask = 0xffffffff00000000u64;
13416 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
13417 }
13418 Ok(())
13419 }
13420 }
13421 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StreamPacket, D>>
13422 fidl::encoding::Encode<StreamSourceReleasePacketRequest, D> for (T0,)
13423 {
13424 #[inline]
13425 unsafe fn encode(
13426 self,
13427 encoder: &mut fidl::encoding::Encoder<'_, D>,
13428 offset: usize,
13429 depth: fidl::encoding::Depth,
13430 ) -> fidl::Result<()> {
13431 encoder.debug_check_bounds::<StreamSourceReleasePacketRequest>(offset);
13432 self.0.encode(encoder, offset + 0, depth)?;
13436 Ok(())
13437 }
13438 }
13439
13440 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
13441 for StreamSourceReleasePacketRequest
13442 {
13443 #[inline(always)]
13444 fn new_empty() -> Self {
13445 Self { packet: fidl::new_empty!(StreamPacket, D) }
13446 }
13447
13448 #[inline]
13449 unsafe fn decode(
13450 &mut self,
13451 decoder: &mut fidl::encoding::Decoder<'_, D>,
13452 offset: usize,
13453 _depth: fidl::encoding::Depth,
13454 ) -> fidl::Result<()> {
13455 decoder.debug_check_bounds::<Self>(offset);
13456 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13457 let ptr = unsafe { buf_ptr.offset(8) };
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 + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
13465 });
13466 }
13467 let ptr = unsafe { buf_ptr.offset(32) };
13468 let padval = unsafe { (ptr as *const u64).read_unaligned() };
13469 let mask = 0xffffffff00000000u64;
13470 let maskedval = padval & mask;
13471 if maskedval != 0 {
13472 return Err(fidl::Error::NonZeroPadding {
13473 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
13474 });
13475 }
13476 unsafe {
13478 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 56);
13479 }
13480 Ok(())
13481 }
13482 }
13483
13484 impl fidl::encoding::ValueTypeMarker for StreamType {
13485 type Borrowed<'a> = &'a Self;
13486 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13487 value
13488 }
13489 }
13490
13491 unsafe impl fidl::encoding::TypeMarker for StreamType {
13492 type Owned = Self;
13493
13494 #[inline(always)]
13495 fn inline_align(_context: fidl::encoding::Context) -> usize {
13496 8
13497 }
13498
13499 #[inline(always)]
13500 fn inline_size(_context: fidl::encoding::Context) -> usize {
13501 48
13502 }
13503 }
13504
13505 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamType, D>
13506 for &StreamType
13507 {
13508 #[inline]
13509 unsafe fn encode(
13510 self,
13511 encoder: &mut fidl::encoding::Encoder<'_, D>,
13512 offset: usize,
13513 _depth: fidl::encoding::Depth,
13514 ) -> fidl::Result<()> {
13515 encoder.debug_check_bounds::<StreamType>(offset);
13516 fidl::encoding::Encode::<StreamType, D>::encode(
13518 (
13519 <MediumSpecificStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.medium_specific),
13520 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding),
13521 <fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>> as fidl::encoding::ValueTypeMarker>::borrow(&self.encoding_parameters),
13522 ),
13523 encoder, offset, _depth
13524 )
13525 }
13526 }
13527 unsafe impl<
13528 D: fidl::encoding::ResourceDialect,
13529 T0: fidl::encoding::Encode<MediumSpecificStreamType, D>,
13530 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<255>, D>,
13531 T2: fidl::encoding::Encode<
13532 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13533 D,
13534 >,
13535 > fidl::encoding::Encode<StreamType, D> for (T0, T1, T2)
13536 {
13537 #[inline]
13538 unsafe fn encode(
13539 self,
13540 encoder: &mut fidl::encoding::Encoder<'_, D>,
13541 offset: usize,
13542 depth: fidl::encoding::Depth,
13543 ) -> fidl::Result<()> {
13544 encoder.debug_check_bounds::<StreamType>(offset);
13545 self.0.encode(encoder, offset + 0, depth)?;
13549 self.1.encode(encoder, offset + 16, depth)?;
13550 self.2.encode(encoder, offset + 32, depth)?;
13551 Ok(())
13552 }
13553 }
13554
13555 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamType {
13556 #[inline(always)]
13557 fn new_empty() -> Self {
13558 Self {
13559 medium_specific: fidl::new_empty!(MediumSpecificStreamType, D),
13560 encoding: fidl::new_empty!(fidl::encoding::BoundedString<255>, D),
13561 encoding_parameters: fidl::new_empty!(
13562 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13563 D
13564 ),
13565 }
13566 }
13567
13568 #[inline]
13569 unsafe fn decode(
13570 &mut self,
13571 decoder: &mut fidl::encoding::Decoder<'_, D>,
13572 offset: usize,
13573 _depth: fidl::encoding::Depth,
13574 ) -> fidl::Result<()> {
13575 decoder.debug_check_bounds::<Self>(offset);
13576 fidl::decode!(
13578 MediumSpecificStreamType,
13579 D,
13580 &mut self.medium_specific,
13581 decoder,
13582 offset + 0,
13583 _depth
13584 )?;
13585 fidl::decode!(
13586 fidl::encoding::BoundedString<255>,
13587 D,
13588 &mut self.encoding,
13589 decoder,
13590 offset + 16,
13591 _depth
13592 )?;
13593 fidl::decode!(
13594 fidl::encoding::Optional<fidl::encoding::UnboundedVector<u8>>,
13595 D,
13596 &mut self.encoding_parameters,
13597 decoder,
13598 offset + 32,
13599 _depth
13600 )?;
13601 Ok(())
13602 }
13603 }
13604
13605 impl fidl::encoding::ValueTypeMarker for SubpictureStreamType {
13606 type Borrowed<'a> = &'a Self;
13607 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13608 value
13609 }
13610 }
13611
13612 unsafe impl fidl::encoding::TypeMarker for SubpictureStreamType {
13613 type Owned = Self;
13614
13615 #[inline(always)]
13616 fn inline_align(_context: fidl::encoding::Context) -> usize {
13617 1
13618 }
13619
13620 #[inline(always)]
13621 fn inline_size(_context: fidl::encoding::Context) -> usize {
13622 1
13623 }
13624 }
13625
13626 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubpictureStreamType, D>
13627 for &SubpictureStreamType
13628 {
13629 #[inline]
13630 unsafe fn encode(
13631 self,
13632 encoder: &mut fidl::encoding::Encoder<'_, D>,
13633 offset: usize,
13634 _depth: fidl::encoding::Depth,
13635 ) -> fidl::Result<()> {
13636 encoder.debug_check_bounds::<SubpictureStreamType>(offset);
13637 encoder.write_num(0u8, offset);
13638 Ok(())
13639 }
13640 }
13641
13642 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubpictureStreamType {
13643 #[inline(always)]
13644 fn new_empty() -> Self {
13645 Self
13646 }
13647
13648 #[inline]
13649 unsafe fn decode(
13650 &mut self,
13651 decoder: &mut fidl::encoding::Decoder<'_, D>,
13652 offset: usize,
13653 _depth: fidl::encoding::Depth,
13654 ) -> fidl::Result<()> {
13655 decoder.debug_check_bounds::<Self>(offset);
13656 match decoder.read_num::<u8>(offset) {
13657 0 => Ok(()),
13658 _ => Err(fidl::Error::Invalid),
13659 }
13660 }
13661 }
13662
13663 impl fidl::encoding::ValueTypeMarker for SubsampleEntry {
13664 type Borrowed<'a> = &'a Self;
13665 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13666 value
13667 }
13668 }
13669
13670 unsafe impl fidl::encoding::TypeMarker for SubsampleEntry {
13671 type Owned = Self;
13672
13673 #[inline(always)]
13674 fn inline_align(_context: fidl::encoding::Context) -> usize {
13675 4
13676 }
13677
13678 #[inline(always)]
13679 fn inline_size(_context: fidl::encoding::Context) -> usize {
13680 8
13681 }
13682 #[inline(always)]
13683 fn encode_is_copy() -> bool {
13684 true
13685 }
13686
13687 #[inline(always)]
13688 fn decode_is_copy() -> bool {
13689 true
13690 }
13691 }
13692
13693 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SubsampleEntry, D>
13694 for &SubsampleEntry
13695 {
13696 #[inline]
13697 unsafe fn encode(
13698 self,
13699 encoder: &mut fidl::encoding::Encoder<'_, D>,
13700 offset: usize,
13701 _depth: fidl::encoding::Depth,
13702 ) -> fidl::Result<()> {
13703 encoder.debug_check_bounds::<SubsampleEntry>(offset);
13704 unsafe {
13705 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13707 (buf_ptr as *mut SubsampleEntry)
13708 .write_unaligned((self as *const SubsampleEntry).read());
13709 }
13712 Ok(())
13713 }
13714 }
13715 unsafe impl<
13716 D: fidl::encoding::ResourceDialect,
13717 T0: fidl::encoding::Encode<u32, D>,
13718 T1: fidl::encoding::Encode<u32, D>,
13719 > fidl::encoding::Encode<SubsampleEntry, D> for (T0, T1)
13720 {
13721 #[inline]
13722 unsafe fn encode(
13723 self,
13724 encoder: &mut fidl::encoding::Encoder<'_, D>,
13725 offset: usize,
13726 depth: fidl::encoding::Depth,
13727 ) -> fidl::Result<()> {
13728 encoder.debug_check_bounds::<SubsampleEntry>(offset);
13729 self.0.encode(encoder, offset + 0, depth)?;
13733 self.1.encode(encoder, offset + 4, depth)?;
13734 Ok(())
13735 }
13736 }
13737
13738 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SubsampleEntry {
13739 #[inline(always)]
13740 fn new_empty() -> Self {
13741 Self {
13742 clear_bytes: fidl::new_empty!(u32, D),
13743 encrypted_bytes: fidl::new_empty!(u32, D),
13744 }
13745 }
13746
13747 #[inline]
13748 unsafe fn decode(
13749 &mut self,
13750 decoder: &mut fidl::encoding::Decoder<'_, D>,
13751 offset: usize,
13752 _depth: fidl::encoding::Depth,
13753 ) -> fidl::Result<()> {
13754 decoder.debug_check_bounds::<Self>(offset);
13755 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13756 unsafe {
13759 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
13760 }
13761 Ok(())
13762 }
13763 }
13764
13765 impl fidl::encoding::ValueTypeMarker for TextStreamType {
13766 type Borrowed<'a> = &'a Self;
13767 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13768 value
13769 }
13770 }
13771
13772 unsafe impl fidl::encoding::TypeMarker for TextStreamType {
13773 type Owned = Self;
13774
13775 #[inline(always)]
13776 fn inline_align(_context: fidl::encoding::Context) -> usize {
13777 1
13778 }
13779
13780 #[inline(always)]
13781 fn inline_size(_context: fidl::encoding::Context) -> usize {
13782 1
13783 }
13784 }
13785
13786 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TextStreamType, D>
13787 for &TextStreamType
13788 {
13789 #[inline]
13790 unsafe fn encode(
13791 self,
13792 encoder: &mut fidl::encoding::Encoder<'_, D>,
13793 offset: usize,
13794 _depth: fidl::encoding::Depth,
13795 ) -> fidl::Result<()> {
13796 encoder.debug_check_bounds::<TextStreamType>(offset);
13797 encoder.write_num(0u8, offset);
13798 Ok(())
13799 }
13800 }
13801
13802 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TextStreamType {
13803 #[inline(always)]
13804 fn new_empty() -> Self {
13805 Self
13806 }
13807
13808 #[inline]
13809 unsafe fn decode(
13810 &mut self,
13811 decoder: &mut fidl::encoding::Decoder<'_, D>,
13812 offset: usize,
13813 _depth: fidl::encoding::Depth,
13814 ) -> fidl::Result<()> {
13815 decoder.debug_check_bounds::<Self>(offset);
13816 match decoder.read_num::<u8>(offset) {
13817 0 => Ok(()),
13818 _ => Err(fidl::Error::Invalid),
13819 }
13820 }
13821 }
13822
13823 impl fidl::encoding::ValueTypeMarker for TimelineFunction {
13824 type Borrowed<'a> = &'a Self;
13825 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13826 value
13827 }
13828 }
13829
13830 unsafe impl fidl::encoding::TypeMarker for TimelineFunction {
13831 type Owned = Self;
13832
13833 #[inline(always)]
13834 fn inline_align(_context: fidl::encoding::Context) -> usize {
13835 8
13836 }
13837
13838 #[inline(always)]
13839 fn inline_size(_context: fidl::encoding::Context) -> usize {
13840 24
13841 }
13842 #[inline(always)]
13843 fn encode_is_copy() -> bool {
13844 true
13845 }
13846
13847 #[inline(always)]
13848 fn decode_is_copy() -> bool {
13849 true
13850 }
13851 }
13852
13853 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<TimelineFunction, D>
13854 for &TimelineFunction
13855 {
13856 #[inline]
13857 unsafe fn encode(
13858 self,
13859 encoder: &mut fidl::encoding::Encoder<'_, D>,
13860 offset: usize,
13861 _depth: fidl::encoding::Depth,
13862 ) -> fidl::Result<()> {
13863 encoder.debug_check_bounds::<TimelineFunction>(offset);
13864 unsafe {
13865 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
13867 (buf_ptr as *mut TimelineFunction)
13868 .write_unaligned((self as *const TimelineFunction).read());
13869 }
13872 Ok(())
13873 }
13874 }
13875 unsafe impl<
13876 D: fidl::encoding::ResourceDialect,
13877 T0: fidl::encoding::Encode<i64, D>,
13878 T1: fidl::encoding::Encode<i64, D>,
13879 T2: fidl::encoding::Encode<u32, D>,
13880 T3: fidl::encoding::Encode<u32, D>,
13881 > fidl::encoding::Encode<TimelineFunction, D> for (T0, T1, T2, T3)
13882 {
13883 #[inline]
13884 unsafe fn encode(
13885 self,
13886 encoder: &mut fidl::encoding::Encoder<'_, D>,
13887 offset: usize,
13888 depth: fidl::encoding::Depth,
13889 ) -> fidl::Result<()> {
13890 encoder.debug_check_bounds::<TimelineFunction>(offset);
13891 self.0.encode(encoder, offset + 0, depth)?;
13895 self.1.encode(encoder, offset + 8, depth)?;
13896 self.2.encode(encoder, offset + 16, depth)?;
13897 self.3.encode(encoder, offset + 20, depth)?;
13898 Ok(())
13899 }
13900 }
13901
13902 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for TimelineFunction {
13903 #[inline(always)]
13904 fn new_empty() -> Self {
13905 Self {
13906 subject_time: fidl::new_empty!(i64, D),
13907 reference_time: fidl::new_empty!(i64, D),
13908 subject_delta: fidl::new_empty!(u32, D),
13909 reference_delta: fidl::new_empty!(u32, D),
13910 }
13911 }
13912
13913 #[inline]
13914 unsafe fn decode(
13915 &mut self,
13916 decoder: &mut fidl::encoding::Decoder<'_, D>,
13917 offset: usize,
13918 _depth: fidl::encoding::Depth,
13919 ) -> fidl::Result<()> {
13920 decoder.debug_check_bounds::<Self>(offset);
13921 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
13922 unsafe {
13925 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 24);
13926 }
13927 Ok(())
13928 }
13929 }
13930
13931 impl fidl::encoding::ValueTypeMarker for UsageGainListenerOnGainMuteChangedRequest {
13932 type Borrowed<'a> = &'a Self;
13933 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
13934 value
13935 }
13936 }
13937
13938 unsafe impl fidl::encoding::TypeMarker for UsageGainListenerOnGainMuteChangedRequest {
13939 type Owned = Self;
13940
13941 #[inline(always)]
13942 fn inline_align(_context: fidl::encoding::Context) -> usize {
13943 4
13944 }
13945
13946 #[inline(always)]
13947 fn inline_size(_context: fidl::encoding::Context) -> usize {
13948 8
13949 }
13950 }
13951
13952 unsafe impl<D: fidl::encoding::ResourceDialect>
13953 fidl::encoding::Encode<UsageGainListenerOnGainMuteChangedRequest, D>
13954 for &UsageGainListenerOnGainMuteChangedRequest
13955 {
13956 #[inline]
13957 unsafe fn encode(
13958 self,
13959 encoder: &mut fidl::encoding::Encoder<'_, D>,
13960 offset: usize,
13961 _depth: fidl::encoding::Depth,
13962 ) -> fidl::Result<()> {
13963 encoder.debug_check_bounds::<UsageGainListenerOnGainMuteChangedRequest>(offset);
13964 fidl::encoding::Encode::<UsageGainListenerOnGainMuteChangedRequest, D>::encode(
13966 (
13967 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.muted),
13968 <f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.gain_dbfs),
13969 ),
13970 encoder,
13971 offset,
13972 _depth,
13973 )
13974 }
13975 }
13976 unsafe impl<
13977 D: fidl::encoding::ResourceDialect,
13978 T0: fidl::encoding::Encode<bool, D>,
13979 T1: fidl::encoding::Encode<f32, D>,
13980 > fidl::encoding::Encode<UsageGainListenerOnGainMuteChangedRequest, D> for (T0, T1)
13981 {
13982 #[inline]
13983 unsafe fn encode(
13984 self,
13985 encoder: &mut fidl::encoding::Encoder<'_, D>,
13986 offset: usize,
13987 depth: fidl::encoding::Depth,
13988 ) -> fidl::Result<()> {
13989 encoder.debug_check_bounds::<UsageGainListenerOnGainMuteChangedRequest>(offset);
13990 unsafe {
13993 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
13994 (ptr as *mut u32).write_unaligned(0);
13995 }
13996 self.0.encode(encoder, offset + 0, depth)?;
13998 self.1.encode(encoder, offset + 4, depth)?;
13999 Ok(())
14000 }
14001 }
14002
14003 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14004 for UsageGainListenerOnGainMuteChangedRequest
14005 {
14006 #[inline(always)]
14007 fn new_empty() -> Self {
14008 Self { muted: fidl::new_empty!(bool, D), gain_dbfs: fidl::new_empty!(f32, D) }
14009 }
14010
14011 #[inline]
14012 unsafe fn decode(
14013 &mut self,
14014 decoder: &mut fidl::encoding::Decoder<'_, D>,
14015 offset: usize,
14016 _depth: fidl::encoding::Depth,
14017 ) -> fidl::Result<()> {
14018 decoder.debug_check_bounds::<Self>(offset);
14019 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
14021 let padval = unsafe { (ptr as *const u32).read_unaligned() };
14022 let mask = 0xffffff00u32;
14023 let maskedval = padval & mask;
14024 if maskedval != 0 {
14025 return Err(fidl::Error::NonZeroPadding {
14026 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
14027 });
14028 }
14029 fidl::decode!(bool, D, &mut self.muted, decoder, offset + 0, _depth)?;
14030 fidl::decode!(f32, D, &mut self.gain_dbfs, decoder, offset + 4, _depth)?;
14031 Ok(())
14032 }
14033 }
14034
14035 impl fidl::encoding::ValueTypeMarker for UsageWatcher2OnStateChangedRequest {
14036 type Borrowed<'a> = &'a Self;
14037 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14038 value
14039 }
14040 }
14041
14042 unsafe impl fidl::encoding::TypeMarker for UsageWatcher2OnStateChangedRequest {
14043 type Owned = Self;
14044
14045 #[inline(always)]
14046 fn inline_align(_context: fidl::encoding::Context) -> usize {
14047 8
14048 }
14049
14050 #[inline(always)]
14051 fn inline_size(_context: fidl::encoding::Context) -> usize {
14052 32
14053 }
14054 }
14055
14056 unsafe impl<D: fidl::encoding::ResourceDialect>
14057 fidl::encoding::Encode<UsageWatcher2OnStateChangedRequest, D>
14058 for &UsageWatcher2OnStateChangedRequest
14059 {
14060 #[inline]
14061 unsafe fn encode(
14062 self,
14063 encoder: &mut fidl::encoding::Encoder<'_, D>,
14064 offset: usize,
14065 _depth: fidl::encoding::Depth,
14066 ) -> fidl::Result<()> {
14067 encoder.debug_check_bounds::<UsageWatcher2OnStateChangedRequest>(offset);
14068 fidl::encoding::Encode::<UsageWatcher2OnStateChangedRequest, D>::encode(
14070 (
14071 <Usage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
14072 <UsageState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
14073 ),
14074 encoder,
14075 offset,
14076 _depth,
14077 )
14078 }
14079 }
14080 unsafe impl<
14081 D: fidl::encoding::ResourceDialect,
14082 T0: fidl::encoding::Encode<Usage2, D>,
14083 T1: fidl::encoding::Encode<UsageState, D>,
14084 > fidl::encoding::Encode<UsageWatcher2OnStateChangedRequest, D> for (T0, T1)
14085 {
14086 #[inline]
14087 unsafe fn encode(
14088 self,
14089 encoder: &mut fidl::encoding::Encoder<'_, D>,
14090 offset: usize,
14091 depth: fidl::encoding::Depth,
14092 ) -> fidl::Result<()> {
14093 encoder.debug_check_bounds::<UsageWatcher2OnStateChangedRequest>(offset);
14094 self.0.encode(encoder, offset + 0, depth)?;
14098 self.1.encode(encoder, offset + 16, depth)?;
14099 Ok(())
14100 }
14101 }
14102
14103 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14104 for UsageWatcher2OnStateChangedRequest
14105 {
14106 #[inline(always)]
14107 fn new_empty() -> Self {
14108 Self { usage: fidl::new_empty!(Usage2, D), state: fidl::new_empty!(UsageState, D) }
14109 }
14110
14111 #[inline]
14112 unsafe fn decode(
14113 &mut self,
14114 decoder: &mut fidl::encoding::Decoder<'_, D>,
14115 offset: usize,
14116 _depth: fidl::encoding::Depth,
14117 ) -> fidl::Result<()> {
14118 decoder.debug_check_bounds::<Self>(offset);
14119 fidl::decode!(Usage2, D, &mut self.usage, decoder, offset + 0, _depth)?;
14121 fidl::decode!(UsageState, D, &mut self.state, decoder, offset + 16, _depth)?;
14122 Ok(())
14123 }
14124 }
14125
14126 impl fidl::encoding::ValueTypeMarker for UsageWatcherOnStateChangedRequest {
14127 type Borrowed<'a> = &'a Self;
14128 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14129 value
14130 }
14131 }
14132
14133 unsafe impl fidl::encoding::TypeMarker for UsageWatcherOnStateChangedRequest {
14134 type Owned = Self;
14135
14136 #[inline(always)]
14137 fn inline_align(_context: fidl::encoding::Context) -> usize {
14138 8
14139 }
14140
14141 #[inline(always)]
14142 fn inline_size(_context: fidl::encoding::Context) -> usize {
14143 32
14144 }
14145 }
14146
14147 unsafe impl<D: fidl::encoding::ResourceDialect>
14148 fidl::encoding::Encode<UsageWatcherOnStateChangedRequest, D>
14149 for &UsageWatcherOnStateChangedRequest
14150 {
14151 #[inline]
14152 unsafe fn encode(
14153 self,
14154 encoder: &mut fidl::encoding::Encoder<'_, D>,
14155 offset: usize,
14156 _depth: fidl::encoding::Depth,
14157 ) -> fidl::Result<()> {
14158 encoder.debug_check_bounds::<UsageWatcherOnStateChangedRequest>(offset);
14159 fidl::encoding::Encode::<UsageWatcherOnStateChangedRequest, D>::encode(
14161 (
14162 <Usage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
14163 <UsageState as fidl::encoding::ValueTypeMarker>::borrow(&self.state),
14164 ),
14165 encoder,
14166 offset,
14167 _depth,
14168 )
14169 }
14170 }
14171 unsafe impl<
14172 D: fidl::encoding::ResourceDialect,
14173 T0: fidl::encoding::Encode<Usage, D>,
14174 T1: fidl::encoding::Encode<UsageState, D>,
14175 > fidl::encoding::Encode<UsageWatcherOnStateChangedRequest, D> for (T0, T1)
14176 {
14177 #[inline]
14178 unsafe fn encode(
14179 self,
14180 encoder: &mut fidl::encoding::Encoder<'_, D>,
14181 offset: usize,
14182 depth: fidl::encoding::Depth,
14183 ) -> fidl::Result<()> {
14184 encoder.debug_check_bounds::<UsageWatcherOnStateChangedRequest>(offset);
14185 self.0.encode(encoder, offset + 0, depth)?;
14189 self.1.encode(encoder, offset + 16, depth)?;
14190 Ok(())
14191 }
14192 }
14193
14194 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14195 for UsageWatcherOnStateChangedRequest
14196 {
14197 #[inline(always)]
14198 fn new_empty() -> Self {
14199 Self { usage: fidl::new_empty!(Usage, D), state: fidl::new_empty!(UsageState, D) }
14200 }
14201
14202 #[inline]
14203 unsafe fn decode(
14204 &mut self,
14205 decoder: &mut fidl::encoding::Decoder<'_, D>,
14206 offset: usize,
14207 _depth: fidl::encoding::Depth,
14208 ) -> fidl::Result<()> {
14209 decoder.debug_check_bounds::<Self>(offset);
14210 fidl::decode!(Usage, D, &mut self.usage, decoder, offset + 0, _depth)?;
14212 fidl::decode!(UsageState, D, &mut self.state, decoder, offset + 16, _depth)?;
14213 Ok(())
14214 }
14215 }
14216
14217 impl fidl::encoding::ValueTypeMarker for VideoStreamType {
14218 type Borrowed<'a> = &'a Self;
14219 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14220 value
14221 }
14222 }
14223
14224 unsafe impl fidl::encoding::TypeMarker for VideoStreamType {
14225 type Owned = Self;
14226
14227 #[inline(always)]
14228 fn inline_align(_context: fidl::encoding::Context) -> usize {
14229 4
14230 }
14231
14232 #[inline(always)]
14233 fn inline_size(_context: fidl::encoding::Context) -> usize {
14234 36
14235 }
14236 }
14237
14238 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoStreamType, D>
14239 for &VideoStreamType
14240 {
14241 #[inline]
14242 unsafe fn encode(
14243 self,
14244 encoder: &mut fidl::encoding::Encoder<'_, D>,
14245 offset: usize,
14246 _depth: fidl::encoding::Depth,
14247 ) -> fidl::Result<()> {
14248 encoder.debug_check_bounds::<VideoStreamType>(offset);
14249 fidl::encoding::Encode::<VideoStreamType, D>::encode(
14251 (
14252 <fidl_fuchsia_images::PixelFormat as fidl::encoding::ValueTypeMarker>::borrow(
14253 &self.pixel_format,
14254 ),
14255 <ColorSpace as fidl::encoding::ValueTypeMarker>::borrow(&self.color_space),
14256 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.width),
14257 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.height),
14258 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.coded_width),
14259 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.coded_height),
14260 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14261 &self.pixel_aspect_ratio_width,
14262 ),
14263 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14264 &self.pixel_aspect_ratio_height,
14265 ),
14266 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.stride),
14267 ),
14268 encoder,
14269 offset,
14270 _depth,
14271 )
14272 }
14273 }
14274 unsafe impl<
14275 D: fidl::encoding::ResourceDialect,
14276 T0: fidl::encoding::Encode<fidl_fuchsia_images::PixelFormat, D>,
14277 T1: fidl::encoding::Encode<ColorSpace, D>,
14278 T2: fidl::encoding::Encode<u32, D>,
14279 T3: fidl::encoding::Encode<u32, D>,
14280 T4: fidl::encoding::Encode<u32, D>,
14281 T5: fidl::encoding::Encode<u32, D>,
14282 T6: fidl::encoding::Encode<u32, D>,
14283 T7: fidl::encoding::Encode<u32, D>,
14284 T8: fidl::encoding::Encode<u32, D>,
14285 > fidl::encoding::Encode<VideoStreamType, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
14286 {
14287 #[inline]
14288 unsafe fn encode(
14289 self,
14290 encoder: &mut fidl::encoding::Encoder<'_, D>,
14291 offset: usize,
14292 depth: fidl::encoding::Depth,
14293 ) -> fidl::Result<()> {
14294 encoder.debug_check_bounds::<VideoStreamType>(offset);
14295 self.0.encode(encoder, offset + 0, depth)?;
14299 self.1.encode(encoder, offset + 4, depth)?;
14300 self.2.encode(encoder, offset + 8, depth)?;
14301 self.3.encode(encoder, offset + 12, depth)?;
14302 self.4.encode(encoder, offset + 16, depth)?;
14303 self.5.encode(encoder, offset + 20, depth)?;
14304 self.6.encode(encoder, offset + 24, depth)?;
14305 self.7.encode(encoder, offset + 28, depth)?;
14306 self.8.encode(encoder, offset + 32, depth)?;
14307 Ok(())
14308 }
14309 }
14310
14311 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoStreamType {
14312 #[inline(always)]
14313 fn new_empty() -> Self {
14314 Self {
14315 pixel_format: fidl::new_empty!(fidl_fuchsia_images::PixelFormat, D),
14316 color_space: fidl::new_empty!(ColorSpace, D),
14317 width: fidl::new_empty!(u32, D),
14318 height: fidl::new_empty!(u32, D),
14319 coded_width: fidl::new_empty!(u32, D),
14320 coded_height: fidl::new_empty!(u32, D),
14321 pixel_aspect_ratio_width: fidl::new_empty!(u32, D),
14322 pixel_aspect_ratio_height: fidl::new_empty!(u32, D),
14323 stride: fidl::new_empty!(u32, D),
14324 }
14325 }
14326
14327 #[inline]
14328 unsafe fn decode(
14329 &mut self,
14330 decoder: &mut fidl::encoding::Decoder<'_, D>,
14331 offset: usize,
14332 _depth: fidl::encoding::Depth,
14333 ) -> fidl::Result<()> {
14334 decoder.debug_check_bounds::<Self>(offset);
14335 fidl::decode!(
14337 fidl_fuchsia_images::PixelFormat,
14338 D,
14339 &mut self.pixel_format,
14340 decoder,
14341 offset + 0,
14342 _depth
14343 )?;
14344 fidl::decode!(ColorSpace, D, &mut self.color_space, decoder, offset + 4, _depth)?;
14345 fidl::decode!(u32, D, &mut self.width, decoder, offset + 8, _depth)?;
14346 fidl::decode!(u32, D, &mut self.height, decoder, offset + 12, _depth)?;
14347 fidl::decode!(u32, D, &mut self.coded_width, decoder, offset + 16, _depth)?;
14348 fidl::decode!(u32, D, &mut self.coded_height, decoder, offset + 20, _depth)?;
14349 fidl::decode!(
14350 u32,
14351 D,
14352 &mut self.pixel_aspect_ratio_width,
14353 decoder,
14354 offset + 24,
14355 _depth
14356 )?;
14357 fidl::decode!(
14358 u32,
14359 D,
14360 &mut self.pixel_aspect_ratio_height,
14361 decoder,
14362 offset + 28,
14363 _depth
14364 )?;
14365 fidl::decode!(u32, D, &mut self.stride, decoder, offset + 32, _depth)?;
14366 Ok(())
14367 }
14368 }
14369
14370 impl fidl::encoding::ValueTypeMarker for VideoUncompressedFormat {
14371 type Borrowed<'a> = &'a Self;
14372 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14373 value
14374 }
14375 }
14376
14377 unsafe impl fidl::encoding::TypeMarker for VideoUncompressedFormat {
14378 type Owned = Self;
14379
14380 #[inline(always)]
14381 fn inline_align(_context: fidl::encoding::Context) -> usize {
14382 8
14383 }
14384
14385 #[inline(always)]
14386 fn inline_size(_context: fidl::encoding::Context) -> usize {
14387 128
14388 }
14389 }
14390
14391 unsafe impl<D: fidl::encoding::ResourceDialect>
14392 fidl::encoding::Encode<VideoUncompressedFormat, D> for &VideoUncompressedFormat
14393 {
14394 #[inline]
14395 unsafe fn encode(
14396 self,
14397 encoder: &mut fidl::encoding::Encoder<'_, D>,
14398 offset: usize,
14399 _depth: fidl::encoding::Depth,
14400 ) -> fidl::Result<()> {
14401 encoder.debug_check_bounds::<VideoUncompressedFormat>(offset);
14402 fidl::encoding::Encode::<VideoUncompressedFormat, D>::encode(
14404 (
14405 <fidl_fuchsia_sysmem::ImageFormat2 as fidl::encoding::ValueTypeMarker>::borrow(
14406 &self.image_format,
14407 ),
14408 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.fourcc),
14409 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_width_pixels),
14410 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_height_pixels),
14411 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_width_pixels),
14412 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_height_pixels),
14413 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.planar),
14414 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.swizzled),
14415 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14416 &self.primary_line_stride_bytes,
14417 ),
14418 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14419 &self.secondary_line_stride_bytes,
14420 ),
14421 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_start_offset),
14422 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_start_offset),
14423 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.tertiary_start_offset),
14424 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.primary_pixel_stride),
14425 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.secondary_pixel_stride),
14426 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14427 &self.primary_display_width_pixels,
14428 ),
14429 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14430 &self.primary_display_height_pixels,
14431 ),
14432 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.has_pixel_aspect_ratio),
14433 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14434 &self.pixel_aspect_ratio_width,
14435 ),
14436 <u32 as fidl::encoding::ValueTypeMarker>::borrow(
14437 &self.pixel_aspect_ratio_height,
14438 ),
14439 ),
14440 encoder,
14441 offset,
14442 _depth,
14443 )
14444 }
14445 }
14446 unsafe impl<
14447 D: fidl::encoding::ResourceDialect,
14448 T0: fidl::encoding::Encode<fidl_fuchsia_sysmem::ImageFormat2, D>,
14449 T1: fidl::encoding::Encode<u32, D>,
14450 T2: fidl::encoding::Encode<u32, D>,
14451 T3: fidl::encoding::Encode<u32, D>,
14452 T4: fidl::encoding::Encode<u32, D>,
14453 T5: fidl::encoding::Encode<u32, D>,
14454 T6: fidl::encoding::Encode<bool, D>,
14455 T7: fidl::encoding::Encode<bool, D>,
14456 T8: fidl::encoding::Encode<u32, D>,
14457 T9: fidl::encoding::Encode<u32, D>,
14458 T10: fidl::encoding::Encode<u32, D>,
14459 T11: fidl::encoding::Encode<u32, D>,
14460 T12: fidl::encoding::Encode<u32, D>,
14461 T13: fidl::encoding::Encode<u32, D>,
14462 T14: fidl::encoding::Encode<u32, D>,
14463 T15: fidl::encoding::Encode<u32, D>,
14464 T16: fidl::encoding::Encode<u32, D>,
14465 T17: fidl::encoding::Encode<bool, D>,
14466 T18: fidl::encoding::Encode<u32, D>,
14467 T19: fidl::encoding::Encode<u32, D>,
14468 > fidl::encoding::Encode<VideoUncompressedFormat, D>
14469 for (
14470 T0,
14471 T1,
14472 T2,
14473 T3,
14474 T4,
14475 T5,
14476 T6,
14477 T7,
14478 T8,
14479 T9,
14480 T10,
14481 T11,
14482 T12,
14483 T13,
14484 T14,
14485 T15,
14486 T16,
14487 T17,
14488 T18,
14489 T19,
14490 )
14491 {
14492 #[inline]
14493 unsafe fn encode(
14494 self,
14495 encoder: &mut fidl::encoding::Encoder<'_, D>,
14496 offset: usize,
14497 depth: fidl::encoding::Depth,
14498 ) -> fidl::Result<()> {
14499 encoder.debug_check_bounds::<VideoUncompressedFormat>(offset);
14500 unsafe {
14503 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(72);
14504 (ptr as *mut u64).write_unaligned(0);
14505 }
14506 unsafe {
14507 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(112);
14508 (ptr as *mut u64).write_unaligned(0);
14509 }
14510 self.0.encode(encoder, offset + 0, depth)?;
14512 self.1.encode(encoder, offset + 56, depth)?;
14513 self.2.encode(encoder, offset + 60, depth)?;
14514 self.3.encode(encoder, offset + 64, depth)?;
14515 self.4.encode(encoder, offset + 68, depth)?;
14516 self.5.encode(encoder, offset + 72, depth)?;
14517 self.6.encode(encoder, offset + 76, depth)?;
14518 self.7.encode(encoder, offset + 77, depth)?;
14519 self.8.encode(encoder, offset + 80, depth)?;
14520 self.9.encode(encoder, offset + 84, depth)?;
14521 self.10.encode(encoder, offset + 88, depth)?;
14522 self.11.encode(encoder, offset + 92, depth)?;
14523 self.12.encode(encoder, offset + 96, depth)?;
14524 self.13.encode(encoder, offset + 100, depth)?;
14525 self.14.encode(encoder, offset + 104, depth)?;
14526 self.15.encode(encoder, offset + 108, depth)?;
14527 self.16.encode(encoder, offset + 112, depth)?;
14528 self.17.encode(encoder, offset + 116, depth)?;
14529 self.18.encode(encoder, offset + 120, depth)?;
14530 self.19.encode(encoder, offset + 124, depth)?;
14531 Ok(())
14532 }
14533 }
14534
14535 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14536 for VideoUncompressedFormat
14537 {
14538 #[inline(always)]
14539 fn new_empty() -> Self {
14540 Self {
14541 image_format: fidl::new_empty!(fidl_fuchsia_sysmem::ImageFormat2, D),
14542 fourcc: fidl::new_empty!(u32, D),
14543 primary_width_pixels: fidl::new_empty!(u32, D),
14544 primary_height_pixels: fidl::new_empty!(u32, D),
14545 secondary_width_pixels: fidl::new_empty!(u32, D),
14546 secondary_height_pixels: fidl::new_empty!(u32, D),
14547 planar: fidl::new_empty!(bool, D),
14548 swizzled: fidl::new_empty!(bool, D),
14549 primary_line_stride_bytes: fidl::new_empty!(u32, D),
14550 secondary_line_stride_bytes: fidl::new_empty!(u32, D),
14551 primary_start_offset: fidl::new_empty!(u32, D),
14552 secondary_start_offset: fidl::new_empty!(u32, D),
14553 tertiary_start_offset: fidl::new_empty!(u32, D),
14554 primary_pixel_stride: fidl::new_empty!(u32, D),
14555 secondary_pixel_stride: fidl::new_empty!(u32, D),
14556 primary_display_width_pixels: fidl::new_empty!(u32, D),
14557 primary_display_height_pixels: fidl::new_empty!(u32, D),
14558 has_pixel_aspect_ratio: fidl::new_empty!(bool, D),
14559 pixel_aspect_ratio_width: fidl::new_empty!(u32, D),
14560 pixel_aspect_ratio_height: fidl::new_empty!(u32, D),
14561 }
14562 }
14563
14564 #[inline]
14565 unsafe fn decode(
14566 &mut self,
14567 decoder: &mut fidl::encoding::Decoder<'_, D>,
14568 offset: usize,
14569 _depth: fidl::encoding::Depth,
14570 ) -> fidl::Result<()> {
14571 decoder.debug_check_bounds::<Self>(offset);
14572 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(72) };
14574 let padval = unsafe { (ptr as *const u64).read_unaligned() };
14575 let mask = 0xffff000000000000u64;
14576 let maskedval = padval & mask;
14577 if maskedval != 0 {
14578 return Err(fidl::Error::NonZeroPadding {
14579 padding_start: offset + 72 + ((mask as u64).trailing_zeros() / 8) as usize,
14580 });
14581 }
14582 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(112) };
14583 let padval = unsafe { (ptr as *const u64).read_unaligned() };
14584 let mask = 0xffffff0000000000u64;
14585 let maskedval = padval & mask;
14586 if maskedval != 0 {
14587 return Err(fidl::Error::NonZeroPadding {
14588 padding_start: offset + 112 + ((mask as u64).trailing_zeros() / 8) as usize,
14589 });
14590 }
14591 fidl::decode!(
14592 fidl_fuchsia_sysmem::ImageFormat2,
14593 D,
14594 &mut self.image_format,
14595 decoder,
14596 offset + 0,
14597 _depth
14598 )?;
14599 fidl::decode!(u32, D, &mut self.fourcc, decoder, offset + 56, _depth)?;
14600 fidl::decode!(u32, D, &mut self.primary_width_pixels, decoder, offset + 60, _depth)?;
14601 fidl::decode!(u32, D, &mut self.primary_height_pixels, decoder, offset + 64, _depth)?;
14602 fidl::decode!(u32, D, &mut self.secondary_width_pixels, decoder, offset + 68, _depth)?;
14603 fidl::decode!(u32, D, &mut self.secondary_height_pixels, decoder, offset + 72, _depth)?;
14604 fidl::decode!(bool, D, &mut self.planar, decoder, offset + 76, _depth)?;
14605 fidl::decode!(bool, D, &mut self.swizzled, decoder, offset + 77, _depth)?;
14606 fidl::decode!(
14607 u32,
14608 D,
14609 &mut self.primary_line_stride_bytes,
14610 decoder,
14611 offset + 80,
14612 _depth
14613 )?;
14614 fidl::decode!(
14615 u32,
14616 D,
14617 &mut self.secondary_line_stride_bytes,
14618 decoder,
14619 offset + 84,
14620 _depth
14621 )?;
14622 fidl::decode!(u32, D, &mut self.primary_start_offset, decoder, offset + 88, _depth)?;
14623 fidl::decode!(u32, D, &mut self.secondary_start_offset, decoder, offset + 92, _depth)?;
14624 fidl::decode!(u32, D, &mut self.tertiary_start_offset, decoder, offset + 96, _depth)?;
14625 fidl::decode!(u32, D, &mut self.primary_pixel_stride, decoder, offset + 100, _depth)?;
14626 fidl::decode!(u32, D, &mut self.secondary_pixel_stride, decoder, offset + 104, _depth)?;
14627 fidl::decode!(
14628 u32,
14629 D,
14630 &mut self.primary_display_width_pixels,
14631 decoder,
14632 offset + 108,
14633 _depth
14634 )?;
14635 fidl::decode!(
14636 u32,
14637 D,
14638 &mut self.primary_display_height_pixels,
14639 decoder,
14640 offset + 112,
14641 _depth
14642 )?;
14643 fidl::decode!(
14644 bool,
14645 D,
14646 &mut self.has_pixel_aspect_ratio,
14647 decoder,
14648 offset + 116,
14649 _depth
14650 )?;
14651 fidl::decode!(
14652 u32,
14653 D,
14654 &mut self.pixel_aspect_ratio_width,
14655 decoder,
14656 offset + 120,
14657 _depth
14658 )?;
14659 fidl::decode!(
14660 u32,
14661 D,
14662 &mut self.pixel_aspect_ratio_height,
14663 decoder,
14664 offset + 124,
14665 _depth
14666 )?;
14667 Ok(())
14668 }
14669 }
14670
14671 impl fidl::encoding::ValueTypeMarker for Void {
14672 type Borrowed<'a> = &'a Self;
14673 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14674 value
14675 }
14676 }
14677
14678 unsafe impl fidl::encoding::TypeMarker for Void {
14679 type Owned = Self;
14680
14681 #[inline(always)]
14682 fn inline_align(_context: fidl::encoding::Context) -> usize {
14683 1
14684 }
14685
14686 #[inline(always)]
14687 fn inline_size(_context: fidl::encoding::Context) -> usize {
14688 1
14689 }
14690 }
14691
14692 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Void, D> for &Void {
14693 #[inline]
14694 unsafe fn encode(
14695 self,
14696 encoder: &mut fidl::encoding::Encoder<'_, D>,
14697 offset: usize,
14698 _depth: fidl::encoding::Depth,
14699 ) -> fidl::Result<()> {
14700 encoder.debug_check_bounds::<Void>(offset);
14701 encoder.write_num(0u8, offset);
14702 Ok(())
14703 }
14704 }
14705
14706 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Void {
14707 #[inline(always)]
14708 fn new_empty() -> Self {
14709 Self
14710 }
14711
14712 #[inline]
14713 unsafe fn decode(
14714 &mut self,
14715 decoder: &mut fidl::encoding::Decoder<'_, D>,
14716 offset: usize,
14717 _depth: fidl::encoding::Depth,
14718 ) -> fidl::Result<()> {
14719 decoder.debug_check_bounds::<Self>(offset);
14720 match decoder.read_num::<u8>(offset) {
14721 0 => Ok(()),
14722 _ => Err(fidl::Error::Invalid),
14723 }
14724 }
14725 }
14726
14727 impl AudioCompressedFormatCvsd {
14728 #[inline(always)]
14729 fn max_ordinal_present(&self) -> u64 {
14730 0
14731 }
14732 }
14733
14734 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatCvsd {
14735 type Borrowed<'a> = &'a Self;
14736 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14737 value
14738 }
14739 }
14740
14741 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatCvsd {
14742 type Owned = Self;
14743
14744 #[inline(always)]
14745 fn inline_align(_context: fidl::encoding::Context) -> usize {
14746 8
14747 }
14748
14749 #[inline(always)]
14750 fn inline_size(_context: fidl::encoding::Context) -> usize {
14751 16
14752 }
14753 }
14754
14755 unsafe impl<D: fidl::encoding::ResourceDialect>
14756 fidl::encoding::Encode<AudioCompressedFormatCvsd, D> for &AudioCompressedFormatCvsd
14757 {
14758 unsafe fn encode(
14759 self,
14760 encoder: &mut fidl::encoding::Encoder<'_, D>,
14761 offset: usize,
14762 mut depth: fidl::encoding::Depth,
14763 ) -> fidl::Result<()> {
14764 encoder.debug_check_bounds::<AudioCompressedFormatCvsd>(offset);
14765 let max_ordinal: u64 = self.max_ordinal_present();
14767 encoder.write_num(max_ordinal, offset);
14768 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14769 if max_ordinal == 0 {
14771 return Ok(());
14772 }
14773 depth.increment()?;
14774 let envelope_size = 8;
14775 let bytes_len = max_ordinal as usize * envelope_size;
14776 #[allow(unused_variables)]
14777 let offset = encoder.out_of_line_offset(bytes_len);
14778 let mut _prev_end_offset: usize = 0;
14779
14780 Ok(())
14781 }
14782 }
14783
14784 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14785 for AudioCompressedFormatCvsd
14786 {
14787 #[inline(always)]
14788 fn new_empty() -> Self {
14789 Self::default()
14790 }
14791
14792 unsafe fn decode(
14793 &mut self,
14794 decoder: &mut fidl::encoding::Decoder<'_, D>,
14795 offset: usize,
14796 mut depth: fidl::encoding::Depth,
14797 ) -> fidl::Result<()> {
14798 decoder.debug_check_bounds::<Self>(offset);
14799 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14800 None => return Err(fidl::Error::NotNullable),
14801 Some(len) => len,
14802 };
14803 if len == 0 {
14805 return Ok(());
14806 };
14807 depth.increment()?;
14808 let envelope_size = 8;
14809 let bytes_len = len * envelope_size;
14810 let offset = decoder.out_of_line_offset(bytes_len)?;
14811 let mut _next_ordinal_to_read = 0;
14813 let mut next_offset = offset;
14814 let end_offset = offset + bytes_len;
14815
14816 while next_offset < end_offset {
14818 _next_ordinal_to_read += 1;
14819 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14820 next_offset += envelope_size;
14821 }
14822
14823 Ok(())
14824 }
14825 }
14826
14827 impl AudioCompressedFormatLc3 {
14828 #[inline(always)]
14829 fn max_ordinal_present(&self) -> u64 {
14830 0
14831 }
14832 }
14833
14834 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormatLc3 {
14835 type Borrowed<'a> = &'a Self;
14836 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14837 value
14838 }
14839 }
14840
14841 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormatLc3 {
14842 type Owned = Self;
14843
14844 #[inline(always)]
14845 fn inline_align(_context: fidl::encoding::Context) -> usize {
14846 8
14847 }
14848
14849 #[inline(always)]
14850 fn inline_size(_context: fidl::encoding::Context) -> usize {
14851 16
14852 }
14853 }
14854
14855 unsafe impl<D: fidl::encoding::ResourceDialect>
14856 fidl::encoding::Encode<AudioCompressedFormatLc3, D> for &AudioCompressedFormatLc3
14857 {
14858 unsafe fn encode(
14859 self,
14860 encoder: &mut fidl::encoding::Encoder<'_, D>,
14861 offset: usize,
14862 mut depth: fidl::encoding::Depth,
14863 ) -> fidl::Result<()> {
14864 encoder.debug_check_bounds::<AudioCompressedFormatLc3>(offset);
14865 let max_ordinal: u64 = self.max_ordinal_present();
14867 encoder.write_num(max_ordinal, offset);
14868 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14869 if max_ordinal == 0 {
14871 return Ok(());
14872 }
14873 depth.increment()?;
14874 let envelope_size = 8;
14875 let bytes_len = max_ordinal as usize * envelope_size;
14876 #[allow(unused_variables)]
14877 let offset = encoder.out_of_line_offset(bytes_len);
14878 let mut _prev_end_offset: usize = 0;
14879
14880 Ok(())
14881 }
14882 }
14883
14884 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
14885 for AudioCompressedFormatLc3
14886 {
14887 #[inline(always)]
14888 fn new_empty() -> Self {
14889 Self::default()
14890 }
14891
14892 unsafe fn decode(
14893 &mut self,
14894 decoder: &mut fidl::encoding::Decoder<'_, D>,
14895 offset: usize,
14896 mut depth: fidl::encoding::Depth,
14897 ) -> fidl::Result<()> {
14898 decoder.debug_check_bounds::<Self>(offset);
14899 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
14900 None => return Err(fidl::Error::NotNullable),
14901 Some(len) => len,
14902 };
14903 if len == 0 {
14905 return Ok(());
14906 };
14907 depth.increment()?;
14908 let envelope_size = 8;
14909 let bytes_len = len * envelope_size;
14910 let offset = decoder.out_of_line_offset(bytes_len)?;
14911 let mut _next_ordinal_to_read = 0;
14913 let mut next_offset = offset;
14914 let end_offset = offset + bytes_len;
14915
14916 while next_offset < end_offset {
14918 _next_ordinal_to_read += 1;
14919 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
14920 next_offset += envelope_size;
14921 }
14922
14923 Ok(())
14924 }
14925 }
14926
14927 impl AudioConsumerStatus {
14928 #[inline(always)]
14929 fn max_ordinal_present(&self) -> u64 {
14930 if let Some(_) = self.max_lead_time {
14931 return 4;
14932 }
14933 if let Some(_) = self.min_lead_time {
14934 return 3;
14935 }
14936 if let Some(_) = self.presentation_timeline {
14937 return 2;
14938 }
14939 if let Some(_) = self.error {
14940 return 1;
14941 }
14942 0
14943 }
14944 }
14945
14946 impl fidl::encoding::ValueTypeMarker for AudioConsumerStatus {
14947 type Borrowed<'a> = &'a Self;
14948 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
14949 value
14950 }
14951 }
14952
14953 unsafe impl fidl::encoding::TypeMarker for AudioConsumerStatus {
14954 type Owned = Self;
14955
14956 #[inline(always)]
14957 fn inline_align(_context: fidl::encoding::Context) -> usize {
14958 8
14959 }
14960
14961 #[inline(always)]
14962 fn inline_size(_context: fidl::encoding::Context) -> usize {
14963 16
14964 }
14965 }
14966
14967 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioConsumerStatus, D>
14968 for &AudioConsumerStatus
14969 {
14970 unsafe fn encode(
14971 self,
14972 encoder: &mut fidl::encoding::Encoder<'_, D>,
14973 offset: usize,
14974 mut depth: fidl::encoding::Depth,
14975 ) -> fidl::Result<()> {
14976 encoder.debug_check_bounds::<AudioConsumerStatus>(offset);
14977 let max_ordinal: u64 = self.max_ordinal_present();
14979 encoder.write_num(max_ordinal, offset);
14980 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
14981 if max_ordinal == 0 {
14983 return Ok(());
14984 }
14985 depth.increment()?;
14986 let envelope_size = 8;
14987 let bytes_len = max_ordinal as usize * envelope_size;
14988 #[allow(unused_variables)]
14989 let offset = encoder.out_of_line_offset(bytes_len);
14990 let mut _prev_end_offset: usize = 0;
14991 if 1 > max_ordinal {
14992 return Ok(());
14993 }
14994
14995 let cur_offset: usize = (1 - 1) * envelope_size;
14998
14999 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15001
15002 fidl::encoding::encode_in_envelope_optional::<AudioConsumerError, D>(
15007 self.error
15008 .as_ref()
15009 .map(<AudioConsumerError as fidl::encoding::ValueTypeMarker>::borrow),
15010 encoder,
15011 offset + cur_offset,
15012 depth,
15013 )?;
15014
15015 _prev_end_offset = cur_offset + envelope_size;
15016 if 2 > max_ordinal {
15017 return Ok(());
15018 }
15019
15020 let cur_offset: usize = (2 - 1) * envelope_size;
15023
15024 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15026
15027 fidl::encoding::encode_in_envelope_optional::<TimelineFunction, D>(
15032 self.presentation_timeline
15033 .as_ref()
15034 .map(<TimelineFunction as fidl::encoding::ValueTypeMarker>::borrow),
15035 encoder,
15036 offset + cur_offset,
15037 depth,
15038 )?;
15039
15040 _prev_end_offset = cur_offset + envelope_size;
15041 if 3 > max_ordinal {
15042 return Ok(());
15043 }
15044
15045 let cur_offset: usize = (3 - 1) * envelope_size;
15048
15049 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15051
15052 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15057 self.min_lead_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15058 encoder,
15059 offset + cur_offset,
15060 depth,
15061 )?;
15062
15063 _prev_end_offset = cur_offset + envelope_size;
15064 if 4 > max_ordinal {
15065 return Ok(());
15066 }
15067
15068 let cur_offset: usize = (4 - 1) * envelope_size;
15071
15072 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15074
15075 fidl::encoding::encode_in_envelope_optional::<u64, D>(
15080 self.max_lead_time.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
15081 encoder,
15082 offset + cur_offset,
15083 depth,
15084 )?;
15085
15086 _prev_end_offset = cur_offset + envelope_size;
15087
15088 Ok(())
15089 }
15090 }
15091
15092 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioConsumerStatus {
15093 #[inline(always)]
15094 fn new_empty() -> Self {
15095 Self::default()
15096 }
15097
15098 unsafe fn decode(
15099 &mut self,
15100 decoder: &mut fidl::encoding::Decoder<'_, D>,
15101 offset: usize,
15102 mut depth: fidl::encoding::Depth,
15103 ) -> fidl::Result<()> {
15104 decoder.debug_check_bounds::<Self>(offset);
15105 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15106 None => return Err(fidl::Error::NotNullable),
15107 Some(len) => len,
15108 };
15109 if len == 0 {
15111 return Ok(());
15112 };
15113 depth.increment()?;
15114 let envelope_size = 8;
15115 let bytes_len = len * envelope_size;
15116 let offset = decoder.out_of_line_offset(bytes_len)?;
15117 let mut _next_ordinal_to_read = 0;
15119 let mut next_offset = offset;
15120 let end_offset = offset + bytes_len;
15121 _next_ordinal_to_read += 1;
15122 if next_offset >= end_offset {
15123 return Ok(());
15124 }
15125
15126 while _next_ordinal_to_read < 1 {
15128 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15129 _next_ordinal_to_read += 1;
15130 next_offset += envelope_size;
15131 }
15132
15133 let next_out_of_line = decoder.next_out_of_line();
15134 let handles_before = decoder.remaining_handles();
15135 if let Some((inlined, num_bytes, num_handles)) =
15136 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15137 {
15138 let member_inline_size =
15139 <AudioConsumerError as fidl::encoding::TypeMarker>::inline_size(
15140 decoder.context,
15141 );
15142 if inlined != (member_inline_size <= 4) {
15143 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15144 }
15145 let inner_offset;
15146 let mut inner_depth = depth.clone();
15147 if inlined {
15148 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15149 inner_offset = next_offset;
15150 } else {
15151 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15152 inner_depth.increment()?;
15153 }
15154 let val_ref =
15155 self.error.get_or_insert_with(|| fidl::new_empty!(AudioConsumerError, D));
15156 fidl::decode!(AudioConsumerError, D, val_ref, decoder, inner_offset, inner_depth)?;
15157 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15158 {
15159 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15160 }
15161 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15162 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15163 }
15164 }
15165
15166 next_offset += envelope_size;
15167 _next_ordinal_to_read += 1;
15168 if next_offset >= end_offset {
15169 return Ok(());
15170 }
15171
15172 while _next_ordinal_to_read < 2 {
15174 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15175 _next_ordinal_to_read += 1;
15176 next_offset += envelope_size;
15177 }
15178
15179 let next_out_of_line = decoder.next_out_of_line();
15180 let handles_before = decoder.remaining_handles();
15181 if let Some((inlined, num_bytes, num_handles)) =
15182 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15183 {
15184 let member_inline_size =
15185 <TimelineFunction as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15186 if inlined != (member_inline_size <= 4) {
15187 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15188 }
15189 let inner_offset;
15190 let mut inner_depth = depth.clone();
15191 if inlined {
15192 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15193 inner_offset = next_offset;
15194 } else {
15195 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15196 inner_depth.increment()?;
15197 }
15198 let val_ref = self
15199 .presentation_timeline
15200 .get_or_insert_with(|| fidl::new_empty!(TimelineFunction, D));
15201 fidl::decode!(TimelineFunction, D, val_ref, decoder, inner_offset, inner_depth)?;
15202 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15203 {
15204 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15205 }
15206 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15207 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15208 }
15209 }
15210
15211 next_offset += envelope_size;
15212 _next_ordinal_to_read += 1;
15213 if next_offset >= end_offset {
15214 return Ok(());
15215 }
15216
15217 while _next_ordinal_to_read < 3 {
15219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15220 _next_ordinal_to_read += 1;
15221 next_offset += envelope_size;
15222 }
15223
15224 let next_out_of_line = decoder.next_out_of_line();
15225 let handles_before = decoder.remaining_handles();
15226 if let Some((inlined, num_bytes, num_handles)) =
15227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15228 {
15229 let member_inline_size =
15230 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15231 if inlined != (member_inline_size <= 4) {
15232 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15233 }
15234 let inner_offset;
15235 let mut inner_depth = depth.clone();
15236 if inlined {
15237 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15238 inner_offset = next_offset;
15239 } else {
15240 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15241 inner_depth.increment()?;
15242 }
15243 let val_ref = self.min_lead_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
15244 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15245 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15246 {
15247 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15248 }
15249 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15250 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15251 }
15252 }
15253
15254 next_offset += envelope_size;
15255 _next_ordinal_to_read += 1;
15256 if next_offset >= end_offset {
15257 return Ok(());
15258 }
15259
15260 while _next_ordinal_to_read < 4 {
15262 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15263 _next_ordinal_to_read += 1;
15264 next_offset += envelope_size;
15265 }
15266
15267 let next_out_of_line = decoder.next_out_of_line();
15268 let handles_before = decoder.remaining_handles();
15269 if let Some((inlined, num_bytes, num_handles)) =
15270 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15271 {
15272 let member_inline_size =
15273 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15274 if inlined != (member_inline_size <= 4) {
15275 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15276 }
15277 let inner_offset;
15278 let mut inner_depth = depth.clone();
15279 if inlined {
15280 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15281 inner_offset = next_offset;
15282 } else {
15283 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15284 inner_depth.increment()?;
15285 }
15286 let val_ref = self.max_lead_time.get_or_insert_with(|| fidl::new_empty!(u64, D));
15287 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
15288 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15289 {
15290 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15291 }
15292 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15293 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15294 }
15295 }
15296
15297 next_offset += envelope_size;
15298
15299 while next_offset < end_offset {
15301 _next_ordinal_to_read += 1;
15302 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15303 next_offset += envelope_size;
15304 }
15305
15306 Ok(())
15307 }
15308 }
15309
15310 impl CvsdEncoderSettings {
15311 #[inline(always)]
15312 fn max_ordinal_present(&self) -> u64 {
15313 0
15314 }
15315 }
15316
15317 impl fidl::encoding::ValueTypeMarker for CvsdEncoderSettings {
15318 type Borrowed<'a> = &'a Self;
15319 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15320 value
15321 }
15322 }
15323
15324 unsafe impl fidl::encoding::TypeMarker for CvsdEncoderSettings {
15325 type Owned = Self;
15326
15327 #[inline(always)]
15328 fn inline_align(_context: fidl::encoding::Context) -> usize {
15329 8
15330 }
15331
15332 #[inline(always)]
15333 fn inline_size(_context: fidl::encoding::Context) -> usize {
15334 16
15335 }
15336 }
15337
15338 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CvsdEncoderSettings, D>
15339 for &CvsdEncoderSettings
15340 {
15341 unsafe fn encode(
15342 self,
15343 encoder: &mut fidl::encoding::Encoder<'_, D>,
15344 offset: usize,
15345 mut depth: fidl::encoding::Depth,
15346 ) -> fidl::Result<()> {
15347 encoder.debug_check_bounds::<CvsdEncoderSettings>(offset);
15348 let max_ordinal: u64 = self.max_ordinal_present();
15350 encoder.write_num(max_ordinal, offset);
15351 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15352 if max_ordinal == 0 {
15354 return Ok(());
15355 }
15356 depth.increment()?;
15357 let envelope_size = 8;
15358 let bytes_len = max_ordinal as usize * envelope_size;
15359 #[allow(unused_variables)]
15360 let offset = encoder.out_of_line_offset(bytes_len);
15361 let mut _prev_end_offset: usize = 0;
15362
15363 Ok(())
15364 }
15365 }
15366
15367 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CvsdEncoderSettings {
15368 #[inline(always)]
15369 fn new_empty() -> Self {
15370 Self::default()
15371 }
15372
15373 unsafe fn decode(
15374 &mut self,
15375 decoder: &mut fidl::encoding::Decoder<'_, D>,
15376 offset: usize,
15377 mut depth: fidl::encoding::Depth,
15378 ) -> fidl::Result<()> {
15379 decoder.debug_check_bounds::<Self>(offset);
15380 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15381 None => return Err(fidl::Error::NotNullable),
15382 Some(len) => len,
15383 };
15384 if len == 0 {
15386 return Ok(());
15387 };
15388 depth.increment()?;
15389 let envelope_size = 8;
15390 let bytes_len = len * envelope_size;
15391 let offset = decoder.out_of_line_offset(bytes_len)?;
15392 let mut _next_ordinal_to_read = 0;
15394 let mut next_offset = offset;
15395 let end_offset = offset + bytes_len;
15396
15397 while next_offset < end_offset {
15399 _next_ordinal_to_read += 1;
15400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15401 next_offset += envelope_size;
15402 }
15403
15404 Ok(())
15405 }
15406 }
15407
15408 impl DecryptedFormat {
15409 #[inline(always)]
15410 fn max_ordinal_present(&self) -> u64 {
15411 if let Some(_) = self.ignore_this_field {
15412 return 1;
15413 }
15414 0
15415 }
15416 }
15417
15418 impl fidl::encoding::ValueTypeMarker for DecryptedFormat {
15419 type Borrowed<'a> = &'a Self;
15420 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15421 value
15422 }
15423 }
15424
15425 unsafe impl fidl::encoding::TypeMarker for DecryptedFormat {
15426 type Owned = Self;
15427
15428 #[inline(always)]
15429 fn inline_align(_context: fidl::encoding::Context) -> usize {
15430 8
15431 }
15432
15433 #[inline(always)]
15434 fn inline_size(_context: fidl::encoding::Context) -> usize {
15435 16
15436 }
15437 }
15438
15439 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DecryptedFormat, D>
15440 for &DecryptedFormat
15441 {
15442 unsafe fn encode(
15443 self,
15444 encoder: &mut fidl::encoding::Encoder<'_, D>,
15445 offset: usize,
15446 mut depth: fidl::encoding::Depth,
15447 ) -> fidl::Result<()> {
15448 encoder.debug_check_bounds::<DecryptedFormat>(offset);
15449 let max_ordinal: u64 = self.max_ordinal_present();
15451 encoder.write_num(max_ordinal, offset);
15452 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15453 if max_ordinal == 0 {
15455 return Ok(());
15456 }
15457 depth.increment()?;
15458 let envelope_size = 8;
15459 let bytes_len = max_ordinal as usize * envelope_size;
15460 #[allow(unused_variables)]
15461 let offset = encoder.out_of_line_offset(bytes_len);
15462 let mut _prev_end_offset: usize = 0;
15463 if 1 > max_ordinal {
15464 return Ok(());
15465 }
15466
15467 let cur_offset: usize = (1 - 1) * envelope_size;
15470
15471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15473
15474 fidl::encoding::encode_in_envelope_optional::<bool, D>(
15479 self.ignore_this_field
15480 .as_ref()
15481 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
15482 encoder,
15483 offset + cur_offset,
15484 depth,
15485 )?;
15486
15487 _prev_end_offset = cur_offset + envelope_size;
15488
15489 Ok(())
15490 }
15491 }
15492
15493 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DecryptedFormat {
15494 #[inline(always)]
15495 fn new_empty() -> Self {
15496 Self::default()
15497 }
15498
15499 unsafe fn decode(
15500 &mut self,
15501 decoder: &mut fidl::encoding::Decoder<'_, D>,
15502 offset: usize,
15503 mut depth: fidl::encoding::Depth,
15504 ) -> fidl::Result<()> {
15505 decoder.debug_check_bounds::<Self>(offset);
15506 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15507 None => return Err(fidl::Error::NotNullable),
15508 Some(len) => len,
15509 };
15510 if len == 0 {
15512 return Ok(());
15513 };
15514 depth.increment()?;
15515 let envelope_size = 8;
15516 let bytes_len = len * envelope_size;
15517 let offset = decoder.out_of_line_offset(bytes_len)?;
15518 let mut _next_ordinal_to_read = 0;
15520 let mut next_offset = offset;
15521 let end_offset = offset + bytes_len;
15522 _next_ordinal_to_read += 1;
15523 if next_offset >= end_offset {
15524 return Ok(());
15525 }
15526
15527 while _next_ordinal_to_read < 1 {
15529 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15530 _next_ordinal_to_read += 1;
15531 next_offset += envelope_size;
15532 }
15533
15534 let next_out_of_line = decoder.next_out_of_line();
15535 let handles_before = decoder.remaining_handles();
15536 if let Some((inlined, num_bytes, num_handles)) =
15537 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15538 {
15539 let member_inline_size =
15540 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15541 if inlined != (member_inline_size <= 4) {
15542 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15543 }
15544 let inner_offset;
15545 let mut inner_depth = depth.clone();
15546 if inlined {
15547 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15548 inner_offset = next_offset;
15549 } else {
15550 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15551 inner_depth.increment()?;
15552 }
15553 let val_ref =
15554 self.ignore_this_field.get_or_insert_with(|| fidl::new_empty!(bool, D));
15555 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
15556 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15557 {
15558 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15559 }
15560 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15561 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15562 }
15563 }
15564
15565 next_offset += envelope_size;
15566
15567 while next_offset < end_offset {
15569 _next_ordinal_to_read += 1;
15570 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15571 next_offset += envelope_size;
15572 }
15573
15574 Ok(())
15575 }
15576 }
15577
15578 impl EncryptedFormat {
15579 #[inline(always)]
15580 fn max_ordinal_present(&self) -> u64 {
15581 if let Some(_) = self.key_id {
15582 return 8;
15583 }
15584 if let Some(_) = self.scheme {
15585 return 6;
15586 }
15587 if let Some(_) = self.pattern {
15588 return 5;
15589 }
15590 if let Some(_) = self.subsamples {
15591 return 4;
15592 }
15593 if let Some(_) = self.init_vector {
15594 return 3;
15595 }
15596 0
15597 }
15598 }
15599
15600 impl fidl::encoding::ValueTypeMarker for EncryptedFormat {
15601 type Borrowed<'a> = &'a Self;
15602 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
15603 value
15604 }
15605 }
15606
15607 unsafe impl fidl::encoding::TypeMarker for EncryptedFormat {
15608 type Owned = Self;
15609
15610 #[inline(always)]
15611 fn inline_align(_context: fidl::encoding::Context) -> usize {
15612 8
15613 }
15614
15615 #[inline(always)]
15616 fn inline_size(_context: fidl::encoding::Context) -> usize {
15617 16
15618 }
15619 }
15620
15621 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncryptedFormat, D>
15622 for &EncryptedFormat
15623 {
15624 unsafe fn encode(
15625 self,
15626 encoder: &mut fidl::encoding::Encoder<'_, D>,
15627 offset: usize,
15628 mut depth: fidl::encoding::Depth,
15629 ) -> fidl::Result<()> {
15630 encoder.debug_check_bounds::<EncryptedFormat>(offset);
15631 let max_ordinal: u64 = self.max_ordinal_present();
15633 encoder.write_num(max_ordinal, offset);
15634 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
15635 if max_ordinal == 0 {
15637 return Ok(());
15638 }
15639 depth.increment()?;
15640 let envelope_size = 8;
15641 let bytes_len = max_ordinal as usize * envelope_size;
15642 #[allow(unused_variables)]
15643 let offset = encoder.out_of_line_offset(bytes_len);
15644 let mut _prev_end_offset: usize = 0;
15645 if 3 > max_ordinal {
15646 return Ok(());
15647 }
15648
15649 let cur_offset: usize = (3 - 1) * envelope_size;
15652
15653 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15655
15656 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 16>, D>(
15661 self.init_vector.as_ref().map(
15662 <fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
15663 ),
15664 encoder,
15665 offset + cur_offset,
15666 depth,
15667 )?;
15668
15669 _prev_end_offset = cur_offset + envelope_size;
15670 if 4 > max_ordinal {
15671 return Ok(());
15672 }
15673
15674 let cur_offset: usize = (4 - 1) * envelope_size;
15677
15678 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15680
15681 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<SubsampleEntry>, D>(
15686 self.subsamples.as_ref().map(<fidl::encoding::UnboundedVector<SubsampleEntry> as fidl::encoding::ValueTypeMarker>::borrow),
15687 encoder, offset + cur_offset, depth
15688 )?;
15689
15690 _prev_end_offset = cur_offset + envelope_size;
15691 if 5 > max_ordinal {
15692 return Ok(());
15693 }
15694
15695 let cur_offset: usize = (5 - 1) * envelope_size;
15698
15699 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15701
15702 fidl::encoding::encode_in_envelope_optional::<EncryptionPattern, D>(
15707 self.pattern
15708 .as_ref()
15709 .map(<EncryptionPattern as fidl::encoding::ValueTypeMarker>::borrow),
15710 encoder,
15711 offset + cur_offset,
15712 depth,
15713 )?;
15714
15715 _prev_end_offset = cur_offset + envelope_size;
15716 if 6 > max_ordinal {
15717 return Ok(());
15718 }
15719
15720 let cur_offset: usize = (6 - 1) * envelope_size;
15723
15724 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15726
15727 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
15732 self.scheme.as_ref().map(
15733 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
15734 ),
15735 encoder,
15736 offset + cur_offset,
15737 depth,
15738 )?;
15739
15740 _prev_end_offset = cur_offset + envelope_size;
15741 if 8 > max_ordinal {
15742 return Ok(());
15743 }
15744
15745 let cur_offset: usize = (8 - 1) * envelope_size;
15748
15749 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
15751
15752 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Vector<u8, 16>, D>(
15757 self.key_id.as_ref().map(
15758 <fidl::encoding::Vector<u8, 16> as fidl::encoding::ValueTypeMarker>::borrow,
15759 ),
15760 encoder,
15761 offset + cur_offset,
15762 depth,
15763 )?;
15764
15765 _prev_end_offset = cur_offset + envelope_size;
15766
15767 Ok(())
15768 }
15769 }
15770
15771 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncryptedFormat {
15772 #[inline(always)]
15773 fn new_empty() -> Self {
15774 Self::default()
15775 }
15776
15777 unsafe fn decode(
15778 &mut self,
15779 decoder: &mut fidl::encoding::Decoder<'_, D>,
15780 offset: usize,
15781 mut depth: fidl::encoding::Depth,
15782 ) -> fidl::Result<()> {
15783 decoder.debug_check_bounds::<Self>(offset);
15784 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
15785 None => return Err(fidl::Error::NotNullable),
15786 Some(len) => len,
15787 };
15788 if len == 0 {
15790 return Ok(());
15791 };
15792 depth.increment()?;
15793 let envelope_size = 8;
15794 let bytes_len = len * envelope_size;
15795 let offset = decoder.out_of_line_offset(bytes_len)?;
15796 let mut _next_ordinal_to_read = 0;
15798 let mut next_offset = offset;
15799 let end_offset = offset + bytes_len;
15800 _next_ordinal_to_read += 1;
15801 if next_offset >= end_offset {
15802 return Ok(());
15803 }
15804
15805 while _next_ordinal_to_read < 3 {
15807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15808 _next_ordinal_to_read += 1;
15809 next_offset += envelope_size;
15810 }
15811
15812 let next_out_of_line = decoder.next_out_of_line();
15813 let handles_before = decoder.remaining_handles();
15814 if let Some((inlined, num_bytes, num_handles)) =
15815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15816 {
15817 let member_inline_size =
15818 <fidl::encoding::Vector<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
15819 decoder.context,
15820 );
15821 if inlined != (member_inline_size <= 4) {
15822 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15823 }
15824 let inner_offset;
15825 let mut inner_depth = depth.clone();
15826 if inlined {
15827 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15828 inner_offset = next_offset;
15829 } else {
15830 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15831 inner_depth.increment()?;
15832 }
15833 let val_ref = self
15834 .init_vector
15835 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D));
15836 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
15837 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15838 {
15839 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15840 }
15841 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15842 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15843 }
15844 }
15845
15846 next_offset += envelope_size;
15847 _next_ordinal_to_read += 1;
15848 if next_offset >= end_offset {
15849 return Ok(());
15850 }
15851
15852 while _next_ordinal_to_read < 4 {
15854 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15855 _next_ordinal_to_read += 1;
15856 next_offset += envelope_size;
15857 }
15858
15859 let next_out_of_line = decoder.next_out_of_line();
15860 let handles_before = decoder.remaining_handles();
15861 if let Some((inlined, num_bytes, num_handles)) =
15862 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15863 {
15864 let member_inline_size = <fidl::encoding::UnboundedVector<SubsampleEntry> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15865 if inlined != (member_inline_size <= 4) {
15866 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15867 }
15868 let inner_offset;
15869 let mut inner_depth = depth.clone();
15870 if inlined {
15871 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15872 inner_offset = next_offset;
15873 } else {
15874 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15875 inner_depth.increment()?;
15876 }
15877 let val_ref = self.subsamples.get_or_insert_with(|| {
15878 fidl::new_empty!(fidl::encoding::UnboundedVector<SubsampleEntry>, D)
15879 });
15880 fidl::decode!(
15881 fidl::encoding::UnboundedVector<SubsampleEntry>,
15882 D,
15883 val_ref,
15884 decoder,
15885 inner_offset,
15886 inner_depth
15887 )?;
15888 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15889 {
15890 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15891 }
15892 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15893 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15894 }
15895 }
15896
15897 next_offset += envelope_size;
15898 _next_ordinal_to_read += 1;
15899 if next_offset >= end_offset {
15900 return Ok(());
15901 }
15902
15903 while _next_ordinal_to_read < 5 {
15905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15906 _next_ordinal_to_read += 1;
15907 next_offset += envelope_size;
15908 }
15909
15910 let next_out_of_line = decoder.next_out_of_line();
15911 let handles_before = decoder.remaining_handles();
15912 if let Some((inlined, num_bytes, num_handles)) =
15913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15914 {
15915 let member_inline_size =
15916 <EncryptionPattern as fidl::encoding::TypeMarker>::inline_size(decoder.context);
15917 if inlined != (member_inline_size <= 4) {
15918 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15919 }
15920 let inner_offset;
15921 let mut inner_depth = depth.clone();
15922 if inlined {
15923 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15924 inner_offset = next_offset;
15925 } else {
15926 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15927 inner_depth.increment()?;
15928 }
15929 let val_ref =
15930 self.pattern.get_or_insert_with(|| fidl::new_empty!(EncryptionPattern, D));
15931 fidl::decode!(EncryptionPattern, D, val_ref, decoder, inner_offset, inner_depth)?;
15932 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15933 {
15934 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15935 }
15936 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15937 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15938 }
15939 }
15940
15941 next_offset += envelope_size;
15942 _next_ordinal_to_read += 1;
15943 if next_offset >= end_offset {
15944 return Ok(());
15945 }
15946
15947 while _next_ordinal_to_read < 6 {
15949 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
15950 _next_ordinal_to_read += 1;
15951 next_offset += envelope_size;
15952 }
15953
15954 let next_out_of_line = decoder.next_out_of_line();
15955 let handles_before = decoder.remaining_handles();
15956 if let Some((inlined, num_bytes, num_handles)) =
15957 fidl::encoding::decode_envelope_header(decoder, next_offset)?
15958 {
15959 let member_inline_size =
15960 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
15961 decoder.context,
15962 );
15963 if inlined != (member_inline_size <= 4) {
15964 return Err(fidl::Error::InvalidInlineBitInEnvelope);
15965 }
15966 let inner_offset;
15967 let mut inner_depth = depth.clone();
15968 if inlined {
15969 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
15970 inner_offset = next_offset;
15971 } else {
15972 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
15973 inner_depth.increment()?;
15974 }
15975 let val_ref = self
15976 .scheme
15977 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
15978 fidl::decode!(
15979 fidl::encoding::UnboundedString,
15980 D,
15981 val_ref,
15982 decoder,
15983 inner_offset,
15984 inner_depth
15985 )?;
15986 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
15987 {
15988 return Err(fidl::Error::InvalidNumBytesInEnvelope);
15989 }
15990 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
15991 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
15992 }
15993 }
15994
15995 next_offset += envelope_size;
15996 _next_ordinal_to_read += 1;
15997 if next_offset >= end_offset {
15998 return Ok(());
15999 }
16000
16001 while _next_ordinal_to_read < 8 {
16003 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16004 _next_ordinal_to_read += 1;
16005 next_offset += envelope_size;
16006 }
16007
16008 let next_out_of_line = decoder.next_out_of_line();
16009 let handles_before = decoder.remaining_handles();
16010 if let Some((inlined, num_bytes, num_handles)) =
16011 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16012 {
16013 let member_inline_size =
16014 <fidl::encoding::Vector<u8, 16> as fidl::encoding::TypeMarker>::inline_size(
16015 decoder.context,
16016 );
16017 if inlined != (member_inline_size <= 4) {
16018 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16019 }
16020 let inner_offset;
16021 let mut inner_depth = depth.clone();
16022 if inlined {
16023 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16024 inner_offset = next_offset;
16025 } else {
16026 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16027 inner_depth.increment()?;
16028 }
16029 let val_ref = self
16030 .key_id
16031 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Vector<u8, 16>, D));
16032 fidl::decode!(fidl::encoding::Vector<u8, 16>, D, val_ref, decoder, inner_offset, inner_depth)?;
16033 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16034 {
16035 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16036 }
16037 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16038 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16039 }
16040 }
16041
16042 next_offset += envelope_size;
16043
16044 while next_offset < end_offset {
16046 _next_ordinal_to_read += 1;
16047 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16048 next_offset += envelope_size;
16049 }
16050
16051 Ok(())
16052 }
16053 }
16054
16055 impl FormatDetails {
16056 #[inline(always)]
16057 fn max_ordinal_present(&self) -> u64 {
16058 if let Some(_) = self.profile {
16059 return 8;
16060 }
16061 if let Some(_) = self.timebase {
16062 return 7;
16063 }
16064 if let Some(_) = self.encoder_settings {
16065 return 6;
16066 }
16067 if let Some(_) = self.pass_through_parameters {
16068 return 5;
16069 }
16070 if let Some(_) = self.domain {
16071 return 4;
16072 }
16073 if let Some(_) = self.oob_bytes {
16074 return 3;
16075 }
16076 if let Some(_) = self.mime_type {
16077 return 2;
16078 }
16079 if let Some(_) = self.format_details_version_ordinal {
16080 return 1;
16081 }
16082 0
16083 }
16084 }
16085
16086 impl fidl::encoding::ValueTypeMarker for FormatDetails {
16087 type Borrowed<'a> = &'a Self;
16088 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16089 value
16090 }
16091 }
16092
16093 unsafe impl fidl::encoding::TypeMarker for FormatDetails {
16094 type Owned = Self;
16095
16096 #[inline(always)]
16097 fn inline_align(_context: fidl::encoding::Context) -> usize {
16098 8
16099 }
16100
16101 #[inline(always)]
16102 fn inline_size(_context: fidl::encoding::Context) -> usize {
16103 16
16104 }
16105 }
16106
16107 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<FormatDetails, D>
16108 for &FormatDetails
16109 {
16110 unsafe fn encode(
16111 self,
16112 encoder: &mut fidl::encoding::Encoder<'_, D>,
16113 offset: usize,
16114 mut depth: fidl::encoding::Depth,
16115 ) -> fidl::Result<()> {
16116 encoder.debug_check_bounds::<FormatDetails>(offset);
16117 let max_ordinal: u64 = self.max_ordinal_present();
16119 encoder.write_num(max_ordinal, offset);
16120 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16121 if max_ordinal == 0 {
16123 return Ok(());
16124 }
16125 depth.increment()?;
16126 let envelope_size = 8;
16127 let bytes_len = max_ordinal as usize * envelope_size;
16128 #[allow(unused_variables)]
16129 let offset = encoder.out_of_line_offset(bytes_len);
16130 let mut _prev_end_offset: usize = 0;
16131 if 1 > max_ordinal {
16132 return Ok(());
16133 }
16134
16135 let cur_offset: usize = (1 - 1) * envelope_size;
16138
16139 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16141
16142 fidl::encoding::encode_in_envelope_optional::<u64, D>(
16147 self.format_details_version_ordinal
16148 .as_ref()
16149 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
16150 encoder,
16151 offset + cur_offset,
16152 depth,
16153 )?;
16154
16155 _prev_end_offset = cur_offset + envelope_size;
16156 if 2 > max_ordinal {
16157 return Ok(());
16158 }
16159
16160 let cur_offset: usize = (2 - 1) * envelope_size;
16163
16164 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16166
16167 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
16172 self.mime_type.as_ref().map(
16173 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
16174 ),
16175 encoder,
16176 offset + cur_offset,
16177 depth,
16178 )?;
16179
16180 _prev_end_offset = cur_offset + envelope_size;
16181 if 3 > max_ordinal {
16182 return Ok(());
16183 }
16184
16185 let cur_offset: usize = (3 - 1) * envelope_size;
16188
16189 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16191
16192 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
16197 self.oob_bytes.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
16198 encoder, offset + cur_offset, depth
16199 )?;
16200
16201 _prev_end_offset = cur_offset + envelope_size;
16202 if 4 > max_ordinal {
16203 return Ok(());
16204 }
16205
16206 let cur_offset: usize = (4 - 1) * envelope_size;
16209
16210 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16212
16213 fidl::encoding::encode_in_envelope_optional::<DomainFormat, D>(
16218 self.domain.as_ref().map(<DomainFormat as fidl::encoding::ValueTypeMarker>::borrow),
16219 encoder,
16220 offset + cur_offset,
16221 depth,
16222 )?;
16223
16224 _prev_end_offset = cur_offset + envelope_size;
16225 if 5 > max_ordinal {
16226 return Ok(());
16227 }
16228
16229 let cur_offset: usize = (5 - 1) * envelope_size;
16232
16233 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16235
16236 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<Parameter>, D>(
16241 self.pass_through_parameters.as_ref().map(<fidl::encoding::UnboundedVector<Parameter> as fidl::encoding::ValueTypeMarker>::borrow),
16242 encoder, offset + cur_offset, depth
16243 )?;
16244
16245 _prev_end_offset = cur_offset + envelope_size;
16246 if 6 > max_ordinal {
16247 return Ok(());
16248 }
16249
16250 let cur_offset: usize = (6 - 1) * envelope_size;
16253
16254 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16256
16257 fidl::encoding::encode_in_envelope_optional::<EncoderSettings, D>(
16262 self.encoder_settings
16263 .as_ref()
16264 .map(<EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow),
16265 encoder,
16266 offset + cur_offset,
16267 depth,
16268 )?;
16269
16270 _prev_end_offset = cur_offset + envelope_size;
16271 if 7 > max_ordinal {
16272 return Ok(());
16273 }
16274
16275 let cur_offset: usize = (7 - 1) * envelope_size;
16278
16279 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16281
16282 fidl::encoding::encode_in_envelope_optional::<u64, D>(
16287 self.timebase.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
16288 encoder,
16289 offset + cur_offset,
16290 depth,
16291 )?;
16292
16293 _prev_end_offset = cur_offset + envelope_size;
16294 if 8 > max_ordinal {
16295 return Ok(());
16296 }
16297
16298 let cur_offset: usize = (8 - 1) * envelope_size;
16301
16302 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16304
16305 fidl::encoding::encode_in_envelope_optional::<CodecProfile, D>(
16310 self.profile
16311 .as_ref()
16312 .map(<CodecProfile as fidl::encoding::ValueTypeMarker>::borrow),
16313 encoder,
16314 offset + cur_offset,
16315 depth,
16316 )?;
16317
16318 _prev_end_offset = cur_offset + envelope_size;
16319
16320 Ok(())
16321 }
16322 }
16323
16324 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for FormatDetails {
16325 #[inline(always)]
16326 fn new_empty() -> Self {
16327 Self::default()
16328 }
16329
16330 unsafe fn decode(
16331 &mut self,
16332 decoder: &mut fidl::encoding::Decoder<'_, D>,
16333 offset: usize,
16334 mut depth: fidl::encoding::Depth,
16335 ) -> fidl::Result<()> {
16336 decoder.debug_check_bounds::<Self>(offset);
16337 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16338 None => return Err(fidl::Error::NotNullable),
16339 Some(len) => len,
16340 };
16341 if len == 0 {
16343 return Ok(());
16344 };
16345 depth.increment()?;
16346 let envelope_size = 8;
16347 let bytes_len = len * envelope_size;
16348 let offset = decoder.out_of_line_offset(bytes_len)?;
16349 let mut _next_ordinal_to_read = 0;
16351 let mut next_offset = offset;
16352 let end_offset = offset + bytes_len;
16353 _next_ordinal_to_read += 1;
16354 if next_offset >= end_offset {
16355 return Ok(());
16356 }
16357
16358 while _next_ordinal_to_read < 1 {
16360 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16361 _next_ordinal_to_read += 1;
16362 next_offset += envelope_size;
16363 }
16364
16365 let next_out_of_line = decoder.next_out_of_line();
16366 let handles_before = decoder.remaining_handles();
16367 if let Some((inlined, num_bytes, num_handles)) =
16368 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16369 {
16370 let member_inline_size =
16371 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16372 if inlined != (member_inline_size <= 4) {
16373 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16374 }
16375 let inner_offset;
16376 let mut inner_depth = depth.clone();
16377 if inlined {
16378 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16379 inner_offset = next_offset;
16380 } else {
16381 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16382 inner_depth.increment()?;
16383 }
16384 let val_ref = self
16385 .format_details_version_ordinal
16386 .get_or_insert_with(|| fidl::new_empty!(u64, D));
16387 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
16388 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16389 {
16390 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16391 }
16392 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16393 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16394 }
16395 }
16396
16397 next_offset += envelope_size;
16398 _next_ordinal_to_read += 1;
16399 if next_offset >= end_offset {
16400 return Ok(());
16401 }
16402
16403 while _next_ordinal_to_read < 2 {
16405 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16406 _next_ordinal_to_read += 1;
16407 next_offset += envelope_size;
16408 }
16409
16410 let next_out_of_line = decoder.next_out_of_line();
16411 let handles_before = decoder.remaining_handles();
16412 if let Some((inlined, num_bytes, num_handles)) =
16413 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16414 {
16415 let member_inline_size =
16416 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
16417 decoder.context,
16418 );
16419 if inlined != (member_inline_size <= 4) {
16420 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16421 }
16422 let inner_offset;
16423 let mut inner_depth = depth.clone();
16424 if inlined {
16425 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16426 inner_offset = next_offset;
16427 } else {
16428 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16429 inner_depth.increment()?;
16430 }
16431 let val_ref = self
16432 .mime_type
16433 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
16434 fidl::decode!(
16435 fidl::encoding::UnboundedString,
16436 D,
16437 val_ref,
16438 decoder,
16439 inner_offset,
16440 inner_depth
16441 )?;
16442 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16443 {
16444 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16445 }
16446 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16447 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16448 }
16449 }
16450
16451 next_offset += envelope_size;
16452 _next_ordinal_to_read += 1;
16453 if next_offset >= end_offset {
16454 return Ok(());
16455 }
16456
16457 while _next_ordinal_to_read < 3 {
16459 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16460 _next_ordinal_to_read += 1;
16461 next_offset += envelope_size;
16462 }
16463
16464 let next_out_of_line = decoder.next_out_of_line();
16465 let handles_before = decoder.remaining_handles();
16466 if let Some((inlined, num_bytes, num_handles)) =
16467 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16468 {
16469 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16470 if inlined != (member_inline_size <= 4) {
16471 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16472 }
16473 let inner_offset;
16474 let mut inner_depth = depth.clone();
16475 if inlined {
16476 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16477 inner_offset = next_offset;
16478 } else {
16479 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16480 inner_depth.increment()?;
16481 }
16482 let val_ref = self.oob_bytes.get_or_insert_with(|| {
16483 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
16484 });
16485 fidl::decode!(
16486 fidl::encoding::UnboundedVector<u8>,
16487 D,
16488 val_ref,
16489 decoder,
16490 inner_offset,
16491 inner_depth
16492 )?;
16493 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16494 {
16495 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16496 }
16497 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16498 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16499 }
16500 }
16501
16502 next_offset += envelope_size;
16503 _next_ordinal_to_read += 1;
16504 if next_offset >= end_offset {
16505 return Ok(());
16506 }
16507
16508 while _next_ordinal_to_read < 4 {
16510 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16511 _next_ordinal_to_read += 1;
16512 next_offset += envelope_size;
16513 }
16514
16515 let next_out_of_line = decoder.next_out_of_line();
16516 let handles_before = decoder.remaining_handles();
16517 if let Some((inlined, num_bytes, num_handles)) =
16518 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16519 {
16520 let member_inline_size =
16521 <DomainFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16522 if inlined != (member_inline_size <= 4) {
16523 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16524 }
16525 let inner_offset;
16526 let mut inner_depth = depth.clone();
16527 if inlined {
16528 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16529 inner_offset = next_offset;
16530 } else {
16531 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16532 inner_depth.increment()?;
16533 }
16534 let val_ref = self.domain.get_or_insert_with(|| fidl::new_empty!(DomainFormat, D));
16535 fidl::decode!(DomainFormat, D, val_ref, decoder, inner_offset, inner_depth)?;
16536 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16537 {
16538 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16539 }
16540 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16541 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16542 }
16543 }
16544
16545 next_offset += envelope_size;
16546 _next_ordinal_to_read += 1;
16547 if next_offset >= end_offset {
16548 return Ok(());
16549 }
16550
16551 while _next_ordinal_to_read < 5 {
16553 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16554 _next_ordinal_to_read += 1;
16555 next_offset += envelope_size;
16556 }
16557
16558 let next_out_of_line = decoder.next_out_of_line();
16559 let handles_before = decoder.remaining_handles();
16560 if let Some((inlined, num_bytes, num_handles)) =
16561 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16562 {
16563 let member_inline_size = <fidl::encoding::UnboundedVector<Parameter> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16564 if inlined != (member_inline_size <= 4) {
16565 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16566 }
16567 let inner_offset;
16568 let mut inner_depth = depth.clone();
16569 if inlined {
16570 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16571 inner_offset = next_offset;
16572 } else {
16573 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16574 inner_depth.increment()?;
16575 }
16576 let val_ref = self.pass_through_parameters.get_or_insert_with(|| {
16577 fidl::new_empty!(fidl::encoding::UnboundedVector<Parameter>, D)
16578 });
16579 fidl::decode!(
16580 fidl::encoding::UnboundedVector<Parameter>,
16581 D,
16582 val_ref,
16583 decoder,
16584 inner_offset,
16585 inner_depth
16586 )?;
16587 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16588 {
16589 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16590 }
16591 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16592 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16593 }
16594 }
16595
16596 next_offset += envelope_size;
16597 _next_ordinal_to_read += 1;
16598 if next_offset >= end_offset {
16599 return Ok(());
16600 }
16601
16602 while _next_ordinal_to_read < 6 {
16604 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16605 _next_ordinal_to_read += 1;
16606 next_offset += envelope_size;
16607 }
16608
16609 let next_out_of_line = decoder.next_out_of_line();
16610 let handles_before = decoder.remaining_handles();
16611 if let Some((inlined, num_bytes, num_handles)) =
16612 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16613 {
16614 let member_inline_size =
16615 <EncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16616 if inlined != (member_inline_size <= 4) {
16617 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16618 }
16619 let inner_offset;
16620 let mut inner_depth = depth.clone();
16621 if inlined {
16622 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16623 inner_offset = next_offset;
16624 } else {
16625 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16626 inner_depth.increment()?;
16627 }
16628 let val_ref = self
16629 .encoder_settings
16630 .get_or_insert_with(|| fidl::new_empty!(EncoderSettings, D));
16631 fidl::decode!(EncoderSettings, D, val_ref, decoder, inner_offset, inner_depth)?;
16632 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16633 {
16634 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16635 }
16636 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16637 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16638 }
16639 }
16640
16641 next_offset += envelope_size;
16642 _next_ordinal_to_read += 1;
16643 if next_offset >= end_offset {
16644 return Ok(());
16645 }
16646
16647 while _next_ordinal_to_read < 7 {
16649 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16650 _next_ordinal_to_read += 1;
16651 next_offset += envelope_size;
16652 }
16653
16654 let next_out_of_line = decoder.next_out_of_line();
16655 let handles_before = decoder.remaining_handles();
16656 if let Some((inlined, num_bytes, num_handles)) =
16657 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16658 {
16659 let member_inline_size =
16660 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16661 if inlined != (member_inline_size <= 4) {
16662 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16663 }
16664 let inner_offset;
16665 let mut inner_depth = depth.clone();
16666 if inlined {
16667 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16668 inner_offset = next_offset;
16669 } else {
16670 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16671 inner_depth.increment()?;
16672 }
16673 let val_ref = self.timebase.get_or_insert_with(|| fidl::new_empty!(u64, D));
16674 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
16675 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16676 {
16677 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16678 }
16679 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16680 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16681 }
16682 }
16683
16684 next_offset += envelope_size;
16685 _next_ordinal_to_read += 1;
16686 if next_offset >= end_offset {
16687 return Ok(());
16688 }
16689
16690 while _next_ordinal_to_read < 8 {
16692 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16693 _next_ordinal_to_read += 1;
16694 next_offset += envelope_size;
16695 }
16696
16697 let next_out_of_line = decoder.next_out_of_line();
16698 let handles_before = decoder.remaining_handles();
16699 if let Some((inlined, num_bytes, num_handles)) =
16700 fidl::encoding::decode_envelope_header(decoder, next_offset)?
16701 {
16702 let member_inline_size =
16703 <CodecProfile as fidl::encoding::TypeMarker>::inline_size(decoder.context);
16704 if inlined != (member_inline_size <= 4) {
16705 return Err(fidl::Error::InvalidInlineBitInEnvelope);
16706 }
16707 let inner_offset;
16708 let mut inner_depth = depth.clone();
16709 if inlined {
16710 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
16711 inner_offset = next_offset;
16712 } else {
16713 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
16714 inner_depth.increment()?;
16715 }
16716 let val_ref = self.profile.get_or_insert_with(|| fidl::new_empty!(CodecProfile, D));
16717 fidl::decode!(CodecProfile, D, val_ref, decoder, inner_offset, inner_depth)?;
16718 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
16719 {
16720 return Err(fidl::Error::InvalidNumBytesInEnvelope);
16721 }
16722 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
16723 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
16724 }
16725 }
16726
16727 next_offset += envelope_size;
16728
16729 while next_offset < end_offset {
16731 _next_ordinal_to_read += 1;
16732 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
16733 next_offset += envelope_size;
16734 }
16735
16736 Ok(())
16737 }
16738 }
16739
16740 impl H264EncoderSettings {
16741 #[inline(always)]
16742 fn max_ordinal_present(&self) -> u64 {
16743 if let Some(_) = self.quantization_params {
16744 return 7;
16745 }
16746 if let Some(_) = self.force_key_frame {
16747 return 6;
16748 }
16749 if let Some(_) = self.min_frame_rate {
16750 return 5;
16751 }
16752 if let Some(_) = self.variable_frame_rate {
16753 return 4;
16754 }
16755 if let Some(_) = self.gop_size {
16756 return 3;
16757 }
16758 if let Some(_) = self.frame_rate {
16759 return 2;
16760 }
16761 if let Some(_) = self.bit_rate {
16762 return 1;
16763 }
16764 0
16765 }
16766 }
16767
16768 impl fidl::encoding::ValueTypeMarker for H264EncoderSettings {
16769 type Borrowed<'a> = &'a Self;
16770 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
16771 value
16772 }
16773 }
16774
16775 unsafe impl fidl::encoding::TypeMarker for H264EncoderSettings {
16776 type Owned = Self;
16777
16778 #[inline(always)]
16779 fn inline_align(_context: fidl::encoding::Context) -> usize {
16780 8
16781 }
16782
16783 #[inline(always)]
16784 fn inline_size(_context: fidl::encoding::Context) -> usize {
16785 16
16786 }
16787 }
16788
16789 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<H264EncoderSettings, D>
16790 for &H264EncoderSettings
16791 {
16792 unsafe fn encode(
16793 self,
16794 encoder: &mut fidl::encoding::Encoder<'_, D>,
16795 offset: usize,
16796 mut depth: fidl::encoding::Depth,
16797 ) -> fidl::Result<()> {
16798 encoder.debug_check_bounds::<H264EncoderSettings>(offset);
16799 let max_ordinal: u64 = self.max_ordinal_present();
16801 encoder.write_num(max_ordinal, offset);
16802 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
16803 if max_ordinal == 0 {
16805 return Ok(());
16806 }
16807 depth.increment()?;
16808 let envelope_size = 8;
16809 let bytes_len = max_ordinal as usize * envelope_size;
16810 #[allow(unused_variables)]
16811 let offset = encoder.out_of_line_offset(bytes_len);
16812 let mut _prev_end_offset: usize = 0;
16813 if 1 > max_ordinal {
16814 return Ok(());
16815 }
16816
16817 let cur_offset: usize = (1 - 1) * envelope_size;
16820
16821 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16823
16824 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16829 self.bit_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16830 encoder,
16831 offset + cur_offset,
16832 depth,
16833 )?;
16834
16835 _prev_end_offset = cur_offset + envelope_size;
16836 if 2 > max_ordinal {
16837 return Ok(());
16838 }
16839
16840 let cur_offset: usize = (2 - 1) * envelope_size;
16843
16844 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16846
16847 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16852 self.frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16853 encoder,
16854 offset + cur_offset,
16855 depth,
16856 )?;
16857
16858 _prev_end_offset = cur_offset + envelope_size;
16859 if 3 > max_ordinal {
16860 return Ok(());
16861 }
16862
16863 let cur_offset: usize = (3 - 1) * envelope_size;
16866
16867 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16869
16870 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16875 self.gop_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16876 encoder,
16877 offset + cur_offset,
16878 depth,
16879 )?;
16880
16881 _prev_end_offset = cur_offset + envelope_size;
16882 if 4 > max_ordinal {
16883 return Ok(());
16884 }
16885
16886 let cur_offset: usize = (4 - 1) * envelope_size;
16889
16890 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16892
16893 fidl::encoding::encode_in_envelope_optional::<bool, D>(
16898 self.variable_frame_rate
16899 .as_ref()
16900 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
16901 encoder,
16902 offset + cur_offset,
16903 depth,
16904 )?;
16905
16906 _prev_end_offset = cur_offset + envelope_size;
16907 if 5 > max_ordinal {
16908 return Ok(());
16909 }
16910
16911 let cur_offset: usize = (5 - 1) * envelope_size;
16914
16915 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16917
16918 fidl::encoding::encode_in_envelope_optional::<u32, D>(
16923 self.min_frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
16924 encoder,
16925 offset + cur_offset,
16926 depth,
16927 )?;
16928
16929 _prev_end_offset = cur_offset + envelope_size;
16930 if 6 > max_ordinal {
16931 return Ok(());
16932 }
16933
16934 let cur_offset: usize = (6 - 1) * envelope_size;
16937
16938 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16940
16941 fidl::encoding::encode_in_envelope_optional::<bool, D>(
16946 self.force_key_frame
16947 .as_ref()
16948 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
16949 encoder,
16950 offset + cur_offset,
16951 depth,
16952 )?;
16953
16954 _prev_end_offset = cur_offset + envelope_size;
16955 if 7 > max_ordinal {
16956 return Ok(());
16957 }
16958
16959 let cur_offset: usize = (7 - 1) * envelope_size;
16962
16963 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
16965
16966 fidl::encoding::encode_in_envelope_optional::<H264QuantizationParameters, D>(
16971 self.quantization_params
16972 .as_ref()
16973 .map(<H264QuantizationParameters as fidl::encoding::ValueTypeMarker>::borrow),
16974 encoder,
16975 offset + cur_offset,
16976 depth,
16977 )?;
16978
16979 _prev_end_offset = cur_offset + envelope_size;
16980
16981 Ok(())
16982 }
16983 }
16984
16985 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for H264EncoderSettings {
16986 #[inline(always)]
16987 fn new_empty() -> Self {
16988 Self::default()
16989 }
16990
16991 unsafe fn decode(
16992 &mut self,
16993 decoder: &mut fidl::encoding::Decoder<'_, D>,
16994 offset: usize,
16995 mut depth: fidl::encoding::Depth,
16996 ) -> fidl::Result<()> {
16997 decoder.debug_check_bounds::<Self>(offset);
16998 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
16999 None => return Err(fidl::Error::NotNullable),
17000 Some(len) => len,
17001 };
17002 if len == 0 {
17004 return Ok(());
17005 };
17006 depth.increment()?;
17007 let envelope_size = 8;
17008 let bytes_len = len * envelope_size;
17009 let offset = decoder.out_of_line_offset(bytes_len)?;
17010 let mut _next_ordinal_to_read = 0;
17012 let mut next_offset = offset;
17013 let end_offset = offset + bytes_len;
17014 _next_ordinal_to_read += 1;
17015 if next_offset >= end_offset {
17016 return Ok(());
17017 }
17018
17019 while _next_ordinal_to_read < 1 {
17021 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17022 _next_ordinal_to_read += 1;
17023 next_offset += envelope_size;
17024 }
17025
17026 let next_out_of_line = decoder.next_out_of_line();
17027 let handles_before = decoder.remaining_handles();
17028 if let Some((inlined, num_bytes, num_handles)) =
17029 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17030 {
17031 let member_inline_size =
17032 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17033 if inlined != (member_inline_size <= 4) {
17034 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17035 }
17036 let inner_offset;
17037 let mut inner_depth = depth.clone();
17038 if inlined {
17039 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17040 inner_offset = next_offset;
17041 } else {
17042 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17043 inner_depth.increment()?;
17044 }
17045 let val_ref = self.bit_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17046 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17047 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17048 {
17049 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17050 }
17051 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17052 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17053 }
17054 }
17055
17056 next_offset += envelope_size;
17057 _next_ordinal_to_read += 1;
17058 if next_offset >= end_offset {
17059 return Ok(());
17060 }
17061
17062 while _next_ordinal_to_read < 2 {
17064 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17065 _next_ordinal_to_read += 1;
17066 next_offset += envelope_size;
17067 }
17068
17069 let next_out_of_line = decoder.next_out_of_line();
17070 let handles_before = decoder.remaining_handles();
17071 if let Some((inlined, num_bytes, num_handles)) =
17072 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17073 {
17074 let member_inline_size =
17075 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17076 if inlined != (member_inline_size <= 4) {
17077 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17078 }
17079 let inner_offset;
17080 let mut inner_depth = depth.clone();
17081 if inlined {
17082 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17083 inner_offset = next_offset;
17084 } else {
17085 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17086 inner_depth.increment()?;
17087 }
17088 let val_ref = self.frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17089 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17090 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17091 {
17092 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17093 }
17094 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17095 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17096 }
17097 }
17098
17099 next_offset += envelope_size;
17100 _next_ordinal_to_read += 1;
17101 if next_offset >= end_offset {
17102 return Ok(());
17103 }
17104
17105 while _next_ordinal_to_read < 3 {
17107 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17108 _next_ordinal_to_read += 1;
17109 next_offset += envelope_size;
17110 }
17111
17112 let next_out_of_line = decoder.next_out_of_line();
17113 let handles_before = decoder.remaining_handles();
17114 if let Some((inlined, num_bytes, num_handles)) =
17115 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17116 {
17117 let member_inline_size =
17118 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17119 if inlined != (member_inline_size <= 4) {
17120 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17121 }
17122 let inner_offset;
17123 let mut inner_depth = depth.clone();
17124 if inlined {
17125 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17126 inner_offset = next_offset;
17127 } else {
17128 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17129 inner_depth.increment()?;
17130 }
17131 let val_ref = self.gop_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
17132 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17133 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17134 {
17135 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17136 }
17137 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17138 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17139 }
17140 }
17141
17142 next_offset += envelope_size;
17143 _next_ordinal_to_read += 1;
17144 if next_offset >= end_offset {
17145 return Ok(());
17146 }
17147
17148 while _next_ordinal_to_read < 4 {
17150 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17151 _next_ordinal_to_read += 1;
17152 next_offset += envelope_size;
17153 }
17154
17155 let next_out_of_line = decoder.next_out_of_line();
17156 let handles_before = decoder.remaining_handles();
17157 if let Some((inlined, num_bytes, num_handles)) =
17158 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17159 {
17160 let member_inline_size =
17161 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17162 if inlined != (member_inline_size <= 4) {
17163 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17164 }
17165 let inner_offset;
17166 let mut inner_depth = depth.clone();
17167 if inlined {
17168 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17169 inner_offset = next_offset;
17170 } else {
17171 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17172 inner_depth.increment()?;
17173 }
17174 let val_ref =
17175 self.variable_frame_rate.get_or_insert_with(|| fidl::new_empty!(bool, D));
17176 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
17177 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17178 {
17179 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17180 }
17181 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17182 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17183 }
17184 }
17185
17186 next_offset += envelope_size;
17187 _next_ordinal_to_read += 1;
17188 if next_offset >= end_offset {
17189 return Ok(());
17190 }
17191
17192 while _next_ordinal_to_read < 5 {
17194 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17195 _next_ordinal_to_read += 1;
17196 next_offset += envelope_size;
17197 }
17198
17199 let next_out_of_line = decoder.next_out_of_line();
17200 let handles_before = decoder.remaining_handles();
17201 if let Some((inlined, num_bytes, num_handles)) =
17202 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17203 {
17204 let member_inline_size =
17205 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17206 if inlined != (member_inline_size <= 4) {
17207 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17208 }
17209 let inner_offset;
17210 let mut inner_depth = depth.clone();
17211 if inlined {
17212 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17213 inner_offset = next_offset;
17214 } else {
17215 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17216 inner_depth.increment()?;
17217 }
17218 let val_ref = self.min_frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
17219 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17220 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17221 {
17222 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17223 }
17224 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17225 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17226 }
17227 }
17228
17229 next_offset += envelope_size;
17230 _next_ordinal_to_read += 1;
17231 if next_offset >= end_offset {
17232 return Ok(());
17233 }
17234
17235 while _next_ordinal_to_read < 6 {
17237 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17238 _next_ordinal_to_read += 1;
17239 next_offset += envelope_size;
17240 }
17241
17242 let next_out_of_line = decoder.next_out_of_line();
17243 let handles_before = decoder.remaining_handles();
17244 if let Some((inlined, num_bytes, num_handles)) =
17245 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17246 {
17247 let member_inline_size =
17248 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17249 if inlined != (member_inline_size <= 4) {
17250 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17251 }
17252 let inner_offset;
17253 let mut inner_depth = depth.clone();
17254 if inlined {
17255 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17256 inner_offset = next_offset;
17257 } else {
17258 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17259 inner_depth.increment()?;
17260 }
17261 let val_ref = self.force_key_frame.get_or_insert_with(|| fidl::new_empty!(bool, D));
17262 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
17263 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17264 {
17265 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17266 }
17267 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17268 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17269 }
17270 }
17271
17272 next_offset += envelope_size;
17273 _next_ordinal_to_read += 1;
17274 if next_offset >= end_offset {
17275 return Ok(());
17276 }
17277
17278 while _next_ordinal_to_read < 7 {
17280 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17281 _next_ordinal_to_read += 1;
17282 next_offset += envelope_size;
17283 }
17284
17285 let next_out_of_line = decoder.next_out_of_line();
17286 let handles_before = decoder.remaining_handles();
17287 if let Some((inlined, num_bytes, num_handles)) =
17288 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17289 {
17290 let member_inline_size =
17291 <H264QuantizationParameters as fidl::encoding::TypeMarker>::inline_size(
17292 decoder.context,
17293 );
17294 if inlined != (member_inline_size <= 4) {
17295 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17296 }
17297 let inner_offset;
17298 let mut inner_depth = depth.clone();
17299 if inlined {
17300 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17301 inner_offset = next_offset;
17302 } else {
17303 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17304 inner_depth.increment()?;
17305 }
17306 let val_ref = self
17307 .quantization_params
17308 .get_or_insert_with(|| fidl::new_empty!(H264QuantizationParameters, D));
17309 fidl::decode!(
17310 H264QuantizationParameters,
17311 D,
17312 val_ref,
17313 decoder,
17314 inner_offset,
17315 inner_depth
17316 )?;
17317 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17318 {
17319 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17320 }
17321 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17322 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17323 }
17324 }
17325
17326 next_offset += envelope_size;
17327
17328 while next_offset < end_offset {
17330 _next_ordinal_to_read += 1;
17331 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17332 next_offset += envelope_size;
17333 }
17334
17335 Ok(())
17336 }
17337 }
17338
17339 impl H264QuantizationParameters {
17340 #[inline(always)]
17341 fn max_ordinal_present(&self) -> u64 {
17342 if let Some(_) = self.p_max {
17343 return 6;
17344 }
17345 if let Some(_) = self.p_min {
17346 return 5;
17347 }
17348 if let Some(_) = self.p_base {
17349 return 4;
17350 }
17351 if let Some(_) = self.i_max {
17352 return 3;
17353 }
17354 if let Some(_) = self.i_min {
17355 return 2;
17356 }
17357 if let Some(_) = self.i_base {
17358 return 1;
17359 }
17360 0
17361 }
17362 }
17363
17364 impl fidl::encoding::ValueTypeMarker for H264QuantizationParameters {
17365 type Borrowed<'a> = &'a Self;
17366 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17367 value
17368 }
17369 }
17370
17371 unsafe impl fidl::encoding::TypeMarker for H264QuantizationParameters {
17372 type Owned = Self;
17373
17374 #[inline(always)]
17375 fn inline_align(_context: fidl::encoding::Context) -> usize {
17376 8
17377 }
17378
17379 #[inline(always)]
17380 fn inline_size(_context: fidl::encoding::Context) -> usize {
17381 16
17382 }
17383 }
17384
17385 unsafe impl<D: fidl::encoding::ResourceDialect>
17386 fidl::encoding::Encode<H264QuantizationParameters, D> for &H264QuantizationParameters
17387 {
17388 unsafe fn encode(
17389 self,
17390 encoder: &mut fidl::encoding::Encoder<'_, D>,
17391 offset: usize,
17392 mut depth: fidl::encoding::Depth,
17393 ) -> fidl::Result<()> {
17394 encoder.debug_check_bounds::<H264QuantizationParameters>(offset);
17395 let max_ordinal: u64 = self.max_ordinal_present();
17397 encoder.write_num(max_ordinal, offset);
17398 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17399 if max_ordinal == 0 {
17401 return Ok(());
17402 }
17403 depth.increment()?;
17404 let envelope_size = 8;
17405 let bytes_len = max_ordinal as usize * envelope_size;
17406 #[allow(unused_variables)]
17407 let offset = encoder.out_of_line_offset(bytes_len);
17408 let mut _prev_end_offset: usize = 0;
17409 if 1 > max_ordinal {
17410 return Ok(());
17411 }
17412
17413 let cur_offset: usize = (1 - 1) * envelope_size;
17416
17417 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17419
17420 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17425 self.i_base.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17426 encoder,
17427 offset + cur_offset,
17428 depth,
17429 )?;
17430
17431 _prev_end_offset = cur_offset + envelope_size;
17432 if 2 > max_ordinal {
17433 return Ok(());
17434 }
17435
17436 let cur_offset: usize = (2 - 1) * envelope_size;
17439
17440 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17442
17443 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17448 self.i_min.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17449 encoder,
17450 offset + cur_offset,
17451 depth,
17452 )?;
17453
17454 _prev_end_offset = cur_offset + envelope_size;
17455 if 3 > max_ordinal {
17456 return Ok(());
17457 }
17458
17459 let cur_offset: usize = (3 - 1) * envelope_size;
17462
17463 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17465
17466 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17471 self.i_max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17472 encoder,
17473 offset + cur_offset,
17474 depth,
17475 )?;
17476
17477 _prev_end_offset = cur_offset + envelope_size;
17478 if 4 > max_ordinal {
17479 return Ok(());
17480 }
17481
17482 let cur_offset: usize = (4 - 1) * envelope_size;
17485
17486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17488
17489 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17494 self.p_base.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17495 encoder,
17496 offset + cur_offset,
17497 depth,
17498 )?;
17499
17500 _prev_end_offset = cur_offset + envelope_size;
17501 if 5 > max_ordinal {
17502 return Ok(());
17503 }
17504
17505 let cur_offset: usize = (5 - 1) * envelope_size;
17508
17509 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17511
17512 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17517 self.p_min.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17518 encoder,
17519 offset + cur_offset,
17520 depth,
17521 )?;
17522
17523 _prev_end_offset = cur_offset + envelope_size;
17524 if 6 > max_ordinal {
17525 return Ok(());
17526 }
17527
17528 let cur_offset: usize = (6 - 1) * envelope_size;
17531
17532 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17534
17535 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17540 self.p_max.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17541 encoder,
17542 offset + cur_offset,
17543 depth,
17544 )?;
17545
17546 _prev_end_offset = cur_offset + envelope_size;
17547
17548 Ok(())
17549 }
17550 }
17551
17552 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
17553 for H264QuantizationParameters
17554 {
17555 #[inline(always)]
17556 fn new_empty() -> Self {
17557 Self::default()
17558 }
17559
17560 unsafe fn decode(
17561 &mut self,
17562 decoder: &mut fidl::encoding::Decoder<'_, D>,
17563 offset: usize,
17564 mut depth: fidl::encoding::Depth,
17565 ) -> fidl::Result<()> {
17566 decoder.debug_check_bounds::<Self>(offset);
17567 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
17568 None => return Err(fidl::Error::NotNullable),
17569 Some(len) => len,
17570 };
17571 if len == 0 {
17573 return Ok(());
17574 };
17575 depth.increment()?;
17576 let envelope_size = 8;
17577 let bytes_len = len * envelope_size;
17578 let offset = decoder.out_of_line_offset(bytes_len)?;
17579 let mut _next_ordinal_to_read = 0;
17581 let mut next_offset = offset;
17582 let end_offset = offset + bytes_len;
17583 _next_ordinal_to_read += 1;
17584 if next_offset >= end_offset {
17585 return Ok(());
17586 }
17587
17588 while _next_ordinal_to_read < 1 {
17590 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17591 _next_ordinal_to_read += 1;
17592 next_offset += envelope_size;
17593 }
17594
17595 let next_out_of_line = decoder.next_out_of_line();
17596 let handles_before = decoder.remaining_handles();
17597 if let Some((inlined, num_bytes, num_handles)) =
17598 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17599 {
17600 let member_inline_size =
17601 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17602 if inlined != (member_inline_size <= 4) {
17603 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17604 }
17605 let inner_offset;
17606 let mut inner_depth = depth.clone();
17607 if inlined {
17608 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17609 inner_offset = next_offset;
17610 } else {
17611 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17612 inner_depth.increment()?;
17613 }
17614 let val_ref = self.i_base.get_or_insert_with(|| fidl::new_empty!(u32, D));
17615 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17616 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17617 {
17618 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17619 }
17620 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17621 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17622 }
17623 }
17624
17625 next_offset += envelope_size;
17626 _next_ordinal_to_read += 1;
17627 if next_offset >= end_offset {
17628 return Ok(());
17629 }
17630
17631 while _next_ordinal_to_read < 2 {
17633 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17634 _next_ordinal_to_read += 1;
17635 next_offset += envelope_size;
17636 }
17637
17638 let next_out_of_line = decoder.next_out_of_line();
17639 let handles_before = decoder.remaining_handles();
17640 if let Some((inlined, num_bytes, num_handles)) =
17641 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17642 {
17643 let member_inline_size =
17644 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17645 if inlined != (member_inline_size <= 4) {
17646 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17647 }
17648 let inner_offset;
17649 let mut inner_depth = depth.clone();
17650 if inlined {
17651 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17652 inner_offset = next_offset;
17653 } else {
17654 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17655 inner_depth.increment()?;
17656 }
17657 let val_ref = self.i_min.get_or_insert_with(|| fidl::new_empty!(u32, D));
17658 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17659 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17660 {
17661 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17662 }
17663 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17664 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17665 }
17666 }
17667
17668 next_offset += envelope_size;
17669 _next_ordinal_to_read += 1;
17670 if next_offset >= end_offset {
17671 return Ok(());
17672 }
17673
17674 while _next_ordinal_to_read < 3 {
17676 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17677 _next_ordinal_to_read += 1;
17678 next_offset += envelope_size;
17679 }
17680
17681 let next_out_of_line = decoder.next_out_of_line();
17682 let handles_before = decoder.remaining_handles();
17683 if let Some((inlined, num_bytes, num_handles)) =
17684 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17685 {
17686 let member_inline_size =
17687 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17688 if inlined != (member_inline_size <= 4) {
17689 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17690 }
17691 let inner_offset;
17692 let mut inner_depth = depth.clone();
17693 if inlined {
17694 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17695 inner_offset = next_offset;
17696 } else {
17697 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17698 inner_depth.increment()?;
17699 }
17700 let val_ref = self.i_max.get_or_insert_with(|| fidl::new_empty!(u32, D));
17701 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17702 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17703 {
17704 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17705 }
17706 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17707 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17708 }
17709 }
17710
17711 next_offset += envelope_size;
17712 _next_ordinal_to_read += 1;
17713 if next_offset >= end_offset {
17714 return Ok(());
17715 }
17716
17717 while _next_ordinal_to_read < 4 {
17719 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17720 _next_ordinal_to_read += 1;
17721 next_offset += envelope_size;
17722 }
17723
17724 let next_out_of_line = decoder.next_out_of_line();
17725 let handles_before = decoder.remaining_handles();
17726 if let Some((inlined, num_bytes, num_handles)) =
17727 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17728 {
17729 let member_inline_size =
17730 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17731 if inlined != (member_inline_size <= 4) {
17732 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17733 }
17734 let inner_offset;
17735 let mut inner_depth = depth.clone();
17736 if inlined {
17737 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17738 inner_offset = next_offset;
17739 } else {
17740 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17741 inner_depth.increment()?;
17742 }
17743 let val_ref = self.p_base.get_or_insert_with(|| fidl::new_empty!(u32, D));
17744 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17745 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17746 {
17747 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17748 }
17749 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17750 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17751 }
17752 }
17753
17754 next_offset += envelope_size;
17755 _next_ordinal_to_read += 1;
17756 if next_offset >= end_offset {
17757 return Ok(());
17758 }
17759
17760 while _next_ordinal_to_read < 5 {
17762 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17763 _next_ordinal_to_read += 1;
17764 next_offset += envelope_size;
17765 }
17766
17767 let next_out_of_line = decoder.next_out_of_line();
17768 let handles_before = decoder.remaining_handles();
17769 if let Some((inlined, num_bytes, num_handles)) =
17770 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17771 {
17772 let member_inline_size =
17773 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17774 if inlined != (member_inline_size <= 4) {
17775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17776 }
17777 let inner_offset;
17778 let mut inner_depth = depth.clone();
17779 if inlined {
17780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17781 inner_offset = next_offset;
17782 } else {
17783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17784 inner_depth.increment()?;
17785 }
17786 let val_ref = self.p_min.get_or_insert_with(|| fidl::new_empty!(u32, D));
17787 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17788 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17789 {
17790 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17791 }
17792 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17793 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17794 }
17795 }
17796
17797 next_offset += envelope_size;
17798 _next_ordinal_to_read += 1;
17799 if next_offset >= end_offset {
17800 return Ok(());
17801 }
17802
17803 while _next_ordinal_to_read < 6 {
17805 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17806 _next_ordinal_to_read += 1;
17807 next_offset += envelope_size;
17808 }
17809
17810 let next_out_of_line = decoder.next_out_of_line();
17811 let handles_before = decoder.remaining_handles();
17812 if let Some((inlined, num_bytes, num_handles)) =
17813 fidl::encoding::decode_envelope_header(decoder, next_offset)?
17814 {
17815 let member_inline_size =
17816 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
17817 if inlined != (member_inline_size <= 4) {
17818 return Err(fidl::Error::InvalidInlineBitInEnvelope);
17819 }
17820 let inner_offset;
17821 let mut inner_depth = depth.clone();
17822 if inlined {
17823 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
17824 inner_offset = next_offset;
17825 } else {
17826 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
17827 inner_depth.increment()?;
17828 }
17829 let val_ref = self.p_max.get_or_insert_with(|| fidl::new_empty!(u32, D));
17830 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
17831 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
17832 {
17833 return Err(fidl::Error::InvalidNumBytesInEnvelope);
17834 }
17835 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
17836 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
17837 }
17838 }
17839
17840 next_offset += envelope_size;
17841
17842 while next_offset < end_offset {
17844 _next_ordinal_to_read += 1;
17845 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
17846 next_offset += envelope_size;
17847 }
17848
17849 Ok(())
17850 }
17851 }
17852
17853 impl HevcEncoderSettings {
17854 #[inline(always)]
17855 fn max_ordinal_present(&self) -> u64 {
17856 if let Some(_) = self.gop_size {
17857 return 3;
17858 }
17859 if let Some(_) = self.frame_rate {
17860 return 2;
17861 }
17862 if let Some(_) = self.bit_rate {
17863 return 1;
17864 }
17865 0
17866 }
17867 }
17868
17869 impl fidl::encoding::ValueTypeMarker for HevcEncoderSettings {
17870 type Borrowed<'a> = &'a Self;
17871 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
17872 value
17873 }
17874 }
17875
17876 unsafe impl fidl::encoding::TypeMarker for HevcEncoderSettings {
17877 type Owned = Self;
17878
17879 #[inline(always)]
17880 fn inline_align(_context: fidl::encoding::Context) -> usize {
17881 8
17882 }
17883
17884 #[inline(always)]
17885 fn inline_size(_context: fidl::encoding::Context) -> usize {
17886 16
17887 }
17888 }
17889
17890 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<HevcEncoderSettings, D>
17891 for &HevcEncoderSettings
17892 {
17893 unsafe fn encode(
17894 self,
17895 encoder: &mut fidl::encoding::Encoder<'_, D>,
17896 offset: usize,
17897 mut depth: fidl::encoding::Depth,
17898 ) -> fidl::Result<()> {
17899 encoder.debug_check_bounds::<HevcEncoderSettings>(offset);
17900 let max_ordinal: u64 = self.max_ordinal_present();
17902 encoder.write_num(max_ordinal, offset);
17903 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
17904 if max_ordinal == 0 {
17906 return Ok(());
17907 }
17908 depth.increment()?;
17909 let envelope_size = 8;
17910 let bytes_len = max_ordinal as usize * envelope_size;
17911 #[allow(unused_variables)]
17912 let offset = encoder.out_of_line_offset(bytes_len);
17913 let mut _prev_end_offset: usize = 0;
17914 if 1 > max_ordinal {
17915 return Ok(());
17916 }
17917
17918 let cur_offset: usize = (1 - 1) * envelope_size;
17921
17922 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17924
17925 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17930 self.bit_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17931 encoder,
17932 offset + cur_offset,
17933 depth,
17934 )?;
17935
17936 _prev_end_offset = cur_offset + envelope_size;
17937 if 2 > max_ordinal {
17938 return Ok(());
17939 }
17940
17941 let cur_offset: usize = (2 - 1) * envelope_size;
17944
17945 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17947
17948 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17953 self.frame_rate.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17954 encoder,
17955 offset + cur_offset,
17956 depth,
17957 )?;
17958
17959 _prev_end_offset = cur_offset + envelope_size;
17960 if 3 > max_ordinal {
17961 return Ok(());
17962 }
17963
17964 let cur_offset: usize = (3 - 1) * envelope_size;
17967
17968 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
17970
17971 fidl::encoding::encode_in_envelope_optional::<u32, D>(
17976 self.gop_size.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
17977 encoder,
17978 offset + cur_offset,
17979 depth,
17980 )?;
17981
17982 _prev_end_offset = cur_offset + envelope_size;
17983
17984 Ok(())
17985 }
17986 }
17987
17988 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for HevcEncoderSettings {
17989 #[inline(always)]
17990 fn new_empty() -> Self {
17991 Self::default()
17992 }
17993
17994 unsafe fn decode(
17995 &mut self,
17996 decoder: &mut fidl::encoding::Decoder<'_, D>,
17997 offset: usize,
17998 mut depth: fidl::encoding::Depth,
17999 ) -> fidl::Result<()> {
18000 decoder.debug_check_bounds::<Self>(offset);
18001 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18002 None => return Err(fidl::Error::NotNullable),
18003 Some(len) => len,
18004 };
18005 if len == 0 {
18007 return Ok(());
18008 };
18009 depth.increment()?;
18010 let envelope_size = 8;
18011 let bytes_len = len * envelope_size;
18012 let offset = decoder.out_of_line_offset(bytes_len)?;
18013 let mut _next_ordinal_to_read = 0;
18015 let mut next_offset = offset;
18016 let end_offset = offset + bytes_len;
18017 _next_ordinal_to_read += 1;
18018 if next_offset >= end_offset {
18019 return Ok(());
18020 }
18021
18022 while _next_ordinal_to_read < 1 {
18024 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18025 _next_ordinal_to_read += 1;
18026 next_offset += envelope_size;
18027 }
18028
18029 let next_out_of_line = decoder.next_out_of_line();
18030 let handles_before = decoder.remaining_handles();
18031 if let Some((inlined, num_bytes, num_handles)) =
18032 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18033 {
18034 let member_inline_size =
18035 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18036 if inlined != (member_inline_size <= 4) {
18037 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18038 }
18039 let inner_offset;
18040 let mut inner_depth = depth.clone();
18041 if inlined {
18042 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18043 inner_offset = next_offset;
18044 } else {
18045 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18046 inner_depth.increment()?;
18047 }
18048 let val_ref = self.bit_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
18049 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18050 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18051 {
18052 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18053 }
18054 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18055 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18056 }
18057 }
18058
18059 next_offset += envelope_size;
18060 _next_ordinal_to_read += 1;
18061 if next_offset >= end_offset {
18062 return Ok(());
18063 }
18064
18065 while _next_ordinal_to_read < 2 {
18067 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18068 _next_ordinal_to_read += 1;
18069 next_offset += envelope_size;
18070 }
18071
18072 let next_out_of_line = decoder.next_out_of_line();
18073 let handles_before = decoder.remaining_handles();
18074 if let Some((inlined, num_bytes, num_handles)) =
18075 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18076 {
18077 let member_inline_size =
18078 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18079 if inlined != (member_inline_size <= 4) {
18080 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18081 }
18082 let inner_offset;
18083 let mut inner_depth = depth.clone();
18084 if inlined {
18085 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18086 inner_offset = next_offset;
18087 } else {
18088 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18089 inner_depth.increment()?;
18090 }
18091 let val_ref = self.frame_rate.get_or_insert_with(|| fidl::new_empty!(u32, D));
18092 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18093 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18094 {
18095 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18096 }
18097 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18098 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18099 }
18100 }
18101
18102 next_offset += envelope_size;
18103 _next_ordinal_to_read += 1;
18104 if next_offset >= end_offset {
18105 return Ok(());
18106 }
18107
18108 while _next_ordinal_to_read < 3 {
18110 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18111 _next_ordinal_to_read += 1;
18112 next_offset += envelope_size;
18113 }
18114
18115 let next_out_of_line = decoder.next_out_of_line();
18116 let handles_before = decoder.remaining_handles();
18117 if let Some((inlined, num_bytes, num_handles)) =
18118 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18119 {
18120 let member_inline_size =
18121 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18122 if inlined != (member_inline_size <= 4) {
18123 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18124 }
18125 let inner_offset;
18126 let mut inner_depth = depth.clone();
18127 if inlined {
18128 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18129 inner_offset = next_offset;
18130 } else {
18131 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18132 inner_depth.increment()?;
18133 }
18134 let val_ref = self.gop_size.get_or_insert_with(|| fidl::new_empty!(u32, D));
18135 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
18136 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18137 {
18138 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18139 }
18140 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18141 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18142 }
18143 }
18144
18145 next_offset += envelope_size;
18146
18147 while next_offset < end_offset {
18149 _next_ordinal_to_read += 1;
18150 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18151 next_offset += envelope_size;
18152 }
18153
18154 Ok(())
18155 }
18156 }
18157
18158 impl InputAudioCapturerConfiguration {
18159 #[inline(always)]
18160 fn max_ordinal_present(&self) -> u64 {
18161 if let Some(_) = self.usage2 {
18162 return 2;
18163 }
18164 if let Some(_) = self.usage {
18165 return 1;
18166 }
18167 0
18168 }
18169 }
18170
18171 impl fidl::encoding::ValueTypeMarker for InputAudioCapturerConfiguration {
18172 type Borrowed<'a> = &'a Self;
18173 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18174 value
18175 }
18176 }
18177
18178 unsafe impl fidl::encoding::TypeMarker for InputAudioCapturerConfiguration {
18179 type Owned = Self;
18180
18181 #[inline(always)]
18182 fn inline_align(_context: fidl::encoding::Context) -> usize {
18183 8
18184 }
18185
18186 #[inline(always)]
18187 fn inline_size(_context: fidl::encoding::Context) -> usize {
18188 16
18189 }
18190 }
18191
18192 unsafe impl<D: fidl::encoding::ResourceDialect>
18193 fidl::encoding::Encode<InputAudioCapturerConfiguration, D>
18194 for &InputAudioCapturerConfiguration
18195 {
18196 unsafe fn encode(
18197 self,
18198 encoder: &mut fidl::encoding::Encoder<'_, D>,
18199 offset: usize,
18200 mut depth: fidl::encoding::Depth,
18201 ) -> fidl::Result<()> {
18202 encoder.debug_check_bounds::<InputAudioCapturerConfiguration>(offset);
18203 let max_ordinal: u64 = self.max_ordinal_present();
18205 encoder.write_num(max_ordinal, offset);
18206 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18207 if max_ordinal == 0 {
18209 return Ok(());
18210 }
18211 depth.increment()?;
18212 let envelope_size = 8;
18213 let bytes_len = max_ordinal as usize * envelope_size;
18214 #[allow(unused_variables)]
18215 let offset = encoder.out_of_line_offset(bytes_len);
18216 let mut _prev_end_offset: usize = 0;
18217 if 1 > max_ordinal {
18218 return Ok(());
18219 }
18220
18221 let cur_offset: usize = (1 - 1) * envelope_size;
18224
18225 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18227
18228 fidl::encoding::encode_in_envelope_optional::<AudioCaptureUsage, D>(
18233 self.usage
18234 .as_ref()
18235 .map(<AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow),
18236 encoder,
18237 offset + cur_offset,
18238 depth,
18239 )?;
18240
18241 _prev_end_offset = cur_offset + envelope_size;
18242 if 2 > max_ordinal {
18243 return Ok(());
18244 }
18245
18246 let cur_offset: usize = (2 - 1) * envelope_size;
18249
18250 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18252
18253 fidl::encoding::encode_in_envelope_optional::<AudioCaptureUsage2, D>(
18258 self.usage2
18259 .as_ref()
18260 .map(<AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow),
18261 encoder,
18262 offset + cur_offset,
18263 depth,
18264 )?;
18265
18266 _prev_end_offset = cur_offset + envelope_size;
18267
18268 Ok(())
18269 }
18270 }
18271
18272 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
18273 for InputAudioCapturerConfiguration
18274 {
18275 #[inline(always)]
18276 fn new_empty() -> Self {
18277 Self::default()
18278 }
18279
18280 unsafe fn decode(
18281 &mut self,
18282 decoder: &mut fidl::encoding::Decoder<'_, D>,
18283 offset: usize,
18284 mut depth: fidl::encoding::Depth,
18285 ) -> fidl::Result<()> {
18286 decoder.debug_check_bounds::<Self>(offset);
18287 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18288 None => return Err(fidl::Error::NotNullable),
18289 Some(len) => len,
18290 };
18291 if len == 0 {
18293 return Ok(());
18294 };
18295 depth.increment()?;
18296 let envelope_size = 8;
18297 let bytes_len = len * envelope_size;
18298 let offset = decoder.out_of_line_offset(bytes_len)?;
18299 let mut _next_ordinal_to_read = 0;
18301 let mut next_offset = offset;
18302 let end_offset = offset + bytes_len;
18303 _next_ordinal_to_read += 1;
18304 if next_offset >= end_offset {
18305 return Ok(());
18306 }
18307
18308 while _next_ordinal_to_read < 1 {
18310 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18311 _next_ordinal_to_read += 1;
18312 next_offset += envelope_size;
18313 }
18314
18315 let next_out_of_line = decoder.next_out_of_line();
18316 let handles_before = decoder.remaining_handles();
18317 if let Some((inlined, num_bytes, num_handles)) =
18318 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18319 {
18320 let member_inline_size =
18321 <AudioCaptureUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18322 if inlined != (member_inline_size <= 4) {
18323 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18324 }
18325 let inner_offset;
18326 let mut inner_depth = depth.clone();
18327 if inlined {
18328 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18329 inner_offset = next_offset;
18330 } else {
18331 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18332 inner_depth.increment()?;
18333 }
18334 let val_ref =
18335 self.usage.get_or_insert_with(|| fidl::new_empty!(AudioCaptureUsage, D));
18336 fidl::decode!(AudioCaptureUsage, D, val_ref, decoder, inner_offset, inner_depth)?;
18337 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18338 {
18339 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18340 }
18341 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18342 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18343 }
18344 }
18345
18346 next_offset += envelope_size;
18347 _next_ordinal_to_read += 1;
18348 if next_offset >= end_offset {
18349 return Ok(());
18350 }
18351
18352 while _next_ordinal_to_read < 2 {
18354 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18355 _next_ordinal_to_read += 1;
18356 next_offset += envelope_size;
18357 }
18358
18359 let next_out_of_line = decoder.next_out_of_line();
18360 let handles_before = decoder.remaining_handles();
18361 if let Some((inlined, num_bytes, num_handles)) =
18362 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18363 {
18364 let member_inline_size =
18365 <AudioCaptureUsage2 as fidl::encoding::TypeMarker>::inline_size(
18366 decoder.context,
18367 );
18368 if inlined != (member_inline_size <= 4) {
18369 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18370 }
18371 let inner_offset;
18372 let mut inner_depth = depth.clone();
18373 if inlined {
18374 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18375 inner_offset = next_offset;
18376 } else {
18377 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18378 inner_depth.increment()?;
18379 }
18380 let val_ref =
18381 self.usage2.get_or_insert_with(|| fidl::new_empty!(AudioCaptureUsage2, D));
18382 fidl::decode!(AudioCaptureUsage2, D, val_ref, decoder, inner_offset, inner_depth)?;
18383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18384 {
18385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18386 }
18387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18389 }
18390 }
18391
18392 next_offset += envelope_size;
18393
18394 while next_offset < end_offset {
18396 _next_ordinal_to_read += 1;
18397 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18398 next_offset += envelope_size;
18399 }
18400
18401 Ok(())
18402 }
18403 }
18404
18405 impl Lc3EncoderSettings {
18406 #[inline(always)]
18407 fn max_ordinal_present(&self) -> u64 {
18408 if let Some(_) = self.frame_duration {
18409 return 2;
18410 }
18411 if let Some(_) = self.nbytes {
18412 return 1;
18413 }
18414 0
18415 }
18416 }
18417
18418 impl fidl::encoding::ValueTypeMarker for Lc3EncoderSettings {
18419 type Borrowed<'a> = &'a Self;
18420 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18421 value
18422 }
18423 }
18424
18425 unsafe impl fidl::encoding::TypeMarker for Lc3EncoderSettings {
18426 type Owned = Self;
18427
18428 #[inline(always)]
18429 fn inline_align(_context: fidl::encoding::Context) -> usize {
18430 8
18431 }
18432
18433 #[inline(always)]
18434 fn inline_size(_context: fidl::encoding::Context) -> usize {
18435 16
18436 }
18437 }
18438
18439 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Lc3EncoderSettings, D>
18440 for &Lc3EncoderSettings
18441 {
18442 unsafe fn encode(
18443 self,
18444 encoder: &mut fidl::encoding::Encoder<'_, D>,
18445 offset: usize,
18446 mut depth: fidl::encoding::Depth,
18447 ) -> fidl::Result<()> {
18448 encoder.debug_check_bounds::<Lc3EncoderSettings>(offset);
18449 let max_ordinal: u64 = self.max_ordinal_present();
18451 encoder.write_num(max_ordinal, offset);
18452 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18453 if max_ordinal == 0 {
18455 return Ok(());
18456 }
18457 depth.increment()?;
18458 let envelope_size = 8;
18459 let bytes_len = max_ordinal as usize * envelope_size;
18460 #[allow(unused_variables)]
18461 let offset = encoder.out_of_line_offset(bytes_len);
18462 let mut _prev_end_offset: usize = 0;
18463 if 1 > max_ordinal {
18464 return Ok(());
18465 }
18466
18467 let cur_offset: usize = (1 - 1) * envelope_size;
18470
18471 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18473
18474 fidl::encoding::encode_in_envelope_optional::<u16, D>(
18479 self.nbytes.as_ref().map(<u16 as fidl::encoding::ValueTypeMarker>::borrow),
18480 encoder,
18481 offset + cur_offset,
18482 depth,
18483 )?;
18484
18485 _prev_end_offset = cur_offset + envelope_size;
18486 if 2 > max_ordinal {
18487 return Ok(());
18488 }
18489
18490 let cur_offset: usize = (2 - 1) * envelope_size;
18493
18494 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18496
18497 fidl::encoding::encode_in_envelope_optional::<Lc3FrameDuration, D>(
18502 self.frame_duration
18503 .as_ref()
18504 .map(<Lc3FrameDuration as fidl::encoding::ValueTypeMarker>::borrow),
18505 encoder,
18506 offset + cur_offset,
18507 depth,
18508 )?;
18509
18510 _prev_end_offset = cur_offset + envelope_size;
18511
18512 Ok(())
18513 }
18514 }
18515
18516 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Lc3EncoderSettings {
18517 #[inline(always)]
18518 fn new_empty() -> Self {
18519 Self::default()
18520 }
18521
18522 unsafe fn decode(
18523 &mut self,
18524 decoder: &mut fidl::encoding::Decoder<'_, D>,
18525 offset: usize,
18526 mut depth: fidl::encoding::Depth,
18527 ) -> fidl::Result<()> {
18528 decoder.debug_check_bounds::<Self>(offset);
18529 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18530 None => return Err(fidl::Error::NotNullable),
18531 Some(len) => len,
18532 };
18533 if len == 0 {
18535 return Ok(());
18536 };
18537 depth.increment()?;
18538 let envelope_size = 8;
18539 let bytes_len = len * envelope_size;
18540 let offset = decoder.out_of_line_offset(bytes_len)?;
18541 let mut _next_ordinal_to_read = 0;
18543 let mut next_offset = offset;
18544 let end_offset = offset + bytes_len;
18545 _next_ordinal_to_read += 1;
18546 if next_offset >= end_offset {
18547 return Ok(());
18548 }
18549
18550 while _next_ordinal_to_read < 1 {
18552 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18553 _next_ordinal_to_read += 1;
18554 next_offset += envelope_size;
18555 }
18556
18557 let next_out_of_line = decoder.next_out_of_line();
18558 let handles_before = decoder.remaining_handles();
18559 if let Some((inlined, num_bytes, num_handles)) =
18560 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18561 {
18562 let member_inline_size =
18563 <u16 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18564 if inlined != (member_inline_size <= 4) {
18565 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18566 }
18567 let inner_offset;
18568 let mut inner_depth = depth.clone();
18569 if inlined {
18570 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18571 inner_offset = next_offset;
18572 } else {
18573 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18574 inner_depth.increment()?;
18575 }
18576 let val_ref = self.nbytes.get_or_insert_with(|| fidl::new_empty!(u16, D));
18577 fidl::decode!(u16, D, val_ref, decoder, inner_offset, inner_depth)?;
18578 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18579 {
18580 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18581 }
18582 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18583 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18584 }
18585 }
18586
18587 next_offset += envelope_size;
18588 _next_ordinal_to_read += 1;
18589 if next_offset >= end_offset {
18590 return Ok(());
18591 }
18592
18593 while _next_ordinal_to_read < 2 {
18595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18596 _next_ordinal_to_read += 1;
18597 next_offset += envelope_size;
18598 }
18599
18600 let next_out_of_line = decoder.next_out_of_line();
18601 let handles_before = decoder.remaining_handles();
18602 if let Some((inlined, num_bytes, num_handles)) =
18603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
18604 {
18605 let member_inline_size =
18606 <Lc3FrameDuration as fidl::encoding::TypeMarker>::inline_size(decoder.context);
18607 if inlined != (member_inline_size <= 4) {
18608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
18609 }
18610 let inner_offset;
18611 let mut inner_depth = depth.clone();
18612 if inlined {
18613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
18614 inner_offset = next_offset;
18615 } else {
18616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
18617 inner_depth.increment()?;
18618 }
18619 let val_ref = self
18620 .frame_duration
18621 .get_or_insert_with(|| fidl::new_empty!(Lc3FrameDuration, D));
18622 fidl::decode!(Lc3FrameDuration, D, val_ref, decoder, inner_offset, inner_depth)?;
18623 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
18624 {
18625 return Err(fidl::Error::InvalidNumBytesInEnvelope);
18626 }
18627 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
18628 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
18629 }
18630 }
18631
18632 next_offset += envelope_size;
18633
18634 while next_offset < end_offset {
18636 _next_ordinal_to_read += 1;
18637 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18638 next_offset += envelope_size;
18639 }
18640
18641 Ok(())
18642 }
18643 }
18644
18645 impl LoopbackAudioCapturerConfiguration {
18646 #[inline(always)]
18647 fn max_ordinal_present(&self) -> u64 {
18648 0
18649 }
18650 }
18651
18652 impl fidl::encoding::ValueTypeMarker for LoopbackAudioCapturerConfiguration {
18653 type Borrowed<'a> = &'a Self;
18654 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18655 value
18656 }
18657 }
18658
18659 unsafe impl fidl::encoding::TypeMarker for LoopbackAudioCapturerConfiguration {
18660 type Owned = Self;
18661
18662 #[inline(always)]
18663 fn inline_align(_context: fidl::encoding::Context) -> usize {
18664 8
18665 }
18666
18667 #[inline(always)]
18668 fn inline_size(_context: fidl::encoding::Context) -> usize {
18669 16
18670 }
18671 }
18672
18673 unsafe impl<D: fidl::encoding::ResourceDialect>
18674 fidl::encoding::Encode<LoopbackAudioCapturerConfiguration, D>
18675 for &LoopbackAudioCapturerConfiguration
18676 {
18677 unsafe fn encode(
18678 self,
18679 encoder: &mut fidl::encoding::Encoder<'_, D>,
18680 offset: usize,
18681 mut depth: fidl::encoding::Depth,
18682 ) -> fidl::Result<()> {
18683 encoder.debug_check_bounds::<LoopbackAudioCapturerConfiguration>(offset);
18684 let max_ordinal: u64 = self.max_ordinal_present();
18686 encoder.write_num(max_ordinal, offset);
18687 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18688 if max_ordinal == 0 {
18690 return Ok(());
18691 }
18692 depth.increment()?;
18693 let envelope_size = 8;
18694 let bytes_len = max_ordinal as usize * envelope_size;
18695 #[allow(unused_variables)]
18696 let offset = encoder.out_of_line_offset(bytes_len);
18697 let mut _prev_end_offset: usize = 0;
18698
18699 Ok(())
18700 }
18701 }
18702
18703 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
18704 for LoopbackAudioCapturerConfiguration
18705 {
18706 #[inline(always)]
18707 fn new_empty() -> Self {
18708 Self::default()
18709 }
18710
18711 unsafe fn decode(
18712 &mut self,
18713 decoder: &mut fidl::encoding::Decoder<'_, D>,
18714 offset: usize,
18715 mut depth: fidl::encoding::Depth,
18716 ) -> fidl::Result<()> {
18717 decoder.debug_check_bounds::<Self>(offset);
18718 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18719 None => return Err(fidl::Error::NotNullable),
18720 Some(len) => len,
18721 };
18722 if len == 0 {
18724 return Ok(());
18725 };
18726 depth.increment()?;
18727 let envelope_size = 8;
18728 let bytes_len = len * envelope_size;
18729 let offset = decoder.out_of_line_offset(bytes_len)?;
18730 let mut _next_ordinal_to_read = 0;
18732 let mut next_offset = offset;
18733 let end_offset = offset + bytes_len;
18734
18735 while next_offset < end_offset {
18737 _next_ordinal_to_read += 1;
18738 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18739 next_offset += envelope_size;
18740 }
18741
18742 Ok(())
18743 }
18744 }
18745
18746 impl MSbcEncoderSettings {
18747 #[inline(always)]
18748 fn max_ordinal_present(&self) -> u64 {
18749 0
18750 }
18751 }
18752
18753 impl fidl::encoding::ValueTypeMarker for MSbcEncoderSettings {
18754 type Borrowed<'a> = &'a Self;
18755 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18756 value
18757 }
18758 }
18759
18760 unsafe impl fidl::encoding::TypeMarker for MSbcEncoderSettings {
18761 type Owned = Self;
18762
18763 #[inline(always)]
18764 fn inline_align(_context: fidl::encoding::Context) -> usize {
18765 8
18766 }
18767
18768 #[inline(always)]
18769 fn inline_size(_context: fidl::encoding::Context) -> usize {
18770 16
18771 }
18772 }
18773
18774 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MSbcEncoderSettings, D>
18775 for &MSbcEncoderSettings
18776 {
18777 unsafe fn encode(
18778 self,
18779 encoder: &mut fidl::encoding::Encoder<'_, D>,
18780 offset: usize,
18781 mut depth: fidl::encoding::Depth,
18782 ) -> fidl::Result<()> {
18783 encoder.debug_check_bounds::<MSbcEncoderSettings>(offset);
18784 let max_ordinal: u64 = self.max_ordinal_present();
18786 encoder.write_num(max_ordinal, offset);
18787 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18788 if max_ordinal == 0 {
18790 return Ok(());
18791 }
18792 depth.increment()?;
18793 let envelope_size = 8;
18794 let bytes_len = max_ordinal as usize * envelope_size;
18795 #[allow(unused_variables)]
18796 let offset = encoder.out_of_line_offset(bytes_len);
18797 let mut _prev_end_offset: usize = 0;
18798
18799 Ok(())
18800 }
18801 }
18802
18803 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MSbcEncoderSettings {
18804 #[inline(always)]
18805 fn new_empty() -> Self {
18806 Self::default()
18807 }
18808
18809 unsafe fn decode(
18810 &mut self,
18811 decoder: &mut fidl::encoding::Decoder<'_, D>,
18812 offset: usize,
18813 mut depth: fidl::encoding::Depth,
18814 ) -> fidl::Result<()> {
18815 decoder.debug_check_bounds::<Self>(offset);
18816 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
18817 None => return Err(fidl::Error::NotNullable),
18818 Some(len) => len,
18819 };
18820 if len == 0 {
18822 return Ok(());
18823 };
18824 depth.increment()?;
18825 let envelope_size = 8;
18826 let bytes_len = len * envelope_size;
18827 let offset = decoder.out_of_line_offset(bytes_len)?;
18828 let mut _next_ordinal_to_read = 0;
18830 let mut next_offset = offset;
18831 let end_offset = offset + bytes_len;
18832
18833 while next_offset < end_offset {
18835 _next_ordinal_to_read += 1;
18836 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
18837 next_offset += envelope_size;
18838 }
18839
18840 Ok(())
18841 }
18842 }
18843
18844 impl Packet {
18845 #[inline(always)]
18846 fn max_ordinal_present(&self) -> u64 {
18847 if let Some(_) = self.key_frame {
18848 return 9;
18849 }
18850 if let Some(_) = self.known_end_access_unit {
18851 return 8;
18852 }
18853 if let Some(_) = self.start_access_unit {
18854 return 7;
18855 }
18856 if let Some(_) = self.timestamp_ish {
18857 return 6;
18858 }
18859 if let Some(_) = self.valid_length_bytes {
18860 return 5;
18861 }
18862 if let Some(_) = self.start_offset {
18863 return 4;
18864 }
18865 if let Some(_) = self.stream_lifetime_ordinal {
18866 return 3;
18867 }
18868 if let Some(_) = self.buffer_index {
18869 return 2;
18870 }
18871 if let Some(_) = self.header {
18872 return 1;
18873 }
18874 0
18875 }
18876 }
18877
18878 impl fidl::encoding::ValueTypeMarker for Packet {
18879 type Borrowed<'a> = &'a Self;
18880 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
18881 value
18882 }
18883 }
18884
18885 unsafe impl fidl::encoding::TypeMarker for Packet {
18886 type Owned = Self;
18887
18888 #[inline(always)]
18889 fn inline_align(_context: fidl::encoding::Context) -> usize {
18890 8
18891 }
18892
18893 #[inline(always)]
18894 fn inline_size(_context: fidl::encoding::Context) -> usize {
18895 16
18896 }
18897 }
18898
18899 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Packet, D> for &Packet {
18900 unsafe fn encode(
18901 self,
18902 encoder: &mut fidl::encoding::Encoder<'_, D>,
18903 offset: usize,
18904 mut depth: fidl::encoding::Depth,
18905 ) -> fidl::Result<()> {
18906 encoder.debug_check_bounds::<Packet>(offset);
18907 let max_ordinal: u64 = self.max_ordinal_present();
18909 encoder.write_num(max_ordinal, offset);
18910 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
18911 if max_ordinal == 0 {
18913 return Ok(());
18914 }
18915 depth.increment()?;
18916 let envelope_size = 8;
18917 let bytes_len = max_ordinal as usize * envelope_size;
18918 #[allow(unused_variables)]
18919 let offset = encoder.out_of_line_offset(bytes_len);
18920 let mut _prev_end_offset: usize = 0;
18921 if 1 > max_ordinal {
18922 return Ok(());
18923 }
18924
18925 let cur_offset: usize = (1 - 1) * envelope_size;
18928
18929 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18931
18932 fidl::encoding::encode_in_envelope_optional::<PacketHeader, D>(
18937 self.header.as_ref().map(<PacketHeader as fidl::encoding::ValueTypeMarker>::borrow),
18938 encoder,
18939 offset + cur_offset,
18940 depth,
18941 )?;
18942
18943 _prev_end_offset = cur_offset + envelope_size;
18944 if 2 > max_ordinal {
18945 return Ok(());
18946 }
18947
18948 let cur_offset: usize = (2 - 1) * envelope_size;
18951
18952 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18954
18955 fidl::encoding::encode_in_envelope_optional::<u32, D>(
18960 self.buffer_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
18961 encoder,
18962 offset + cur_offset,
18963 depth,
18964 )?;
18965
18966 _prev_end_offset = cur_offset + envelope_size;
18967 if 3 > max_ordinal {
18968 return Ok(());
18969 }
18970
18971 let cur_offset: usize = (3 - 1) * envelope_size;
18974
18975 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
18977
18978 fidl::encoding::encode_in_envelope_optional::<u64, D>(
18983 self.stream_lifetime_ordinal
18984 .as_ref()
18985 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
18986 encoder,
18987 offset + cur_offset,
18988 depth,
18989 )?;
18990
18991 _prev_end_offset = cur_offset + envelope_size;
18992 if 4 > max_ordinal {
18993 return Ok(());
18994 }
18995
18996 let cur_offset: usize = (4 - 1) * envelope_size;
18999
19000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19002
19003 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19008 self.start_offset.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19009 encoder,
19010 offset + cur_offset,
19011 depth,
19012 )?;
19013
19014 _prev_end_offset = cur_offset + envelope_size;
19015 if 5 > max_ordinal {
19016 return Ok(());
19017 }
19018
19019 let cur_offset: usize = (5 - 1) * envelope_size;
19022
19023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19025
19026 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19031 self.valid_length_bytes
19032 .as_ref()
19033 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19034 encoder,
19035 offset + cur_offset,
19036 depth,
19037 )?;
19038
19039 _prev_end_offset = cur_offset + envelope_size;
19040 if 6 > max_ordinal {
19041 return Ok(());
19042 }
19043
19044 let cur_offset: usize = (6 - 1) * envelope_size;
19047
19048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19050
19051 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19056 self.timestamp_ish.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19057 encoder,
19058 offset + cur_offset,
19059 depth,
19060 )?;
19061
19062 _prev_end_offset = cur_offset + envelope_size;
19063 if 7 > max_ordinal {
19064 return Ok(());
19065 }
19066
19067 let cur_offset: usize = (7 - 1) * envelope_size;
19070
19071 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19073
19074 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19079 self.start_access_unit
19080 .as_ref()
19081 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19082 encoder,
19083 offset + cur_offset,
19084 depth,
19085 )?;
19086
19087 _prev_end_offset = cur_offset + envelope_size;
19088 if 8 > max_ordinal {
19089 return Ok(());
19090 }
19091
19092 let cur_offset: usize = (8 - 1) * envelope_size;
19095
19096 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19098
19099 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19104 self.known_end_access_unit
19105 .as_ref()
19106 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19107 encoder,
19108 offset + cur_offset,
19109 depth,
19110 )?;
19111
19112 _prev_end_offset = cur_offset + envelope_size;
19113 if 9 > max_ordinal {
19114 return Ok(());
19115 }
19116
19117 let cur_offset: usize = (9 - 1) * envelope_size;
19120
19121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19123
19124 fidl::encoding::encode_in_envelope_optional::<bool, D>(
19129 self.key_frame.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
19130 encoder,
19131 offset + cur_offset,
19132 depth,
19133 )?;
19134
19135 _prev_end_offset = cur_offset + envelope_size;
19136
19137 Ok(())
19138 }
19139 }
19140
19141 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Packet {
19142 #[inline(always)]
19143 fn new_empty() -> Self {
19144 Self::default()
19145 }
19146
19147 unsafe fn decode(
19148 &mut self,
19149 decoder: &mut fidl::encoding::Decoder<'_, D>,
19150 offset: usize,
19151 mut depth: fidl::encoding::Depth,
19152 ) -> fidl::Result<()> {
19153 decoder.debug_check_bounds::<Self>(offset);
19154 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19155 None => return Err(fidl::Error::NotNullable),
19156 Some(len) => len,
19157 };
19158 if len == 0 {
19160 return Ok(());
19161 };
19162 depth.increment()?;
19163 let envelope_size = 8;
19164 let bytes_len = len * envelope_size;
19165 let offset = decoder.out_of_line_offset(bytes_len)?;
19166 let mut _next_ordinal_to_read = 0;
19168 let mut next_offset = offset;
19169 let end_offset = offset + bytes_len;
19170 _next_ordinal_to_read += 1;
19171 if next_offset >= end_offset {
19172 return Ok(());
19173 }
19174
19175 while _next_ordinal_to_read < 1 {
19177 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19178 _next_ordinal_to_read += 1;
19179 next_offset += envelope_size;
19180 }
19181
19182 let next_out_of_line = decoder.next_out_of_line();
19183 let handles_before = decoder.remaining_handles();
19184 if let Some((inlined, num_bytes, num_handles)) =
19185 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19186 {
19187 let member_inline_size =
19188 <PacketHeader as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19189 if inlined != (member_inline_size <= 4) {
19190 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19191 }
19192 let inner_offset;
19193 let mut inner_depth = depth.clone();
19194 if inlined {
19195 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19196 inner_offset = next_offset;
19197 } else {
19198 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19199 inner_depth.increment()?;
19200 }
19201 let val_ref = self.header.get_or_insert_with(|| fidl::new_empty!(PacketHeader, D));
19202 fidl::decode!(PacketHeader, D, val_ref, decoder, inner_offset, inner_depth)?;
19203 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19204 {
19205 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19206 }
19207 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19208 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19209 }
19210 }
19211
19212 next_offset += envelope_size;
19213 _next_ordinal_to_read += 1;
19214 if next_offset >= end_offset {
19215 return Ok(());
19216 }
19217
19218 while _next_ordinal_to_read < 2 {
19220 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19221 _next_ordinal_to_read += 1;
19222 next_offset += envelope_size;
19223 }
19224
19225 let next_out_of_line = decoder.next_out_of_line();
19226 let handles_before = decoder.remaining_handles();
19227 if let Some((inlined, num_bytes, num_handles)) =
19228 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19229 {
19230 let member_inline_size =
19231 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19232 if inlined != (member_inline_size <= 4) {
19233 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19234 }
19235 let inner_offset;
19236 let mut inner_depth = depth.clone();
19237 if inlined {
19238 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19239 inner_offset = next_offset;
19240 } else {
19241 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19242 inner_depth.increment()?;
19243 }
19244 let val_ref = self.buffer_index.get_or_insert_with(|| fidl::new_empty!(u32, D));
19245 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19246 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19247 {
19248 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19249 }
19250 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19251 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19252 }
19253 }
19254
19255 next_offset += envelope_size;
19256 _next_ordinal_to_read += 1;
19257 if next_offset >= end_offset {
19258 return Ok(());
19259 }
19260
19261 while _next_ordinal_to_read < 3 {
19263 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19264 _next_ordinal_to_read += 1;
19265 next_offset += envelope_size;
19266 }
19267
19268 let next_out_of_line = decoder.next_out_of_line();
19269 let handles_before = decoder.remaining_handles();
19270 if let Some((inlined, num_bytes, num_handles)) =
19271 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19272 {
19273 let member_inline_size =
19274 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19275 if inlined != (member_inline_size <= 4) {
19276 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19277 }
19278 let inner_offset;
19279 let mut inner_depth = depth.clone();
19280 if inlined {
19281 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19282 inner_offset = next_offset;
19283 } else {
19284 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19285 inner_depth.increment()?;
19286 }
19287 let val_ref =
19288 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
19289 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19290 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19291 {
19292 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19293 }
19294 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19295 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19296 }
19297 }
19298
19299 next_offset += envelope_size;
19300 _next_ordinal_to_read += 1;
19301 if next_offset >= end_offset {
19302 return Ok(());
19303 }
19304
19305 while _next_ordinal_to_read < 4 {
19307 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19308 _next_ordinal_to_read += 1;
19309 next_offset += envelope_size;
19310 }
19311
19312 let next_out_of_line = decoder.next_out_of_line();
19313 let handles_before = decoder.remaining_handles();
19314 if let Some((inlined, num_bytes, num_handles)) =
19315 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19316 {
19317 let member_inline_size =
19318 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19319 if inlined != (member_inline_size <= 4) {
19320 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19321 }
19322 let inner_offset;
19323 let mut inner_depth = depth.clone();
19324 if inlined {
19325 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19326 inner_offset = next_offset;
19327 } else {
19328 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19329 inner_depth.increment()?;
19330 }
19331 let val_ref = self.start_offset.get_or_insert_with(|| fidl::new_empty!(u32, D));
19332 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19333 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19334 {
19335 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19336 }
19337 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19338 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19339 }
19340 }
19341
19342 next_offset += envelope_size;
19343 _next_ordinal_to_read += 1;
19344 if next_offset >= end_offset {
19345 return Ok(());
19346 }
19347
19348 while _next_ordinal_to_read < 5 {
19350 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19351 _next_ordinal_to_read += 1;
19352 next_offset += envelope_size;
19353 }
19354
19355 let next_out_of_line = decoder.next_out_of_line();
19356 let handles_before = decoder.remaining_handles();
19357 if let Some((inlined, num_bytes, num_handles)) =
19358 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19359 {
19360 let member_inline_size =
19361 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19362 if inlined != (member_inline_size <= 4) {
19363 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19364 }
19365 let inner_offset;
19366 let mut inner_depth = depth.clone();
19367 if inlined {
19368 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19369 inner_offset = next_offset;
19370 } else {
19371 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19372 inner_depth.increment()?;
19373 }
19374 let val_ref =
19375 self.valid_length_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
19376 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19377 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19378 {
19379 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19380 }
19381 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19382 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19383 }
19384 }
19385
19386 next_offset += envelope_size;
19387 _next_ordinal_to_read += 1;
19388 if next_offset >= end_offset {
19389 return Ok(());
19390 }
19391
19392 while _next_ordinal_to_read < 6 {
19394 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19395 _next_ordinal_to_read += 1;
19396 next_offset += envelope_size;
19397 }
19398
19399 let next_out_of_line = decoder.next_out_of_line();
19400 let handles_before = decoder.remaining_handles();
19401 if let Some((inlined, num_bytes, num_handles)) =
19402 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19403 {
19404 let member_inline_size =
19405 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19406 if inlined != (member_inline_size <= 4) {
19407 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19408 }
19409 let inner_offset;
19410 let mut inner_depth = depth.clone();
19411 if inlined {
19412 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19413 inner_offset = next_offset;
19414 } else {
19415 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19416 inner_depth.increment()?;
19417 }
19418 let val_ref = self.timestamp_ish.get_or_insert_with(|| fidl::new_empty!(u64, D));
19419 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19420 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19421 {
19422 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19423 }
19424 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19425 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19426 }
19427 }
19428
19429 next_offset += envelope_size;
19430 _next_ordinal_to_read += 1;
19431 if next_offset >= end_offset {
19432 return Ok(());
19433 }
19434
19435 while _next_ordinal_to_read < 7 {
19437 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19438 _next_ordinal_to_read += 1;
19439 next_offset += envelope_size;
19440 }
19441
19442 let next_out_of_line = decoder.next_out_of_line();
19443 let handles_before = decoder.remaining_handles();
19444 if let Some((inlined, num_bytes, num_handles)) =
19445 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19446 {
19447 let member_inline_size =
19448 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19449 if inlined != (member_inline_size <= 4) {
19450 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19451 }
19452 let inner_offset;
19453 let mut inner_depth = depth.clone();
19454 if inlined {
19455 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19456 inner_offset = next_offset;
19457 } else {
19458 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19459 inner_depth.increment()?;
19460 }
19461 let val_ref =
19462 self.start_access_unit.get_or_insert_with(|| fidl::new_empty!(bool, D));
19463 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19464 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19465 {
19466 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19467 }
19468 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19469 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19470 }
19471 }
19472
19473 next_offset += envelope_size;
19474 _next_ordinal_to_read += 1;
19475 if next_offset >= end_offset {
19476 return Ok(());
19477 }
19478
19479 while _next_ordinal_to_read < 8 {
19481 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19482 _next_ordinal_to_read += 1;
19483 next_offset += envelope_size;
19484 }
19485
19486 let next_out_of_line = decoder.next_out_of_line();
19487 let handles_before = decoder.remaining_handles();
19488 if let Some((inlined, num_bytes, num_handles)) =
19489 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19490 {
19491 let member_inline_size =
19492 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19493 if inlined != (member_inline_size <= 4) {
19494 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19495 }
19496 let inner_offset;
19497 let mut inner_depth = depth.clone();
19498 if inlined {
19499 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19500 inner_offset = next_offset;
19501 } else {
19502 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19503 inner_depth.increment()?;
19504 }
19505 let val_ref =
19506 self.known_end_access_unit.get_or_insert_with(|| fidl::new_empty!(bool, D));
19507 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19508 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19509 {
19510 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19511 }
19512 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19513 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19514 }
19515 }
19516
19517 next_offset += envelope_size;
19518 _next_ordinal_to_read += 1;
19519 if next_offset >= end_offset {
19520 return Ok(());
19521 }
19522
19523 while _next_ordinal_to_read < 9 {
19525 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19526 _next_ordinal_to_read += 1;
19527 next_offset += envelope_size;
19528 }
19529
19530 let next_out_of_line = decoder.next_out_of_line();
19531 let handles_before = decoder.remaining_handles();
19532 if let Some((inlined, num_bytes, num_handles)) =
19533 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19534 {
19535 let member_inline_size =
19536 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19537 if inlined != (member_inline_size <= 4) {
19538 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19539 }
19540 let inner_offset;
19541 let mut inner_depth = depth.clone();
19542 if inlined {
19543 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19544 inner_offset = next_offset;
19545 } else {
19546 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19547 inner_depth.increment()?;
19548 }
19549 let val_ref = self.key_frame.get_or_insert_with(|| fidl::new_empty!(bool, D));
19550 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
19551 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19552 {
19553 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19554 }
19555 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19556 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19557 }
19558 }
19559
19560 next_offset += envelope_size;
19561
19562 while next_offset < end_offset {
19564 _next_ordinal_to_read += 1;
19565 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19566 next_offset += envelope_size;
19567 }
19568
19569 Ok(())
19570 }
19571 }
19572
19573 impl PacketHeader {
19574 #[inline(always)]
19575 fn max_ordinal_present(&self) -> u64 {
19576 if let Some(_) = self.packet_index {
19577 return 2;
19578 }
19579 if let Some(_) = self.buffer_lifetime_ordinal {
19580 return 1;
19581 }
19582 0
19583 }
19584 }
19585
19586 impl fidl::encoding::ValueTypeMarker for PacketHeader {
19587 type Borrowed<'a> = &'a Self;
19588 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19589 value
19590 }
19591 }
19592
19593 unsafe impl fidl::encoding::TypeMarker for PacketHeader {
19594 type Owned = Self;
19595
19596 #[inline(always)]
19597 fn inline_align(_context: fidl::encoding::Context) -> usize {
19598 8
19599 }
19600
19601 #[inline(always)]
19602 fn inline_size(_context: fidl::encoding::Context) -> usize {
19603 16
19604 }
19605 }
19606
19607 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PacketHeader, D>
19608 for &PacketHeader
19609 {
19610 unsafe fn encode(
19611 self,
19612 encoder: &mut fidl::encoding::Encoder<'_, D>,
19613 offset: usize,
19614 mut depth: fidl::encoding::Depth,
19615 ) -> fidl::Result<()> {
19616 encoder.debug_check_bounds::<PacketHeader>(offset);
19617 let max_ordinal: u64 = self.max_ordinal_present();
19619 encoder.write_num(max_ordinal, offset);
19620 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19621 if max_ordinal == 0 {
19623 return Ok(());
19624 }
19625 depth.increment()?;
19626 let envelope_size = 8;
19627 let bytes_len = max_ordinal as usize * envelope_size;
19628 #[allow(unused_variables)]
19629 let offset = encoder.out_of_line_offset(bytes_len);
19630 let mut _prev_end_offset: usize = 0;
19631 if 1 > max_ordinal {
19632 return Ok(());
19633 }
19634
19635 let cur_offset: usize = (1 - 1) * envelope_size;
19638
19639 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19641
19642 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19647 self.buffer_lifetime_ordinal
19648 .as_ref()
19649 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19650 encoder,
19651 offset + cur_offset,
19652 depth,
19653 )?;
19654
19655 _prev_end_offset = cur_offset + envelope_size;
19656 if 2 > max_ordinal {
19657 return Ok(());
19658 }
19659
19660 let cur_offset: usize = (2 - 1) * envelope_size;
19663
19664 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19666
19667 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19672 self.packet_index.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19673 encoder,
19674 offset + cur_offset,
19675 depth,
19676 )?;
19677
19678 _prev_end_offset = cur_offset + envelope_size;
19679
19680 Ok(())
19681 }
19682 }
19683
19684 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PacketHeader {
19685 #[inline(always)]
19686 fn new_empty() -> Self {
19687 Self::default()
19688 }
19689
19690 unsafe fn decode(
19691 &mut self,
19692 decoder: &mut fidl::encoding::Decoder<'_, D>,
19693 offset: usize,
19694 mut depth: fidl::encoding::Depth,
19695 ) -> fidl::Result<()> {
19696 decoder.debug_check_bounds::<Self>(offset);
19697 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
19698 None => return Err(fidl::Error::NotNullable),
19699 Some(len) => len,
19700 };
19701 if len == 0 {
19703 return Ok(());
19704 };
19705 depth.increment()?;
19706 let envelope_size = 8;
19707 let bytes_len = len * envelope_size;
19708 let offset = decoder.out_of_line_offset(bytes_len)?;
19709 let mut _next_ordinal_to_read = 0;
19711 let mut next_offset = offset;
19712 let end_offset = offset + bytes_len;
19713 _next_ordinal_to_read += 1;
19714 if next_offset >= end_offset {
19715 return Ok(());
19716 }
19717
19718 while _next_ordinal_to_read < 1 {
19720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19721 _next_ordinal_to_read += 1;
19722 next_offset += envelope_size;
19723 }
19724
19725 let next_out_of_line = decoder.next_out_of_line();
19726 let handles_before = decoder.remaining_handles();
19727 if let Some((inlined, num_bytes, num_handles)) =
19728 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19729 {
19730 let member_inline_size =
19731 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19732 if inlined != (member_inline_size <= 4) {
19733 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19734 }
19735 let inner_offset;
19736 let mut inner_depth = depth.clone();
19737 if inlined {
19738 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19739 inner_offset = next_offset;
19740 } else {
19741 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19742 inner_depth.increment()?;
19743 }
19744 let val_ref =
19745 self.buffer_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
19746 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
19747 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19748 {
19749 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19750 }
19751 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19752 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19753 }
19754 }
19755
19756 next_offset += envelope_size;
19757 _next_ordinal_to_read += 1;
19758 if next_offset >= end_offset {
19759 return Ok(());
19760 }
19761
19762 while _next_ordinal_to_read < 2 {
19764 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19765 _next_ordinal_to_read += 1;
19766 next_offset += envelope_size;
19767 }
19768
19769 let next_out_of_line = decoder.next_out_of_line();
19770 let handles_before = decoder.remaining_handles();
19771 if let Some((inlined, num_bytes, num_handles)) =
19772 fidl::encoding::decode_envelope_header(decoder, next_offset)?
19773 {
19774 let member_inline_size =
19775 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
19776 if inlined != (member_inline_size <= 4) {
19777 return Err(fidl::Error::InvalidInlineBitInEnvelope);
19778 }
19779 let inner_offset;
19780 let mut inner_depth = depth.clone();
19781 if inlined {
19782 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
19783 inner_offset = next_offset;
19784 } else {
19785 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
19786 inner_depth.increment()?;
19787 }
19788 let val_ref = self.packet_index.get_or_insert_with(|| fidl::new_empty!(u32, D));
19789 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
19790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
19791 {
19792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
19793 }
19794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
19795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
19796 }
19797 }
19798
19799 next_offset += envelope_size;
19800
19801 while next_offset < end_offset {
19803 _next_ordinal_to_read += 1;
19804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
19805 next_offset += envelope_size;
19806 }
19807
19808 Ok(())
19809 }
19810 }
19811
19812 impl StreamBufferConstraints {
19813 #[inline(always)]
19814 fn max_ordinal_present(&self) -> u64 {
19815 if let Some(_) = self.is_physically_contiguous_required {
19816 return 13;
19817 }
19818 if let Some(_) = self.single_buffer_mode_allowed {
19819 return 12;
19820 }
19821 if let Some(_) = self.packet_count_for_client_max {
19822 return 11;
19823 }
19824 if let Some(_) = self.packet_count_for_client_min {
19825 return 10;
19826 }
19827 if let Some(_) = self.packet_count_for_server_max {
19828 return 9;
19829 }
19830 if let Some(_) = self.packet_count_for_server_recommended_max {
19831 return 8;
19832 }
19833 if let Some(_) = self.packet_count_for_server_recommended {
19834 return 7;
19835 }
19836 if let Some(_) = self.packet_count_for_server_min {
19837 return 6;
19838 }
19839 if let Some(_) = self.per_packet_buffer_bytes_max {
19840 return 5;
19841 }
19842 if let Some(_) = self.per_packet_buffer_bytes_recommended {
19843 return 4;
19844 }
19845 if let Some(_) = self.per_packet_buffer_bytes_min {
19846 return 3;
19847 }
19848 if let Some(_) = self.default_settings {
19849 return 2;
19850 }
19851 if let Some(_) = self.buffer_constraints_version_ordinal {
19852 return 1;
19853 }
19854 0
19855 }
19856 }
19857
19858 impl fidl::encoding::ValueTypeMarker for StreamBufferConstraints {
19859 type Borrowed<'a> = &'a Self;
19860 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
19861 value
19862 }
19863 }
19864
19865 unsafe impl fidl::encoding::TypeMarker for StreamBufferConstraints {
19866 type Owned = Self;
19867
19868 #[inline(always)]
19869 fn inline_align(_context: fidl::encoding::Context) -> usize {
19870 8
19871 }
19872
19873 #[inline(always)]
19874 fn inline_size(_context: fidl::encoding::Context) -> usize {
19875 16
19876 }
19877 }
19878
19879 unsafe impl<D: fidl::encoding::ResourceDialect>
19880 fidl::encoding::Encode<StreamBufferConstraints, D> for &StreamBufferConstraints
19881 {
19882 unsafe fn encode(
19883 self,
19884 encoder: &mut fidl::encoding::Encoder<'_, D>,
19885 offset: usize,
19886 mut depth: fidl::encoding::Depth,
19887 ) -> fidl::Result<()> {
19888 encoder.debug_check_bounds::<StreamBufferConstraints>(offset);
19889 let max_ordinal: u64 = self.max_ordinal_present();
19891 encoder.write_num(max_ordinal, offset);
19892 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
19893 if max_ordinal == 0 {
19895 return Ok(());
19896 }
19897 depth.increment()?;
19898 let envelope_size = 8;
19899 let bytes_len = max_ordinal as usize * envelope_size;
19900 #[allow(unused_variables)]
19901 let offset = encoder.out_of_line_offset(bytes_len);
19902 let mut _prev_end_offset: usize = 0;
19903 if 1 > max_ordinal {
19904 return Ok(());
19905 }
19906
19907 let cur_offset: usize = (1 - 1) * envelope_size;
19910
19911 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19913
19914 fidl::encoding::encode_in_envelope_optional::<u64, D>(
19919 self.buffer_constraints_version_ordinal
19920 .as_ref()
19921 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
19922 encoder,
19923 offset + cur_offset,
19924 depth,
19925 )?;
19926
19927 _prev_end_offset = cur_offset + envelope_size;
19928 if 2 > max_ordinal {
19929 return Ok(());
19930 }
19931
19932 let cur_offset: usize = (2 - 1) * envelope_size;
19935
19936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19938
19939 fidl::encoding::encode_in_envelope_optional::<StreamBufferSettings, D>(
19944 self.default_settings
19945 .as_ref()
19946 .map(<StreamBufferSettings as fidl::encoding::ValueTypeMarker>::borrow),
19947 encoder,
19948 offset + cur_offset,
19949 depth,
19950 )?;
19951
19952 _prev_end_offset = cur_offset + envelope_size;
19953 if 3 > max_ordinal {
19954 return Ok(());
19955 }
19956
19957 let cur_offset: usize = (3 - 1) * envelope_size;
19960
19961 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19963
19964 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19969 self.per_packet_buffer_bytes_min
19970 .as_ref()
19971 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19972 encoder,
19973 offset + cur_offset,
19974 depth,
19975 )?;
19976
19977 _prev_end_offset = cur_offset + envelope_size;
19978 if 4 > max_ordinal {
19979 return Ok(());
19980 }
19981
19982 let cur_offset: usize = (4 - 1) * envelope_size;
19985
19986 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
19988
19989 fidl::encoding::encode_in_envelope_optional::<u32, D>(
19994 self.per_packet_buffer_bytes_recommended
19995 .as_ref()
19996 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
19997 encoder,
19998 offset + cur_offset,
19999 depth,
20000 )?;
20001
20002 _prev_end_offset = cur_offset + envelope_size;
20003 if 5 > max_ordinal {
20004 return Ok(());
20005 }
20006
20007 let cur_offset: usize = (5 - 1) * envelope_size;
20010
20011 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20013
20014 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20019 self.per_packet_buffer_bytes_max
20020 .as_ref()
20021 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20022 encoder,
20023 offset + cur_offset,
20024 depth,
20025 )?;
20026
20027 _prev_end_offset = cur_offset + envelope_size;
20028 if 6 > max_ordinal {
20029 return Ok(());
20030 }
20031
20032 let cur_offset: usize = (6 - 1) * envelope_size;
20035
20036 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20038
20039 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20044 self.packet_count_for_server_min
20045 .as_ref()
20046 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20047 encoder,
20048 offset + cur_offset,
20049 depth,
20050 )?;
20051
20052 _prev_end_offset = cur_offset + envelope_size;
20053 if 7 > max_ordinal {
20054 return Ok(());
20055 }
20056
20057 let cur_offset: usize = (7 - 1) * envelope_size;
20060
20061 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20063
20064 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20069 self.packet_count_for_server_recommended
20070 .as_ref()
20071 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20072 encoder,
20073 offset + cur_offset,
20074 depth,
20075 )?;
20076
20077 _prev_end_offset = cur_offset + envelope_size;
20078 if 8 > max_ordinal {
20079 return Ok(());
20080 }
20081
20082 let cur_offset: usize = (8 - 1) * envelope_size;
20085
20086 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20088
20089 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20094 self.packet_count_for_server_recommended_max
20095 .as_ref()
20096 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20097 encoder,
20098 offset + cur_offset,
20099 depth,
20100 )?;
20101
20102 _prev_end_offset = cur_offset + envelope_size;
20103 if 9 > max_ordinal {
20104 return Ok(());
20105 }
20106
20107 let cur_offset: usize = (9 - 1) * envelope_size;
20110
20111 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20113
20114 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20119 self.packet_count_for_server_max
20120 .as_ref()
20121 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20122 encoder,
20123 offset + cur_offset,
20124 depth,
20125 )?;
20126
20127 _prev_end_offset = cur_offset + envelope_size;
20128 if 10 > max_ordinal {
20129 return Ok(());
20130 }
20131
20132 let cur_offset: usize = (10 - 1) * envelope_size;
20135
20136 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20138
20139 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20144 self.packet_count_for_client_min
20145 .as_ref()
20146 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20147 encoder,
20148 offset + cur_offset,
20149 depth,
20150 )?;
20151
20152 _prev_end_offset = cur_offset + envelope_size;
20153 if 11 > max_ordinal {
20154 return Ok(());
20155 }
20156
20157 let cur_offset: usize = (11 - 1) * envelope_size;
20160
20161 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20163
20164 fidl::encoding::encode_in_envelope_optional::<u32, D>(
20169 self.packet_count_for_client_max
20170 .as_ref()
20171 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
20172 encoder,
20173 offset + cur_offset,
20174 depth,
20175 )?;
20176
20177 _prev_end_offset = cur_offset + envelope_size;
20178 if 12 > max_ordinal {
20179 return Ok(());
20180 }
20181
20182 let cur_offset: usize = (12 - 1) * envelope_size;
20185
20186 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20188
20189 fidl::encoding::encode_in_envelope_optional::<bool, D>(
20194 self.single_buffer_mode_allowed
20195 .as_ref()
20196 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
20197 encoder,
20198 offset + cur_offset,
20199 depth,
20200 )?;
20201
20202 _prev_end_offset = cur_offset + envelope_size;
20203 if 13 > max_ordinal {
20204 return Ok(());
20205 }
20206
20207 let cur_offset: usize = (13 - 1) * envelope_size;
20210
20211 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20213
20214 fidl::encoding::encode_in_envelope_optional::<bool, D>(
20219 self.is_physically_contiguous_required
20220 .as_ref()
20221 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
20222 encoder,
20223 offset + cur_offset,
20224 depth,
20225 )?;
20226
20227 _prev_end_offset = cur_offset + envelope_size;
20228
20229 Ok(())
20230 }
20231 }
20232
20233 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
20234 for StreamBufferConstraints
20235 {
20236 #[inline(always)]
20237 fn new_empty() -> Self {
20238 Self::default()
20239 }
20240
20241 unsafe fn decode(
20242 &mut self,
20243 decoder: &mut fidl::encoding::Decoder<'_, D>,
20244 offset: usize,
20245 mut depth: fidl::encoding::Depth,
20246 ) -> fidl::Result<()> {
20247 decoder.debug_check_bounds::<Self>(offset);
20248 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
20249 None => return Err(fidl::Error::NotNullable),
20250 Some(len) => len,
20251 };
20252 if len == 0 {
20254 return Ok(());
20255 };
20256 depth.increment()?;
20257 let envelope_size = 8;
20258 let bytes_len = len * envelope_size;
20259 let offset = decoder.out_of_line_offset(bytes_len)?;
20260 let mut _next_ordinal_to_read = 0;
20262 let mut next_offset = offset;
20263 let end_offset = offset + bytes_len;
20264 _next_ordinal_to_read += 1;
20265 if next_offset >= end_offset {
20266 return Ok(());
20267 }
20268
20269 while _next_ordinal_to_read < 1 {
20271 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20272 _next_ordinal_to_read += 1;
20273 next_offset += envelope_size;
20274 }
20275
20276 let next_out_of_line = decoder.next_out_of_line();
20277 let handles_before = decoder.remaining_handles();
20278 if let Some((inlined, num_bytes, num_handles)) =
20279 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20280 {
20281 let member_inline_size =
20282 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20283 if inlined != (member_inline_size <= 4) {
20284 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20285 }
20286 let inner_offset;
20287 let mut inner_depth = depth.clone();
20288 if inlined {
20289 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20290 inner_offset = next_offset;
20291 } else {
20292 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20293 inner_depth.increment()?;
20294 }
20295 let val_ref = self
20296 .buffer_constraints_version_ordinal
20297 .get_or_insert_with(|| fidl::new_empty!(u64, D));
20298 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
20299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20300 {
20301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20302 }
20303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20305 }
20306 }
20307
20308 next_offset += envelope_size;
20309 _next_ordinal_to_read += 1;
20310 if next_offset >= end_offset {
20311 return Ok(());
20312 }
20313
20314 while _next_ordinal_to_read < 2 {
20316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20317 _next_ordinal_to_read += 1;
20318 next_offset += envelope_size;
20319 }
20320
20321 let next_out_of_line = decoder.next_out_of_line();
20322 let handles_before = decoder.remaining_handles();
20323 if let Some((inlined, num_bytes, num_handles)) =
20324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20325 {
20326 let member_inline_size =
20327 <StreamBufferSettings as fidl::encoding::TypeMarker>::inline_size(
20328 decoder.context,
20329 );
20330 if inlined != (member_inline_size <= 4) {
20331 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20332 }
20333 let inner_offset;
20334 let mut inner_depth = depth.clone();
20335 if inlined {
20336 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20337 inner_offset = next_offset;
20338 } else {
20339 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20340 inner_depth.increment()?;
20341 }
20342 let val_ref = self
20343 .default_settings
20344 .get_or_insert_with(|| fidl::new_empty!(StreamBufferSettings, D));
20345 fidl::decode!(
20346 StreamBufferSettings,
20347 D,
20348 val_ref,
20349 decoder,
20350 inner_offset,
20351 inner_depth
20352 )?;
20353 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20354 {
20355 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20356 }
20357 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20358 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20359 }
20360 }
20361
20362 next_offset += envelope_size;
20363 _next_ordinal_to_read += 1;
20364 if next_offset >= end_offset {
20365 return Ok(());
20366 }
20367
20368 while _next_ordinal_to_read < 3 {
20370 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20371 _next_ordinal_to_read += 1;
20372 next_offset += envelope_size;
20373 }
20374
20375 let next_out_of_line = decoder.next_out_of_line();
20376 let handles_before = decoder.remaining_handles();
20377 if let Some((inlined, num_bytes, num_handles)) =
20378 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20379 {
20380 let member_inline_size =
20381 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20382 if inlined != (member_inline_size <= 4) {
20383 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20384 }
20385 let inner_offset;
20386 let mut inner_depth = depth.clone();
20387 if inlined {
20388 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20389 inner_offset = next_offset;
20390 } else {
20391 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20392 inner_depth.increment()?;
20393 }
20394 let val_ref = self
20395 .per_packet_buffer_bytes_min
20396 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20397 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20398 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20399 {
20400 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20401 }
20402 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20403 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20404 }
20405 }
20406
20407 next_offset += envelope_size;
20408 _next_ordinal_to_read += 1;
20409 if next_offset >= end_offset {
20410 return Ok(());
20411 }
20412
20413 while _next_ordinal_to_read < 4 {
20415 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20416 _next_ordinal_to_read += 1;
20417 next_offset += envelope_size;
20418 }
20419
20420 let next_out_of_line = decoder.next_out_of_line();
20421 let handles_before = decoder.remaining_handles();
20422 if let Some((inlined, num_bytes, num_handles)) =
20423 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20424 {
20425 let member_inline_size =
20426 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20427 if inlined != (member_inline_size <= 4) {
20428 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20429 }
20430 let inner_offset;
20431 let mut inner_depth = depth.clone();
20432 if inlined {
20433 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20434 inner_offset = next_offset;
20435 } else {
20436 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20437 inner_depth.increment()?;
20438 }
20439 let val_ref = self
20440 .per_packet_buffer_bytes_recommended
20441 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20442 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20443 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20444 {
20445 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20446 }
20447 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20448 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20449 }
20450 }
20451
20452 next_offset += envelope_size;
20453 _next_ordinal_to_read += 1;
20454 if next_offset >= end_offset {
20455 return Ok(());
20456 }
20457
20458 while _next_ordinal_to_read < 5 {
20460 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20461 _next_ordinal_to_read += 1;
20462 next_offset += envelope_size;
20463 }
20464
20465 let next_out_of_line = decoder.next_out_of_line();
20466 let handles_before = decoder.remaining_handles();
20467 if let Some((inlined, num_bytes, num_handles)) =
20468 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20469 {
20470 let member_inline_size =
20471 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20472 if inlined != (member_inline_size <= 4) {
20473 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20474 }
20475 let inner_offset;
20476 let mut inner_depth = depth.clone();
20477 if inlined {
20478 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20479 inner_offset = next_offset;
20480 } else {
20481 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20482 inner_depth.increment()?;
20483 }
20484 let val_ref = self
20485 .per_packet_buffer_bytes_max
20486 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20487 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20488 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20489 {
20490 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20491 }
20492 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20493 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20494 }
20495 }
20496
20497 next_offset += envelope_size;
20498 _next_ordinal_to_read += 1;
20499 if next_offset >= end_offset {
20500 return Ok(());
20501 }
20502
20503 while _next_ordinal_to_read < 6 {
20505 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20506 _next_ordinal_to_read += 1;
20507 next_offset += envelope_size;
20508 }
20509
20510 let next_out_of_line = decoder.next_out_of_line();
20511 let handles_before = decoder.remaining_handles();
20512 if let Some((inlined, num_bytes, num_handles)) =
20513 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20514 {
20515 let member_inline_size =
20516 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20517 if inlined != (member_inline_size <= 4) {
20518 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20519 }
20520 let inner_offset;
20521 let mut inner_depth = depth.clone();
20522 if inlined {
20523 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20524 inner_offset = next_offset;
20525 } else {
20526 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20527 inner_depth.increment()?;
20528 }
20529 let val_ref = self
20530 .packet_count_for_server_min
20531 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20532 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20533 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20534 {
20535 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20536 }
20537 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20538 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20539 }
20540 }
20541
20542 next_offset += envelope_size;
20543 _next_ordinal_to_read += 1;
20544 if next_offset >= end_offset {
20545 return Ok(());
20546 }
20547
20548 while _next_ordinal_to_read < 7 {
20550 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20551 _next_ordinal_to_read += 1;
20552 next_offset += envelope_size;
20553 }
20554
20555 let next_out_of_line = decoder.next_out_of_line();
20556 let handles_before = decoder.remaining_handles();
20557 if let Some((inlined, num_bytes, num_handles)) =
20558 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20559 {
20560 let member_inline_size =
20561 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20562 if inlined != (member_inline_size <= 4) {
20563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20564 }
20565 let inner_offset;
20566 let mut inner_depth = depth.clone();
20567 if inlined {
20568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20569 inner_offset = next_offset;
20570 } else {
20571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20572 inner_depth.increment()?;
20573 }
20574 let val_ref = self
20575 .packet_count_for_server_recommended
20576 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20577 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20578 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20579 {
20580 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20581 }
20582 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20583 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20584 }
20585 }
20586
20587 next_offset += envelope_size;
20588 _next_ordinal_to_read += 1;
20589 if next_offset >= end_offset {
20590 return Ok(());
20591 }
20592
20593 while _next_ordinal_to_read < 8 {
20595 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20596 _next_ordinal_to_read += 1;
20597 next_offset += envelope_size;
20598 }
20599
20600 let next_out_of_line = decoder.next_out_of_line();
20601 let handles_before = decoder.remaining_handles();
20602 if let Some((inlined, num_bytes, num_handles)) =
20603 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20604 {
20605 let member_inline_size =
20606 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20607 if inlined != (member_inline_size <= 4) {
20608 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20609 }
20610 let inner_offset;
20611 let mut inner_depth = depth.clone();
20612 if inlined {
20613 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20614 inner_offset = next_offset;
20615 } else {
20616 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20617 inner_depth.increment()?;
20618 }
20619 let val_ref = self
20620 .packet_count_for_server_recommended_max
20621 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20622 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20623 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20624 {
20625 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20626 }
20627 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20628 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20629 }
20630 }
20631
20632 next_offset += envelope_size;
20633 _next_ordinal_to_read += 1;
20634 if next_offset >= end_offset {
20635 return Ok(());
20636 }
20637
20638 while _next_ordinal_to_read < 9 {
20640 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20641 _next_ordinal_to_read += 1;
20642 next_offset += envelope_size;
20643 }
20644
20645 let next_out_of_line = decoder.next_out_of_line();
20646 let handles_before = decoder.remaining_handles();
20647 if let Some((inlined, num_bytes, num_handles)) =
20648 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20649 {
20650 let member_inline_size =
20651 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20652 if inlined != (member_inline_size <= 4) {
20653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20654 }
20655 let inner_offset;
20656 let mut inner_depth = depth.clone();
20657 if inlined {
20658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20659 inner_offset = next_offset;
20660 } else {
20661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20662 inner_depth.increment()?;
20663 }
20664 let val_ref = self
20665 .packet_count_for_server_max
20666 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20667 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20668 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20669 {
20670 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20671 }
20672 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20673 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20674 }
20675 }
20676
20677 next_offset += envelope_size;
20678 _next_ordinal_to_read += 1;
20679 if next_offset >= end_offset {
20680 return Ok(());
20681 }
20682
20683 while _next_ordinal_to_read < 10 {
20685 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20686 _next_ordinal_to_read += 1;
20687 next_offset += envelope_size;
20688 }
20689
20690 let next_out_of_line = decoder.next_out_of_line();
20691 let handles_before = decoder.remaining_handles();
20692 if let Some((inlined, num_bytes, num_handles)) =
20693 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20694 {
20695 let member_inline_size =
20696 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20697 if inlined != (member_inline_size <= 4) {
20698 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20699 }
20700 let inner_offset;
20701 let mut inner_depth = depth.clone();
20702 if inlined {
20703 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20704 inner_offset = next_offset;
20705 } else {
20706 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20707 inner_depth.increment()?;
20708 }
20709 let val_ref = self
20710 .packet_count_for_client_min
20711 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20712 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20713 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20714 {
20715 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20716 }
20717 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20718 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20719 }
20720 }
20721
20722 next_offset += envelope_size;
20723 _next_ordinal_to_read += 1;
20724 if next_offset >= end_offset {
20725 return Ok(());
20726 }
20727
20728 while _next_ordinal_to_read < 11 {
20730 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20731 _next_ordinal_to_read += 1;
20732 next_offset += envelope_size;
20733 }
20734
20735 let next_out_of_line = decoder.next_out_of_line();
20736 let handles_before = decoder.remaining_handles();
20737 if let Some((inlined, num_bytes, num_handles)) =
20738 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20739 {
20740 let member_inline_size =
20741 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20742 if inlined != (member_inline_size <= 4) {
20743 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20744 }
20745 let inner_offset;
20746 let mut inner_depth = depth.clone();
20747 if inlined {
20748 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20749 inner_offset = next_offset;
20750 } else {
20751 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20752 inner_depth.increment()?;
20753 }
20754 let val_ref = self
20755 .packet_count_for_client_max
20756 .get_or_insert_with(|| fidl::new_empty!(u32, D));
20757 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
20758 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20759 {
20760 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20761 }
20762 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20763 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20764 }
20765 }
20766
20767 next_offset += envelope_size;
20768 _next_ordinal_to_read += 1;
20769 if next_offset >= end_offset {
20770 return Ok(());
20771 }
20772
20773 while _next_ordinal_to_read < 12 {
20775 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20776 _next_ordinal_to_read += 1;
20777 next_offset += envelope_size;
20778 }
20779
20780 let next_out_of_line = decoder.next_out_of_line();
20781 let handles_before = decoder.remaining_handles();
20782 if let Some((inlined, num_bytes, num_handles)) =
20783 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20784 {
20785 let member_inline_size =
20786 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20787 if inlined != (member_inline_size <= 4) {
20788 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20789 }
20790 let inner_offset;
20791 let mut inner_depth = depth.clone();
20792 if inlined {
20793 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20794 inner_offset = next_offset;
20795 } else {
20796 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20797 inner_depth.increment()?;
20798 }
20799 let val_ref = self
20800 .single_buffer_mode_allowed
20801 .get_or_insert_with(|| fidl::new_empty!(bool, D));
20802 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
20803 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20804 {
20805 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20806 }
20807 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20808 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20809 }
20810 }
20811
20812 next_offset += envelope_size;
20813 _next_ordinal_to_read += 1;
20814 if next_offset >= end_offset {
20815 return Ok(());
20816 }
20817
20818 while _next_ordinal_to_read < 13 {
20820 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20821 _next_ordinal_to_read += 1;
20822 next_offset += envelope_size;
20823 }
20824
20825 let next_out_of_line = decoder.next_out_of_line();
20826 let handles_before = decoder.remaining_handles();
20827 if let Some((inlined, num_bytes, num_handles)) =
20828 fidl::encoding::decode_envelope_header(decoder, next_offset)?
20829 {
20830 let member_inline_size =
20831 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
20832 if inlined != (member_inline_size <= 4) {
20833 return Err(fidl::Error::InvalidInlineBitInEnvelope);
20834 }
20835 let inner_offset;
20836 let mut inner_depth = depth.clone();
20837 if inlined {
20838 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
20839 inner_offset = next_offset;
20840 } else {
20841 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
20842 inner_depth.increment()?;
20843 }
20844 let val_ref = self
20845 .is_physically_contiguous_required
20846 .get_or_insert_with(|| fidl::new_empty!(bool, D));
20847 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
20848 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
20849 {
20850 return Err(fidl::Error::InvalidNumBytesInEnvelope);
20851 }
20852 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
20853 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
20854 }
20855 }
20856
20857 next_offset += envelope_size;
20858
20859 while next_offset < end_offset {
20861 _next_ordinal_to_read += 1;
20862 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
20863 next_offset += envelope_size;
20864 }
20865
20866 Ok(())
20867 }
20868 }
20869
20870 impl StreamBufferSettings {
20871 #[inline(always)]
20872 fn max_ordinal_present(&self) -> u64 {
20873 if let Some(_) = self.single_buffer_mode {
20874 return 6;
20875 }
20876 if let Some(_) = self.per_packet_buffer_bytes {
20877 return 5;
20878 }
20879 if let Some(_) = self.packet_count_for_client {
20880 return 4;
20881 }
20882 if let Some(_) = self.packet_count_for_server {
20883 return 3;
20884 }
20885 if let Some(_) = self.buffer_constraints_version_ordinal {
20886 return 2;
20887 }
20888 if let Some(_) = self.buffer_lifetime_ordinal {
20889 return 1;
20890 }
20891 0
20892 }
20893 }
20894
20895 impl fidl::encoding::ValueTypeMarker for StreamBufferSettings {
20896 type Borrowed<'a> = &'a Self;
20897 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
20898 value
20899 }
20900 }
20901
20902 unsafe impl fidl::encoding::TypeMarker for StreamBufferSettings {
20903 type Owned = Self;
20904
20905 #[inline(always)]
20906 fn inline_align(_context: fidl::encoding::Context) -> usize {
20907 8
20908 }
20909
20910 #[inline(always)]
20911 fn inline_size(_context: fidl::encoding::Context) -> usize {
20912 16
20913 }
20914 }
20915
20916 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamBufferSettings, D>
20917 for &StreamBufferSettings
20918 {
20919 unsafe fn encode(
20920 self,
20921 encoder: &mut fidl::encoding::Encoder<'_, D>,
20922 offset: usize,
20923 mut depth: fidl::encoding::Depth,
20924 ) -> fidl::Result<()> {
20925 encoder.debug_check_bounds::<StreamBufferSettings>(offset);
20926 let max_ordinal: u64 = self.max_ordinal_present();
20928 encoder.write_num(max_ordinal, offset);
20929 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
20930 if max_ordinal == 0 {
20932 return Ok(());
20933 }
20934 depth.increment()?;
20935 let envelope_size = 8;
20936 let bytes_len = max_ordinal as usize * envelope_size;
20937 #[allow(unused_variables)]
20938 let offset = encoder.out_of_line_offset(bytes_len);
20939 let mut _prev_end_offset: usize = 0;
20940 if 1 > max_ordinal {
20941 return Ok(());
20942 }
20943
20944 let cur_offset: usize = (1 - 1) * envelope_size;
20947
20948 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20950
20951 fidl::encoding::encode_in_envelope_optional::<u64, D>(
20956 self.buffer_lifetime_ordinal
20957 .as_ref()
20958 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
20959 encoder,
20960 offset + cur_offset,
20961 depth,
20962 )?;
20963
20964 _prev_end_offset = cur_offset + envelope_size;
20965 if 2 > max_ordinal {
20966 return Ok(());
20967 }
20968
20969 let cur_offset: usize = (2 - 1) * envelope_size;
20972
20973 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
20975
20976 fidl::encoding::encode_in_envelope_optional::<u64, D>(
20981 self.buffer_constraints_version_ordinal
20982 .as_ref()
20983 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
20984 encoder,
20985 offset + cur_offset,
20986 depth,
20987 )?;
20988
20989 _prev_end_offset = cur_offset + envelope_size;
20990 if 3 > max_ordinal {
20991 return Ok(());
20992 }
20993
20994 let cur_offset: usize = (3 - 1) * envelope_size;
20997
20998 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21000
21001 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21006 self.packet_count_for_server
21007 .as_ref()
21008 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21009 encoder,
21010 offset + cur_offset,
21011 depth,
21012 )?;
21013
21014 _prev_end_offset = cur_offset + envelope_size;
21015 if 4 > max_ordinal {
21016 return Ok(());
21017 }
21018
21019 let cur_offset: usize = (4 - 1) * envelope_size;
21022
21023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21025
21026 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21031 self.packet_count_for_client
21032 .as_ref()
21033 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21034 encoder,
21035 offset + cur_offset,
21036 depth,
21037 )?;
21038
21039 _prev_end_offset = cur_offset + envelope_size;
21040 if 5 > max_ordinal {
21041 return Ok(());
21042 }
21043
21044 let cur_offset: usize = (5 - 1) * envelope_size;
21047
21048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21050
21051 fidl::encoding::encode_in_envelope_optional::<u32, D>(
21056 self.per_packet_buffer_bytes
21057 .as_ref()
21058 .map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
21059 encoder,
21060 offset + cur_offset,
21061 depth,
21062 )?;
21063
21064 _prev_end_offset = cur_offset + envelope_size;
21065 if 6 > max_ordinal {
21066 return Ok(());
21067 }
21068
21069 let cur_offset: usize = (6 - 1) * envelope_size;
21072
21073 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21075
21076 fidl::encoding::encode_in_envelope_optional::<bool, D>(
21081 self.single_buffer_mode
21082 .as_ref()
21083 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
21084 encoder,
21085 offset + cur_offset,
21086 depth,
21087 )?;
21088
21089 _prev_end_offset = cur_offset + envelope_size;
21090
21091 Ok(())
21092 }
21093 }
21094
21095 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamBufferSettings {
21096 #[inline(always)]
21097 fn new_empty() -> Self {
21098 Self::default()
21099 }
21100
21101 unsafe fn decode(
21102 &mut self,
21103 decoder: &mut fidl::encoding::Decoder<'_, D>,
21104 offset: usize,
21105 mut depth: fidl::encoding::Depth,
21106 ) -> fidl::Result<()> {
21107 decoder.debug_check_bounds::<Self>(offset);
21108 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21109 None => return Err(fidl::Error::NotNullable),
21110 Some(len) => len,
21111 };
21112 if len == 0 {
21114 return Ok(());
21115 };
21116 depth.increment()?;
21117 let envelope_size = 8;
21118 let bytes_len = len * envelope_size;
21119 let offset = decoder.out_of_line_offset(bytes_len)?;
21120 let mut _next_ordinal_to_read = 0;
21122 let mut next_offset = offset;
21123 let end_offset = offset + bytes_len;
21124 _next_ordinal_to_read += 1;
21125 if next_offset >= end_offset {
21126 return Ok(());
21127 }
21128
21129 while _next_ordinal_to_read < 1 {
21131 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21132 _next_ordinal_to_read += 1;
21133 next_offset += envelope_size;
21134 }
21135
21136 let next_out_of_line = decoder.next_out_of_line();
21137 let handles_before = decoder.remaining_handles();
21138 if let Some((inlined, num_bytes, num_handles)) =
21139 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21140 {
21141 let member_inline_size =
21142 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21143 if inlined != (member_inline_size <= 4) {
21144 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21145 }
21146 let inner_offset;
21147 let mut inner_depth = depth.clone();
21148 if inlined {
21149 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21150 inner_offset = next_offset;
21151 } else {
21152 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21153 inner_depth.increment()?;
21154 }
21155 let val_ref =
21156 self.buffer_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21157 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21158 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21159 {
21160 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21161 }
21162 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21163 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21164 }
21165 }
21166
21167 next_offset += envelope_size;
21168 _next_ordinal_to_read += 1;
21169 if next_offset >= end_offset {
21170 return Ok(());
21171 }
21172
21173 while _next_ordinal_to_read < 2 {
21175 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21176 _next_ordinal_to_read += 1;
21177 next_offset += envelope_size;
21178 }
21179
21180 let next_out_of_line = decoder.next_out_of_line();
21181 let handles_before = decoder.remaining_handles();
21182 if let Some((inlined, num_bytes, num_handles)) =
21183 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21184 {
21185 let member_inline_size =
21186 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21187 if inlined != (member_inline_size <= 4) {
21188 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21189 }
21190 let inner_offset;
21191 let mut inner_depth = depth.clone();
21192 if inlined {
21193 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21194 inner_offset = next_offset;
21195 } else {
21196 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21197 inner_depth.increment()?;
21198 }
21199 let val_ref = self
21200 .buffer_constraints_version_ordinal
21201 .get_or_insert_with(|| fidl::new_empty!(u64, D));
21202 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21203 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21204 {
21205 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21206 }
21207 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21208 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21209 }
21210 }
21211
21212 next_offset += envelope_size;
21213 _next_ordinal_to_read += 1;
21214 if next_offset >= end_offset {
21215 return Ok(());
21216 }
21217
21218 while _next_ordinal_to_read < 3 {
21220 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21221 _next_ordinal_to_read += 1;
21222 next_offset += envelope_size;
21223 }
21224
21225 let next_out_of_line = decoder.next_out_of_line();
21226 let handles_before = decoder.remaining_handles();
21227 if let Some((inlined, num_bytes, num_handles)) =
21228 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21229 {
21230 let member_inline_size =
21231 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21232 if inlined != (member_inline_size <= 4) {
21233 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21234 }
21235 let inner_offset;
21236 let mut inner_depth = depth.clone();
21237 if inlined {
21238 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21239 inner_offset = next_offset;
21240 } else {
21241 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21242 inner_depth.increment()?;
21243 }
21244 let val_ref =
21245 self.packet_count_for_server.get_or_insert_with(|| fidl::new_empty!(u32, D));
21246 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21247 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21248 {
21249 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21250 }
21251 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21252 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21253 }
21254 }
21255
21256 next_offset += envelope_size;
21257 _next_ordinal_to_read += 1;
21258 if next_offset >= end_offset {
21259 return Ok(());
21260 }
21261
21262 while _next_ordinal_to_read < 4 {
21264 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21265 _next_ordinal_to_read += 1;
21266 next_offset += envelope_size;
21267 }
21268
21269 let next_out_of_line = decoder.next_out_of_line();
21270 let handles_before = decoder.remaining_handles();
21271 if let Some((inlined, num_bytes, num_handles)) =
21272 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21273 {
21274 let member_inline_size =
21275 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21276 if inlined != (member_inline_size <= 4) {
21277 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21278 }
21279 let inner_offset;
21280 let mut inner_depth = depth.clone();
21281 if inlined {
21282 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21283 inner_offset = next_offset;
21284 } else {
21285 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21286 inner_depth.increment()?;
21287 }
21288 let val_ref =
21289 self.packet_count_for_client.get_or_insert_with(|| fidl::new_empty!(u32, D));
21290 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21291 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21292 {
21293 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21294 }
21295 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21296 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21297 }
21298 }
21299
21300 next_offset += envelope_size;
21301 _next_ordinal_to_read += 1;
21302 if next_offset >= end_offset {
21303 return Ok(());
21304 }
21305
21306 while _next_ordinal_to_read < 5 {
21308 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21309 _next_ordinal_to_read += 1;
21310 next_offset += envelope_size;
21311 }
21312
21313 let next_out_of_line = decoder.next_out_of_line();
21314 let handles_before = decoder.remaining_handles();
21315 if let Some((inlined, num_bytes, num_handles)) =
21316 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21317 {
21318 let member_inline_size =
21319 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21320 if inlined != (member_inline_size <= 4) {
21321 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21322 }
21323 let inner_offset;
21324 let mut inner_depth = depth.clone();
21325 if inlined {
21326 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21327 inner_offset = next_offset;
21328 } else {
21329 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21330 inner_depth.increment()?;
21331 }
21332 let val_ref =
21333 self.per_packet_buffer_bytes.get_or_insert_with(|| fidl::new_empty!(u32, D));
21334 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
21335 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21336 {
21337 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21338 }
21339 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21340 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21341 }
21342 }
21343
21344 next_offset += envelope_size;
21345 _next_ordinal_to_read += 1;
21346 if next_offset >= end_offset {
21347 return Ok(());
21348 }
21349
21350 while _next_ordinal_to_read < 6 {
21352 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21353 _next_ordinal_to_read += 1;
21354 next_offset += envelope_size;
21355 }
21356
21357 let next_out_of_line = decoder.next_out_of_line();
21358 let handles_before = decoder.remaining_handles();
21359 if let Some((inlined, num_bytes, num_handles)) =
21360 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21361 {
21362 let member_inline_size =
21363 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21364 if inlined != (member_inline_size <= 4) {
21365 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21366 }
21367 let inner_offset;
21368 let mut inner_depth = depth.clone();
21369 if inlined {
21370 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21371 inner_offset = next_offset;
21372 } else {
21373 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21374 inner_depth.increment()?;
21375 }
21376 let val_ref =
21377 self.single_buffer_mode.get_or_insert_with(|| fidl::new_empty!(bool, D));
21378 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
21379 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21380 {
21381 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21382 }
21383 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21384 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21385 }
21386 }
21387
21388 next_offset += envelope_size;
21389
21390 while next_offset < end_offset {
21392 _next_ordinal_to_read += 1;
21393 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21394 next_offset += envelope_size;
21395 }
21396
21397 Ok(())
21398 }
21399 }
21400
21401 impl StreamOutputConstraints {
21402 #[inline(always)]
21403 fn max_ordinal_present(&self) -> u64 {
21404 if let Some(_) = self.buffer_constraints {
21405 return 3;
21406 }
21407 if let Some(_) = self.buffer_constraints_action_required {
21408 return 2;
21409 }
21410 if let Some(_) = self.stream_lifetime_ordinal {
21411 return 1;
21412 }
21413 0
21414 }
21415 }
21416
21417 impl fidl::encoding::ValueTypeMarker for StreamOutputConstraints {
21418 type Borrowed<'a> = &'a Self;
21419 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21420 value
21421 }
21422 }
21423
21424 unsafe impl fidl::encoding::TypeMarker for StreamOutputConstraints {
21425 type Owned = Self;
21426
21427 #[inline(always)]
21428 fn inline_align(_context: fidl::encoding::Context) -> usize {
21429 8
21430 }
21431
21432 #[inline(always)]
21433 fn inline_size(_context: fidl::encoding::Context) -> usize {
21434 16
21435 }
21436 }
21437
21438 unsafe impl<D: fidl::encoding::ResourceDialect>
21439 fidl::encoding::Encode<StreamOutputConstraints, D> for &StreamOutputConstraints
21440 {
21441 unsafe fn encode(
21442 self,
21443 encoder: &mut fidl::encoding::Encoder<'_, D>,
21444 offset: usize,
21445 mut depth: fidl::encoding::Depth,
21446 ) -> fidl::Result<()> {
21447 encoder.debug_check_bounds::<StreamOutputConstraints>(offset);
21448 let max_ordinal: u64 = self.max_ordinal_present();
21450 encoder.write_num(max_ordinal, offset);
21451 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21452 if max_ordinal == 0 {
21454 return Ok(());
21455 }
21456 depth.increment()?;
21457 let envelope_size = 8;
21458 let bytes_len = max_ordinal as usize * envelope_size;
21459 #[allow(unused_variables)]
21460 let offset = encoder.out_of_line_offset(bytes_len);
21461 let mut _prev_end_offset: usize = 0;
21462 if 1 > max_ordinal {
21463 return Ok(());
21464 }
21465
21466 let cur_offset: usize = (1 - 1) * envelope_size;
21469
21470 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21472
21473 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21478 self.stream_lifetime_ordinal
21479 .as_ref()
21480 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21481 encoder,
21482 offset + cur_offset,
21483 depth,
21484 )?;
21485
21486 _prev_end_offset = cur_offset + envelope_size;
21487 if 2 > max_ordinal {
21488 return Ok(());
21489 }
21490
21491 let cur_offset: usize = (2 - 1) * envelope_size;
21494
21495 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21497
21498 fidl::encoding::encode_in_envelope_optional::<bool, D>(
21503 self.buffer_constraints_action_required
21504 .as_ref()
21505 .map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
21506 encoder,
21507 offset + cur_offset,
21508 depth,
21509 )?;
21510
21511 _prev_end_offset = cur_offset + envelope_size;
21512 if 3 > max_ordinal {
21513 return Ok(());
21514 }
21515
21516 let cur_offset: usize = (3 - 1) * envelope_size;
21519
21520 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21522
21523 fidl::encoding::encode_in_envelope_optional::<StreamBufferConstraints, D>(
21528 self.buffer_constraints
21529 .as_ref()
21530 .map(<StreamBufferConstraints as fidl::encoding::ValueTypeMarker>::borrow),
21531 encoder,
21532 offset + cur_offset,
21533 depth,
21534 )?;
21535
21536 _prev_end_offset = cur_offset + envelope_size;
21537
21538 Ok(())
21539 }
21540 }
21541
21542 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
21543 for StreamOutputConstraints
21544 {
21545 #[inline(always)]
21546 fn new_empty() -> Self {
21547 Self::default()
21548 }
21549
21550 unsafe fn decode(
21551 &mut self,
21552 decoder: &mut fidl::encoding::Decoder<'_, D>,
21553 offset: usize,
21554 mut depth: fidl::encoding::Depth,
21555 ) -> fidl::Result<()> {
21556 decoder.debug_check_bounds::<Self>(offset);
21557 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21558 None => return Err(fidl::Error::NotNullable),
21559 Some(len) => len,
21560 };
21561 if len == 0 {
21563 return Ok(());
21564 };
21565 depth.increment()?;
21566 let envelope_size = 8;
21567 let bytes_len = len * envelope_size;
21568 let offset = decoder.out_of_line_offset(bytes_len)?;
21569 let mut _next_ordinal_to_read = 0;
21571 let mut next_offset = offset;
21572 let end_offset = offset + bytes_len;
21573 _next_ordinal_to_read += 1;
21574 if next_offset >= end_offset {
21575 return Ok(());
21576 }
21577
21578 while _next_ordinal_to_read < 1 {
21580 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21581 _next_ordinal_to_read += 1;
21582 next_offset += envelope_size;
21583 }
21584
21585 let next_out_of_line = decoder.next_out_of_line();
21586 let handles_before = decoder.remaining_handles();
21587 if let Some((inlined, num_bytes, num_handles)) =
21588 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21589 {
21590 let member_inline_size =
21591 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21592 if inlined != (member_inline_size <= 4) {
21593 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21594 }
21595 let inner_offset;
21596 let mut inner_depth = depth.clone();
21597 if inlined {
21598 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21599 inner_offset = next_offset;
21600 } else {
21601 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21602 inner_depth.increment()?;
21603 }
21604 let val_ref =
21605 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21606 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21607 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21608 {
21609 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21610 }
21611 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21612 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21613 }
21614 }
21615
21616 next_offset += envelope_size;
21617 _next_ordinal_to_read += 1;
21618 if next_offset >= end_offset {
21619 return Ok(());
21620 }
21621
21622 while _next_ordinal_to_read < 2 {
21624 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21625 _next_ordinal_to_read += 1;
21626 next_offset += envelope_size;
21627 }
21628
21629 let next_out_of_line = decoder.next_out_of_line();
21630 let handles_before = decoder.remaining_handles();
21631 if let Some((inlined, num_bytes, num_handles)) =
21632 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21633 {
21634 let member_inline_size =
21635 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21636 if inlined != (member_inline_size <= 4) {
21637 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21638 }
21639 let inner_offset;
21640 let mut inner_depth = depth.clone();
21641 if inlined {
21642 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21643 inner_offset = next_offset;
21644 } else {
21645 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21646 inner_depth.increment()?;
21647 }
21648 let val_ref = self
21649 .buffer_constraints_action_required
21650 .get_or_insert_with(|| fidl::new_empty!(bool, D));
21651 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
21652 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21653 {
21654 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21655 }
21656 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21657 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21658 }
21659 }
21660
21661 next_offset += envelope_size;
21662 _next_ordinal_to_read += 1;
21663 if next_offset >= end_offset {
21664 return Ok(());
21665 }
21666
21667 while _next_ordinal_to_read < 3 {
21669 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21670 _next_ordinal_to_read += 1;
21671 next_offset += envelope_size;
21672 }
21673
21674 let next_out_of_line = decoder.next_out_of_line();
21675 let handles_before = decoder.remaining_handles();
21676 if let Some((inlined, num_bytes, num_handles)) =
21677 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21678 {
21679 let member_inline_size =
21680 <StreamBufferConstraints as fidl::encoding::TypeMarker>::inline_size(
21681 decoder.context,
21682 );
21683 if inlined != (member_inline_size <= 4) {
21684 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21685 }
21686 let inner_offset;
21687 let mut inner_depth = depth.clone();
21688 if inlined {
21689 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21690 inner_offset = next_offset;
21691 } else {
21692 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21693 inner_depth.increment()?;
21694 }
21695 let val_ref = self
21696 .buffer_constraints
21697 .get_or_insert_with(|| fidl::new_empty!(StreamBufferConstraints, D));
21698 fidl::decode!(
21699 StreamBufferConstraints,
21700 D,
21701 val_ref,
21702 decoder,
21703 inner_offset,
21704 inner_depth
21705 )?;
21706 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21707 {
21708 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21709 }
21710 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21711 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21712 }
21713 }
21714
21715 next_offset += envelope_size;
21716
21717 while next_offset < end_offset {
21719 _next_ordinal_to_read += 1;
21720 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21721 next_offset += envelope_size;
21722 }
21723
21724 Ok(())
21725 }
21726 }
21727
21728 impl StreamOutputFormat {
21729 #[inline(always)]
21730 fn max_ordinal_present(&self) -> u64 {
21731 if let Some(_) = self.format_details {
21732 return 2;
21733 }
21734 if let Some(_) = self.stream_lifetime_ordinal {
21735 return 1;
21736 }
21737 0
21738 }
21739 }
21740
21741 impl fidl::encoding::ValueTypeMarker for StreamOutputFormat {
21742 type Borrowed<'a> = &'a Self;
21743 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21744 value
21745 }
21746 }
21747
21748 unsafe impl fidl::encoding::TypeMarker for StreamOutputFormat {
21749 type Owned = Self;
21750
21751 #[inline(always)]
21752 fn inline_align(_context: fidl::encoding::Context) -> usize {
21753 8
21754 }
21755
21756 #[inline(always)]
21757 fn inline_size(_context: fidl::encoding::Context) -> usize {
21758 16
21759 }
21760 }
21761
21762 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<StreamOutputFormat, D>
21763 for &StreamOutputFormat
21764 {
21765 unsafe fn encode(
21766 self,
21767 encoder: &mut fidl::encoding::Encoder<'_, D>,
21768 offset: usize,
21769 mut depth: fidl::encoding::Depth,
21770 ) -> fidl::Result<()> {
21771 encoder.debug_check_bounds::<StreamOutputFormat>(offset);
21772 let max_ordinal: u64 = self.max_ordinal_present();
21774 encoder.write_num(max_ordinal, offset);
21775 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
21776 if max_ordinal == 0 {
21778 return Ok(());
21779 }
21780 depth.increment()?;
21781 let envelope_size = 8;
21782 let bytes_len = max_ordinal as usize * envelope_size;
21783 #[allow(unused_variables)]
21784 let offset = encoder.out_of_line_offset(bytes_len);
21785 let mut _prev_end_offset: usize = 0;
21786 if 1 > max_ordinal {
21787 return Ok(());
21788 }
21789
21790 let cur_offset: usize = (1 - 1) * envelope_size;
21793
21794 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21796
21797 fidl::encoding::encode_in_envelope_optional::<u64, D>(
21802 self.stream_lifetime_ordinal
21803 .as_ref()
21804 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
21805 encoder,
21806 offset + cur_offset,
21807 depth,
21808 )?;
21809
21810 _prev_end_offset = cur_offset + envelope_size;
21811 if 2 > max_ordinal {
21812 return Ok(());
21813 }
21814
21815 let cur_offset: usize = (2 - 1) * envelope_size;
21818
21819 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
21821
21822 fidl::encoding::encode_in_envelope_optional::<FormatDetails, D>(
21827 self.format_details
21828 .as_ref()
21829 .map(<FormatDetails as fidl::encoding::ValueTypeMarker>::borrow),
21830 encoder,
21831 offset + cur_offset,
21832 depth,
21833 )?;
21834
21835 _prev_end_offset = cur_offset + envelope_size;
21836
21837 Ok(())
21838 }
21839 }
21840
21841 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StreamOutputFormat {
21842 #[inline(always)]
21843 fn new_empty() -> Self {
21844 Self::default()
21845 }
21846
21847 unsafe fn decode(
21848 &mut self,
21849 decoder: &mut fidl::encoding::Decoder<'_, D>,
21850 offset: usize,
21851 mut depth: fidl::encoding::Depth,
21852 ) -> fidl::Result<()> {
21853 decoder.debug_check_bounds::<Self>(offset);
21854 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
21855 None => return Err(fidl::Error::NotNullable),
21856 Some(len) => len,
21857 };
21858 if len == 0 {
21860 return Ok(());
21861 };
21862 depth.increment()?;
21863 let envelope_size = 8;
21864 let bytes_len = len * envelope_size;
21865 let offset = decoder.out_of_line_offset(bytes_len)?;
21866 let mut _next_ordinal_to_read = 0;
21868 let mut next_offset = offset;
21869 let end_offset = offset + bytes_len;
21870 _next_ordinal_to_read += 1;
21871 if next_offset >= end_offset {
21872 return Ok(());
21873 }
21874
21875 while _next_ordinal_to_read < 1 {
21877 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21878 _next_ordinal_to_read += 1;
21879 next_offset += envelope_size;
21880 }
21881
21882 let next_out_of_line = decoder.next_out_of_line();
21883 let handles_before = decoder.remaining_handles();
21884 if let Some((inlined, num_bytes, num_handles)) =
21885 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21886 {
21887 let member_inline_size =
21888 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21889 if inlined != (member_inline_size <= 4) {
21890 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21891 }
21892 let inner_offset;
21893 let mut inner_depth = depth.clone();
21894 if inlined {
21895 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21896 inner_offset = next_offset;
21897 } else {
21898 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21899 inner_depth.increment()?;
21900 }
21901 let val_ref =
21902 self.stream_lifetime_ordinal.get_or_insert_with(|| fidl::new_empty!(u64, D));
21903 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
21904 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21905 {
21906 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21907 }
21908 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21909 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21910 }
21911 }
21912
21913 next_offset += envelope_size;
21914 _next_ordinal_to_read += 1;
21915 if next_offset >= end_offset {
21916 return Ok(());
21917 }
21918
21919 while _next_ordinal_to_read < 2 {
21921 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21922 _next_ordinal_to_read += 1;
21923 next_offset += envelope_size;
21924 }
21925
21926 let next_out_of_line = decoder.next_out_of_line();
21927 let handles_before = decoder.remaining_handles();
21928 if let Some((inlined, num_bytes, num_handles)) =
21929 fidl::encoding::decode_envelope_header(decoder, next_offset)?
21930 {
21931 let member_inline_size =
21932 <FormatDetails as fidl::encoding::TypeMarker>::inline_size(decoder.context);
21933 if inlined != (member_inline_size <= 4) {
21934 return Err(fidl::Error::InvalidInlineBitInEnvelope);
21935 }
21936 let inner_offset;
21937 let mut inner_depth = depth.clone();
21938 if inlined {
21939 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
21940 inner_offset = next_offset;
21941 } else {
21942 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
21943 inner_depth.increment()?;
21944 }
21945 let val_ref =
21946 self.format_details.get_or_insert_with(|| fidl::new_empty!(FormatDetails, D));
21947 fidl::decode!(FormatDetails, D, val_ref, decoder, inner_offset, inner_depth)?;
21948 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
21949 {
21950 return Err(fidl::Error::InvalidNumBytesInEnvelope);
21951 }
21952 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
21953 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
21954 }
21955 }
21956
21957 next_offset += envelope_size;
21958
21959 while next_offset < end_offset {
21961 _next_ordinal_to_read += 1;
21962 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
21963 next_offset += envelope_size;
21964 }
21965
21966 Ok(())
21967 }
21968 }
21969
21970 impl UsageStateDucked {
21971 #[inline(always)]
21972 fn max_ordinal_present(&self) -> u64 {
21973 0
21974 }
21975 }
21976
21977 impl fidl::encoding::ValueTypeMarker for UsageStateDucked {
21978 type Borrowed<'a> = &'a Self;
21979 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
21980 value
21981 }
21982 }
21983
21984 unsafe impl fidl::encoding::TypeMarker for UsageStateDucked {
21985 type Owned = Self;
21986
21987 #[inline(always)]
21988 fn inline_align(_context: fidl::encoding::Context) -> usize {
21989 8
21990 }
21991
21992 #[inline(always)]
21993 fn inline_size(_context: fidl::encoding::Context) -> usize {
21994 16
21995 }
21996 }
21997
21998 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateDucked, D>
21999 for &UsageStateDucked
22000 {
22001 unsafe fn encode(
22002 self,
22003 encoder: &mut fidl::encoding::Encoder<'_, D>,
22004 offset: usize,
22005 mut depth: fidl::encoding::Depth,
22006 ) -> fidl::Result<()> {
22007 encoder.debug_check_bounds::<UsageStateDucked>(offset);
22008 let max_ordinal: u64 = self.max_ordinal_present();
22010 encoder.write_num(max_ordinal, offset);
22011 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22012 if max_ordinal == 0 {
22014 return Ok(());
22015 }
22016 depth.increment()?;
22017 let envelope_size = 8;
22018 let bytes_len = max_ordinal as usize * envelope_size;
22019 #[allow(unused_variables)]
22020 let offset = encoder.out_of_line_offset(bytes_len);
22021 let mut _prev_end_offset: usize = 0;
22022
22023 Ok(())
22024 }
22025 }
22026
22027 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateDucked {
22028 #[inline(always)]
22029 fn new_empty() -> Self {
22030 Self::default()
22031 }
22032
22033 unsafe fn decode(
22034 &mut self,
22035 decoder: &mut fidl::encoding::Decoder<'_, D>,
22036 offset: usize,
22037 mut depth: fidl::encoding::Depth,
22038 ) -> fidl::Result<()> {
22039 decoder.debug_check_bounds::<Self>(offset);
22040 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22041 None => return Err(fidl::Error::NotNullable),
22042 Some(len) => len,
22043 };
22044 if len == 0 {
22046 return Ok(());
22047 };
22048 depth.increment()?;
22049 let envelope_size = 8;
22050 let bytes_len = len * envelope_size;
22051 let offset = decoder.out_of_line_offset(bytes_len)?;
22052 let mut _next_ordinal_to_read = 0;
22054 let mut next_offset = offset;
22055 let end_offset = offset + bytes_len;
22056
22057 while next_offset < end_offset {
22059 _next_ordinal_to_read += 1;
22060 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22061 next_offset += envelope_size;
22062 }
22063
22064 Ok(())
22065 }
22066 }
22067
22068 impl UsageStateMuted {
22069 #[inline(always)]
22070 fn max_ordinal_present(&self) -> u64 {
22071 0
22072 }
22073 }
22074
22075 impl fidl::encoding::ValueTypeMarker for UsageStateMuted {
22076 type Borrowed<'a> = &'a Self;
22077 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22078 value
22079 }
22080 }
22081
22082 unsafe impl fidl::encoding::TypeMarker for UsageStateMuted {
22083 type Owned = Self;
22084
22085 #[inline(always)]
22086 fn inline_align(_context: fidl::encoding::Context) -> usize {
22087 8
22088 }
22089
22090 #[inline(always)]
22091 fn inline_size(_context: fidl::encoding::Context) -> usize {
22092 16
22093 }
22094 }
22095
22096 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateMuted, D>
22097 for &UsageStateMuted
22098 {
22099 unsafe fn encode(
22100 self,
22101 encoder: &mut fidl::encoding::Encoder<'_, D>,
22102 offset: usize,
22103 mut depth: fidl::encoding::Depth,
22104 ) -> fidl::Result<()> {
22105 encoder.debug_check_bounds::<UsageStateMuted>(offset);
22106 let max_ordinal: u64 = self.max_ordinal_present();
22108 encoder.write_num(max_ordinal, offset);
22109 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22110 if max_ordinal == 0 {
22112 return Ok(());
22113 }
22114 depth.increment()?;
22115 let envelope_size = 8;
22116 let bytes_len = max_ordinal as usize * envelope_size;
22117 #[allow(unused_variables)]
22118 let offset = encoder.out_of_line_offset(bytes_len);
22119 let mut _prev_end_offset: usize = 0;
22120
22121 Ok(())
22122 }
22123 }
22124
22125 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateMuted {
22126 #[inline(always)]
22127 fn new_empty() -> Self {
22128 Self::default()
22129 }
22130
22131 unsafe fn decode(
22132 &mut self,
22133 decoder: &mut fidl::encoding::Decoder<'_, D>,
22134 offset: usize,
22135 mut depth: fidl::encoding::Depth,
22136 ) -> fidl::Result<()> {
22137 decoder.debug_check_bounds::<Self>(offset);
22138 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22139 None => return Err(fidl::Error::NotNullable),
22140 Some(len) => len,
22141 };
22142 if len == 0 {
22144 return Ok(());
22145 };
22146 depth.increment()?;
22147 let envelope_size = 8;
22148 let bytes_len = len * envelope_size;
22149 let offset = decoder.out_of_line_offset(bytes_len)?;
22150 let mut _next_ordinal_to_read = 0;
22152 let mut next_offset = offset;
22153 let end_offset = offset + bytes_len;
22154
22155 while next_offset < end_offset {
22157 _next_ordinal_to_read += 1;
22158 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22159 next_offset += envelope_size;
22160 }
22161
22162 Ok(())
22163 }
22164 }
22165
22166 impl UsageStateUnadjusted {
22167 #[inline(always)]
22168 fn max_ordinal_present(&self) -> u64 {
22169 0
22170 }
22171 }
22172
22173 impl fidl::encoding::ValueTypeMarker for UsageStateUnadjusted {
22174 type Borrowed<'a> = &'a Self;
22175 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22176 value
22177 }
22178 }
22179
22180 unsafe impl fidl::encoding::TypeMarker for UsageStateUnadjusted {
22181 type Owned = Self;
22182
22183 #[inline(always)]
22184 fn inline_align(_context: fidl::encoding::Context) -> usize {
22185 8
22186 }
22187
22188 #[inline(always)]
22189 fn inline_size(_context: fidl::encoding::Context) -> usize {
22190 16
22191 }
22192 }
22193
22194 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageStateUnadjusted, D>
22195 for &UsageStateUnadjusted
22196 {
22197 unsafe fn encode(
22198 self,
22199 encoder: &mut fidl::encoding::Encoder<'_, D>,
22200 offset: usize,
22201 mut depth: fidl::encoding::Depth,
22202 ) -> fidl::Result<()> {
22203 encoder.debug_check_bounds::<UsageStateUnadjusted>(offset);
22204 let max_ordinal: u64 = self.max_ordinal_present();
22206 encoder.write_num(max_ordinal, offset);
22207 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
22208 if max_ordinal == 0 {
22210 return Ok(());
22211 }
22212 depth.increment()?;
22213 let envelope_size = 8;
22214 let bytes_len = max_ordinal as usize * envelope_size;
22215 #[allow(unused_variables)]
22216 let offset = encoder.out_of_line_offset(bytes_len);
22217 let mut _prev_end_offset: usize = 0;
22218
22219 Ok(())
22220 }
22221 }
22222
22223 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageStateUnadjusted {
22224 #[inline(always)]
22225 fn new_empty() -> Self {
22226 Self::default()
22227 }
22228
22229 unsafe fn decode(
22230 &mut self,
22231 decoder: &mut fidl::encoding::Decoder<'_, D>,
22232 offset: usize,
22233 mut depth: fidl::encoding::Depth,
22234 ) -> fidl::Result<()> {
22235 decoder.debug_check_bounds::<Self>(offset);
22236 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
22237 None => return Err(fidl::Error::NotNullable),
22238 Some(len) => len,
22239 };
22240 if len == 0 {
22242 return Ok(());
22243 };
22244 depth.increment()?;
22245 let envelope_size = 8;
22246 let bytes_len = len * envelope_size;
22247 let offset = decoder.out_of_line_offset(bytes_len)?;
22248 let mut _next_ordinal_to_read = 0;
22250 let mut next_offset = offset;
22251 let end_offset = offset + bytes_len;
22252
22253 while next_offset < end_offset {
22255 _next_ordinal_to_read += 1;
22256 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
22257 next_offset += envelope_size;
22258 }
22259
22260 Ok(())
22261 }
22262 }
22263
22264 impl fidl::encoding::ValueTypeMarker for AacBitRate {
22265 type Borrowed<'a> = &'a Self;
22266 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22267 value
22268 }
22269 }
22270
22271 unsafe impl fidl::encoding::TypeMarker for AacBitRate {
22272 type Owned = Self;
22273
22274 #[inline(always)]
22275 fn inline_align(_context: fidl::encoding::Context) -> usize {
22276 8
22277 }
22278
22279 #[inline(always)]
22280 fn inline_size(_context: fidl::encoding::Context) -> usize {
22281 16
22282 }
22283 }
22284
22285 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacBitRate, D>
22286 for &AacBitRate
22287 {
22288 #[inline]
22289 unsafe fn encode(
22290 self,
22291 encoder: &mut fidl::encoding::Encoder<'_, D>,
22292 offset: usize,
22293 _depth: fidl::encoding::Depth,
22294 ) -> fidl::Result<()> {
22295 encoder.debug_check_bounds::<AacBitRate>(offset);
22296 encoder.write_num::<u64>(self.ordinal(), offset);
22297 match self {
22298 AacBitRate::Constant(ref val) => {
22299 fidl::encoding::encode_in_envelope::<AacConstantBitRate, D>(
22300 <AacConstantBitRate as fidl::encoding::ValueTypeMarker>::borrow(val),
22301 encoder,
22302 offset + 8,
22303 _depth,
22304 )
22305 }
22306 AacBitRate::Variable(ref val) => {
22307 fidl::encoding::encode_in_envelope::<AacVariableBitRate, D>(
22308 <AacVariableBitRate as fidl::encoding::ValueTypeMarker>::borrow(val),
22309 encoder,
22310 offset + 8,
22311 _depth,
22312 )
22313 }
22314 }
22315 }
22316 }
22317
22318 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacBitRate {
22319 #[inline(always)]
22320 fn new_empty() -> Self {
22321 Self::Constant(fidl::new_empty!(AacConstantBitRate, D))
22322 }
22323
22324 #[inline]
22325 unsafe fn decode(
22326 &mut self,
22327 decoder: &mut fidl::encoding::Decoder<'_, D>,
22328 offset: usize,
22329 mut depth: fidl::encoding::Depth,
22330 ) -> fidl::Result<()> {
22331 decoder.debug_check_bounds::<Self>(offset);
22332 #[allow(unused_variables)]
22333 let next_out_of_line = decoder.next_out_of_line();
22334 let handles_before = decoder.remaining_handles();
22335 let (ordinal, inlined, num_bytes, num_handles) =
22336 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22337
22338 let member_inline_size = match ordinal {
22339 1 => {
22340 <AacConstantBitRate as fidl::encoding::TypeMarker>::inline_size(decoder.context)
22341 }
22342 2 => {
22343 <AacVariableBitRate as fidl::encoding::TypeMarker>::inline_size(decoder.context)
22344 }
22345 _ => return Err(fidl::Error::UnknownUnionTag),
22346 };
22347
22348 if inlined != (member_inline_size <= 4) {
22349 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22350 }
22351 let _inner_offset;
22352 if inlined {
22353 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22354 _inner_offset = offset + 8;
22355 } else {
22356 depth.increment()?;
22357 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22358 }
22359 match ordinal {
22360 1 => {
22361 #[allow(irrefutable_let_patterns)]
22362 if let AacBitRate::Constant(_) = self {
22363 } else {
22365 *self = AacBitRate::Constant(fidl::new_empty!(AacConstantBitRate, D));
22367 }
22368 #[allow(irrefutable_let_patterns)]
22369 if let AacBitRate::Constant(ref mut val) = self {
22370 fidl::decode!(AacConstantBitRate, D, val, decoder, _inner_offset, depth)?;
22371 } else {
22372 unreachable!()
22373 }
22374 }
22375 2 => {
22376 #[allow(irrefutable_let_patterns)]
22377 if let AacBitRate::Variable(_) = self {
22378 } else {
22380 *self = AacBitRate::Variable(fidl::new_empty!(AacVariableBitRate, D));
22382 }
22383 #[allow(irrefutable_let_patterns)]
22384 if let AacBitRate::Variable(ref mut val) = self {
22385 fidl::decode!(AacVariableBitRate, D, val, decoder, _inner_offset, depth)?;
22386 } else {
22387 unreachable!()
22388 }
22389 }
22390 ordinal => panic!("unexpected ordinal {:?}", ordinal),
22391 }
22392 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22393 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22394 }
22395 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22396 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22397 }
22398 Ok(())
22399 }
22400 }
22401
22402 impl fidl::encoding::ValueTypeMarker for AacTransport {
22403 type Borrowed<'a> = &'a Self;
22404 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22405 value
22406 }
22407 }
22408
22409 unsafe impl fidl::encoding::TypeMarker for AacTransport {
22410 type Owned = Self;
22411
22412 #[inline(always)]
22413 fn inline_align(_context: fidl::encoding::Context) -> usize {
22414 8
22415 }
22416
22417 #[inline(always)]
22418 fn inline_size(_context: fidl::encoding::Context) -> usize {
22419 16
22420 }
22421 }
22422
22423 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AacTransport, D>
22424 for &AacTransport
22425 {
22426 #[inline]
22427 unsafe fn encode(
22428 self,
22429 encoder: &mut fidl::encoding::Encoder<'_, D>,
22430 offset: usize,
22431 _depth: fidl::encoding::Depth,
22432 ) -> fidl::Result<()> {
22433 encoder.debug_check_bounds::<AacTransport>(offset);
22434 encoder.write_num::<u64>(self.ordinal(), offset);
22435 match self {
22436 AacTransport::Raw(ref val) => {
22437 fidl::encoding::encode_in_envelope::<AacTransportRaw, D>(
22438 <AacTransportRaw as fidl::encoding::ValueTypeMarker>::borrow(val),
22439 encoder,
22440 offset + 8,
22441 _depth,
22442 )
22443 }
22444 AacTransport::Latm(ref val) => {
22445 fidl::encoding::encode_in_envelope::<AacTransportLatm, D>(
22446 <AacTransportLatm as fidl::encoding::ValueTypeMarker>::borrow(val),
22447 encoder,
22448 offset + 8,
22449 _depth,
22450 )
22451 }
22452 AacTransport::Adts(ref val) => {
22453 fidl::encoding::encode_in_envelope::<AacTransportAdts, D>(
22454 <AacTransportAdts as fidl::encoding::ValueTypeMarker>::borrow(val),
22455 encoder,
22456 offset + 8,
22457 _depth,
22458 )
22459 }
22460 AacTransport::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
22461 }
22462 }
22463 }
22464
22465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AacTransport {
22466 #[inline(always)]
22467 fn new_empty() -> Self {
22468 Self::__SourceBreaking { unknown_ordinal: 0 }
22469 }
22470
22471 #[inline]
22472 unsafe fn decode(
22473 &mut self,
22474 decoder: &mut fidl::encoding::Decoder<'_, D>,
22475 offset: usize,
22476 mut depth: fidl::encoding::Depth,
22477 ) -> fidl::Result<()> {
22478 decoder.debug_check_bounds::<Self>(offset);
22479 #[allow(unused_variables)]
22480 let next_out_of_line = decoder.next_out_of_line();
22481 let handles_before = decoder.remaining_handles();
22482 let (ordinal, inlined, num_bytes, num_handles) =
22483 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22484
22485 let member_inline_size = match ordinal {
22486 1 => <AacTransportRaw as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22487 2 => <AacTransportLatm as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22488 3 => <AacTransportAdts as fidl::encoding::TypeMarker>::inline_size(decoder.context),
22489 0 => return Err(fidl::Error::UnknownUnionTag),
22490 _ => num_bytes as usize,
22491 };
22492
22493 if inlined != (member_inline_size <= 4) {
22494 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22495 }
22496 let _inner_offset;
22497 if inlined {
22498 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22499 _inner_offset = offset + 8;
22500 } else {
22501 depth.increment()?;
22502 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22503 }
22504 match ordinal {
22505 1 => {
22506 #[allow(irrefutable_let_patterns)]
22507 if let AacTransport::Raw(_) = self {
22508 } else {
22510 *self = AacTransport::Raw(fidl::new_empty!(AacTransportRaw, D));
22512 }
22513 #[allow(irrefutable_let_patterns)]
22514 if let AacTransport::Raw(ref mut val) = self {
22515 fidl::decode!(AacTransportRaw, D, val, decoder, _inner_offset, depth)?;
22516 } else {
22517 unreachable!()
22518 }
22519 }
22520 2 => {
22521 #[allow(irrefutable_let_patterns)]
22522 if let AacTransport::Latm(_) = self {
22523 } else {
22525 *self = AacTransport::Latm(fidl::new_empty!(AacTransportLatm, D));
22527 }
22528 #[allow(irrefutable_let_patterns)]
22529 if let AacTransport::Latm(ref mut val) = self {
22530 fidl::decode!(AacTransportLatm, D, val, decoder, _inner_offset, depth)?;
22531 } else {
22532 unreachable!()
22533 }
22534 }
22535 3 => {
22536 #[allow(irrefutable_let_patterns)]
22537 if let AacTransport::Adts(_) = self {
22538 } else {
22540 *self = AacTransport::Adts(fidl::new_empty!(AacTransportAdts, D));
22542 }
22543 #[allow(irrefutable_let_patterns)]
22544 if let AacTransport::Adts(ref mut val) = self {
22545 fidl::decode!(AacTransportAdts, D, val, decoder, _inner_offset, depth)?;
22546 } else {
22547 unreachable!()
22548 }
22549 }
22550 #[allow(deprecated)]
22551 ordinal => {
22552 for _ in 0..num_handles {
22553 decoder.drop_next_handle()?;
22554 }
22555 *self = AacTransport::__SourceBreaking { unknown_ordinal: ordinal };
22556 }
22557 }
22558 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22559 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22560 }
22561 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22562 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22563 }
22564 Ok(())
22565 }
22566 }
22567
22568 impl fidl::encoding::ValueTypeMarker for AudioCapturerConfiguration {
22569 type Borrowed<'a> = &'a Self;
22570 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22571 value
22572 }
22573 }
22574
22575 unsafe impl fidl::encoding::TypeMarker for AudioCapturerConfiguration {
22576 type Owned = Self;
22577
22578 #[inline(always)]
22579 fn inline_align(_context: fidl::encoding::Context) -> usize {
22580 8
22581 }
22582
22583 #[inline(always)]
22584 fn inline_size(_context: fidl::encoding::Context) -> usize {
22585 16
22586 }
22587 }
22588
22589 unsafe impl<D: fidl::encoding::ResourceDialect>
22590 fidl::encoding::Encode<AudioCapturerConfiguration, D> for &AudioCapturerConfiguration
22591 {
22592 #[inline]
22593 unsafe fn encode(
22594 self,
22595 encoder: &mut fidl::encoding::Encoder<'_, D>,
22596 offset: usize,
22597 _depth: fidl::encoding::Depth,
22598 ) -> fidl::Result<()> {
22599 encoder.debug_check_bounds::<AudioCapturerConfiguration>(offset);
22600 encoder.write_num::<u64>(self.ordinal(), offset);
22601 match self {
22602 AudioCapturerConfiguration::Loopback(ref val) => fidl::encoding::encode_in_envelope::<
22603 LoopbackAudioCapturerConfiguration,
22604 D,
22605 >(
22606 <LoopbackAudioCapturerConfiguration as fidl::encoding::ValueTypeMarker>::borrow(
22607 val,
22608 ),
22609 encoder,
22610 offset + 8,
22611 _depth,
22612 ),
22613 AudioCapturerConfiguration::Input(ref val) => fidl::encoding::encode_in_envelope::<
22614 InputAudioCapturerConfiguration,
22615 D,
22616 >(
22617 <InputAudioCapturerConfiguration as fidl::encoding::ValueTypeMarker>::borrow(
22618 val,
22619 ),
22620 encoder,
22621 offset + 8,
22622 _depth,
22623 ),
22624 }
22625 }
22626 }
22627
22628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
22629 for AudioCapturerConfiguration
22630 {
22631 #[inline(always)]
22632 fn new_empty() -> Self {
22633 Self::Loopback(fidl::new_empty!(LoopbackAudioCapturerConfiguration, D))
22634 }
22635
22636 #[inline]
22637 unsafe fn decode(
22638 &mut self,
22639 decoder: &mut fidl::encoding::Decoder<'_, D>,
22640 offset: usize,
22641 mut depth: fidl::encoding::Depth,
22642 ) -> fidl::Result<()> {
22643 decoder.debug_check_bounds::<Self>(offset);
22644 #[allow(unused_variables)]
22645 let next_out_of_line = decoder.next_out_of_line();
22646 let handles_before = decoder.remaining_handles();
22647 let (ordinal, inlined, num_bytes, num_handles) =
22648 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22649
22650 let member_inline_size = match ordinal {
22651 1 => {
22652 <LoopbackAudioCapturerConfiguration as fidl::encoding::TypeMarker>::inline_size(
22653 decoder.context,
22654 )
22655 }
22656 2 => <InputAudioCapturerConfiguration as fidl::encoding::TypeMarker>::inline_size(
22657 decoder.context,
22658 ),
22659 _ => return Err(fidl::Error::UnknownUnionTag),
22660 };
22661
22662 if inlined != (member_inline_size <= 4) {
22663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22664 }
22665 let _inner_offset;
22666 if inlined {
22667 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22668 _inner_offset = offset + 8;
22669 } else {
22670 depth.increment()?;
22671 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22672 }
22673 match ordinal {
22674 1 => {
22675 #[allow(irrefutable_let_patterns)]
22676 if let AudioCapturerConfiguration::Loopback(_) = self {
22677 } else {
22679 *self = AudioCapturerConfiguration::Loopback(fidl::new_empty!(
22681 LoopbackAudioCapturerConfiguration,
22682 D
22683 ));
22684 }
22685 #[allow(irrefutable_let_patterns)]
22686 if let AudioCapturerConfiguration::Loopback(ref mut val) = self {
22687 fidl::decode!(
22688 LoopbackAudioCapturerConfiguration,
22689 D,
22690 val,
22691 decoder,
22692 _inner_offset,
22693 depth
22694 )?;
22695 } else {
22696 unreachable!()
22697 }
22698 }
22699 2 => {
22700 #[allow(irrefutable_let_patterns)]
22701 if let AudioCapturerConfiguration::Input(_) = self {
22702 } else {
22704 *self = AudioCapturerConfiguration::Input(fidl::new_empty!(
22706 InputAudioCapturerConfiguration,
22707 D
22708 ));
22709 }
22710 #[allow(irrefutable_let_patterns)]
22711 if let AudioCapturerConfiguration::Input(ref mut val) = self {
22712 fidl::decode!(
22713 InputAudioCapturerConfiguration,
22714 D,
22715 val,
22716 decoder,
22717 _inner_offset,
22718 depth
22719 )?;
22720 } else {
22721 unreachable!()
22722 }
22723 }
22724 ordinal => panic!("unexpected ordinal {:?}", ordinal),
22725 }
22726 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22727 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22728 }
22729 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22730 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22731 }
22732 Ok(())
22733 }
22734 }
22735
22736 impl fidl::encoding::ValueTypeMarker for AudioCompressedFormat {
22737 type Borrowed<'a> = &'a Self;
22738 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22739 value
22740 }
22741 }
22742
22743 unsafe impl fidl::encoding::TypeMarker for AudioCompressedFormat {
22744 type Owned = Self;
22745
22746 #[inline(always)]
22747 fn inline_align(_context: fidl::encoding::Context) -> usize {
22748 8
22749 }
22750
22751 #[inline(always)]
22752 fn inline_size(_context: fidl::encoding::Context) -> usize {
22753 16
22754 }
22755 }
22756
22757 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioCompressedFormat, D>
22758 for &AudioCompressedFormat
22759 {
22760 #[inline]
22761 unsafe fn encode(
22762 self,
22763 encoder: &mut fidl::encoding::Encoder<'_, D>,
22764 offset: usize,
22765 _depth: fidl::encoding::Depth,
22766 ) -> fidl::Result<()> {
22767 encoder.debug_check_bounds::<AudioCompressedFormat>(offset);
22768 encoder.write_num::<u64>(self.ordinal(), offset);
22769 match self {
22770 AudioCompressedFormat::Aac(ref val) => {
22771 fidl::encoding::encode_in_envelope::<AudioCompressedFormatAac, D>(
22772 <AudioCompressedFormatAac as fidl::encoding::ValueTypeMarker>::borrow(val),
22773 encoder,
22774 offset + 8,
22775 _depth,
22776 )
22777 }
22778 AudioCompressedFormat::Sbc(ref val) => {
22779 fidl::encoding::encode_in_envelope::<AudioCompressedFormatSbc, D>(
22780 <AudioCompressedFormatSbc as fidl::encoding::ValueTypeMarker>::borrow(val),
22781 encoder,
22782 offset + 8,
22783 _depth,
22784 )
22785 }
22786 AudioCompressedFormat::Cvsd(ref val) => {
22787 fidl::encoding::encode_in_envelope::<AudioCompressedFormatCvsd, D>(
22788 <AudioCompressedFormatCvsd as fidl::encoding::ValueTypeMarker>::borrow(val),
22789 encoder,
22790 offset + 8,
22791 _depth,
22792 )
22793 }
22794 AudioCompressedFormat::Lc3(ref val) => {
22795 fidl::encoding::encode_in_envelope::<AudioCompressedFormatLc3, D>(
22796 <AudioCompressedFormatLc3 as fidl::encoding::ValueTypeMarker>::borrow(val),
22797 encoder,
22798 offset + 8,
22799 _depth,
22800 )
22801 }
22802 AudioCompressedFormat::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
22803 }
22804 }
22805 }
22806
22807 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioCompressedFormat {
22808 #[inline(always)]
22809 fn new_empty() -> Self {
22810 Self::__SourceBreaking { unknown_ordinal: 0 }
22811 }
22812
22813 #[inline]
22814 unsafe fn decode(
22815 &mut self,
22816 decoder: &mut fidl::encoding::Decoder<'_, D>,
22817 offset: usize,
22818 mut depth: fidl::encoding::Depth,
22819 ) -> fidl::Result<()> {
22820 decoder.debug_check_bounds::<Self>(offset);
22821 #[allow(unused_variables)]
22822 let next_out_of_line = decoder.next_out_of_line();
22823 let handles_before = decoder.remaining_handles();
22824 let (ordinal, inlined, num_bytes, num_handles) =
22825 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
22826
22827 let member_inline_size = match ordinal {
22828 1 => <AudioCompressedFormatAac as fidl::encoding::TypeMarker>::inline_size(
22829 decoder.context,
22830 ),
22831 2 => <AudioCompressedFormatSbc as fidl::encoding::TypeMarker>::inline_size(
22832 decoder.context,
22833 ),
22834 3 => <AudioCompressedFormatCvsd as fidl::encoding::TypeMarker>::inline_size(
22835 decoder.context,
22836 ),
22837 4 => <AudioCompressedFormatLc3 as fidl::encoding::TypeMarker>::inline_size(
22838 decoder.context,
22839 ),
22840 0 => return Err(fidl::Error::UnknownUnionTag),
22841 _ => num_bytes as usize,
22842 };
22843
22844 if inlined != (member_inline_size <= 4) {
22845 return Err(fidl::Error::InvalidInlineBitInEnvelope);
22846 }
22847 let _inner_offset;
22848 if inlined {
22849 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
22850 _inner_offset = offset + 8;
22851 } else {
22852 depth.increment()?;
22853 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
22854 }
22855 match ordinal {
22856 1 => {
22857 #[allow(irrefutable_let_patterns)]
22858 if let AudioCompressedFormat::Aac(_) = self {
22859 } else {
22861 *self = AudioCompressedFormat::Aac(fidl::new_empty!(
22863 AudioCompressedFormatAac,
22864 D
22865 ));
22866 }
22867 #[allow(irrefutable_let_patterns)]
22868 if let AudioCompressedFormat::Aac(ref mut val) = self {
22869 fidl::decode!(
22870 AudioCompressedFormatAac,
22871 D,
22872 val,
22873 decoder,
22874 _inner_offset,
22875 depth
22876 )?;
22877 } else {
22878 unreachable!()
22879 }
22880 }
22881 2 => {
22882 #[allow(irrefutable_let_patterns)]
22883 if let AudioCompressedFormat::Sbc(_) = self {
22884 } else {
22886 *self = AudioCompressedFormat::Sbc(fidl::new_empty!(
22888 AudioCompressedFormatSbc,
22889 D
22890 ));
22891 }
22892 #[allow(irrefutable_let_patterns)]
22893 if let AudioCompressedFormat::Sbc(ref mut val) = self {
22894 fidl::decode!(
22895 AudioCompressedFormatSbc,
22896 D,
22897 val,
22898 decoder,
22899 _inner_offset,
22900 depth
22901 )?;
22902 } else {
22903 unreachable!()
22904 }
22905 }
22906 3 => {
22907 #[allow(irrefutable_let_patterns)]
22908 if let AudioCompressedFormat::Cvsd(_) = self {
22909 } else {
22911 *self = AudioCompressedFormat::Cvsd(fidl::new_empty!(
22913 AudioCompressedFormatCvsd,
22914 D
22915 ));
22916 }
22917 #[allow(irrefutable_let_patterns)]
22918 if let AudioCompressedFormat::Cvsd(ref mut val) = self {
22919 fidl::decode!(
22920 AudioCompressedFormatCvsd,
22921 D,
22922 val,
22923 decoder,
22924 _inner_offset,
22925 depth
22926 )?;
22927 } else {
22928 unreachable!()
22929 }
22930 }
22931 4 => {
22932 #[allow(irrefutable_let_patterns)]
22933 if let AudioCompressedFormat::Lc3(_) = self {
22934 } else {
22936 *self = AudioCompressedFormat::Lc3(fidl::new_empty!(
22938 AudioCompressedFormatLc3,
22939 D
22940 ));
22941 }
22942 #[allow(irrefutable_let_patterns)]
22943 if let AudioCompressedFormat::Lc3(ref mut val) = self {
22944 fidl::decode!(
22945 AudioCompressedFormatLc3,
22946 D,
22947 val,
22948 decoder,
22949 _inner_offset,
22950 depth
22951 )?;
22952 } else {
22953 unreachable!()
22954 }
22955 }
22956 #[allow(deprecated)]
22957 ordinal => {
22958 for _ in 0..num_handles {
22959 decoder.drop_next_handle()?;
22960 }
22961 *self = AudioCompressedFormat::__SourceBreaking { unknown_ordinal: ordinal };
22962 }
22963 }
22964 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
22965 return Err(fidl::Error::InvalidNumBytesInEnvelope);
22966 }
22967 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
22968 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
22969 }
22970 Ok(())
22971 }
22972 }
22973
22974 impl fidl::encoding::ValueTypeMarker for AudioConsumerError {
22975 type Borrowed<'a> = &'a Self;
22976 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
22977 value
22978 }
22979 }
22980
22981 unsafe impl fidl::encoding::TypeMarker for AudioConsumerError {
22982 type Owned = Self;
22983
22984 #[inline(always)]
22985 fn inline_align(_context: fidl::encoding::Context) -> usize {
22986 8
22987 }
22988
22989 #[inline(always)]
22990 fn inline_size(_context: fidl::encoding::Context) -> usize {
22991 16
22992 }
22993 }
22994
22995 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioConsumerError, D>
22996 for &AudioConsumerError
22997 {
22998 #[inline]
22999 unsafe fn encode(
23000 self,
23001 encoder: &mut fidl::encoding::Encoder<'_, D>,
23002 offset: usize,
23003 _depth: fidl::encoding::Depth,
23004 ) -> fidl::Result<()> {
23005 encoder.debug_check_bounds::<AudioConsumerError>(offset);
23006 encoder.write_num::<u64>(self.ordinal(), offset);
23007 match self {
23008 AudioConsumerError::PlaceHolder(ref val) => {
23009 fidl::encoding::encode_in_envelope::<Void, D>(
23010 <Void as fidl::encoding::ValueTypeMarker>::borrow(val),
23011 encoder,
23012 offset + 8,
23013 _depth,
23014 )
23015 }
23016 }
23017 }
23018 }
23019
23020 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioConsumerError {
23021 #[inline(always)]
23022 fn new_empty() -> Self {
23023 Self::PlaceHolder(fidl::new_empty!(Void, D))
23024 }
23025
23026 #[inline]
23027 unsafe fn decode(
23028 &mut self,
23029 decoder: &mut fidl::encoding::Decoder<'_, D>,
23030 offset: usize,
23031 mut depth: fidl::encoding::Depth,
23032 ) -> fidl::Result<()> {
23033 decoder.debug_check_bounds::<Self>(offset);
23034 #[allow(unused_variables)]
23035 let next_out_of_line = decoder.next_out_of_line();
23036 let handles_before = decoder.remaining_handles();
23037 let (ordinal, inlined, num_bytes, num_handles) =
23038 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23039
23040 let member_inline_size = match ordinal {
23041 1 => <Void as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23042 _ => return Err(fidl::Error::UnknownUnionTag),
23043 };
23044
23045 if inlined != (member_inline_size <= 4) {
23046 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23047 }
23048 let _inner_offset;
23049 if inlined {
23050 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23051 _inner_offset = offset + 8;
23052 } else {
23053 depth.increment()?;
23054 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23055 }
23056 match ordinal {
23057 1 => {
23058 #[allow(irrefutable_let_patterns)]
23059 if let AudioConsumerError::PlaceHolder(_) = self {
23060 } else {
23062 *self = AudioConsumerError::PlaceHolder(fidl::new_empty!(Void, D));
23064 }
23065 #[allow(irrefutable_let_patterns)]
23066 if let AudioConsumerError::PlaceHolder(ref mut val) = self {
23067 fidl::decode!(Void, D, val, decoder, _inner_offset, depth)?;
23068 } else {
23069 unreachable!()
23070 }
23071 }
23072 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23073 }
23074 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23075 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23076 }
23077 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23078 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23079 }
23080 Ok(())
23081 }
23082 }
23083
23084 impl fidl::encoding::ValueTypeMarker for AudioFormat {
23085 type Borrowed<'a> = &'a Self;
23086 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23087 value
23088 }
23089 }
23090
23091 unsafe impl fidl::encoding::TypeMarker for AudioFormat {
23092 type Owned = Self;
23093
23094 #[inline(always)]
23095 fn inline_align(_context: fidl::encoding::Context) -> usize {
23096 8
23097 }
23098
23099 #[inline(always)]
23100 fn inline_size(_context: fidl::encoding::Context) -> usize {
23101 16
23102 }
23103 }
23104
23105 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<AudioFormat, D>
23106 for &AudioFormat
23107 {
23108 #[inline]
23109 unsafe fn encode(
23110 self,
23111 encoder: &mut fidl::encoding::Encoder<'_, D>,
23112 offset: usize,
23113 _depth: fidl::encoding::Depth,
23114 ) -> fidl::Result<()> {
23115 encoder.debug_check_bounds::<AudioFormat>(offset);
23116 encoder.write_num::<u64>(self.ordinal(), offset);
23117 match self {
23118 AudioFormat::Compressed(ref val) => {
23119 fidl::encoding::encode_in_envelope::<AudioCompressedFormat, D>(
23120 <AudioCompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23121 encoder,
23122 offset + 8,
23123 _depth,
23124 )
23125 }
23126 AudioFormat::Uncompressed(ref val) => {
23127 fidl::encoding::encode_in_envelope::<AudioUncompressedFormat, D>(
23128 <AudioUncompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23129 encoder,
23130 offset + 8,
23131 _depth,
23132 )
23133 }
23134 }
23135 }
23136 }
23137
23138 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for AudioFormat {
23139 #[inline(always)]
23140 fn new_empty() -> Self {
23141 Self::Compressed(fidl::new_empty!(AudioCompressedFormat, D))
23142 }
23143
23144 #[inline]
23145 unsafe fn decode(
23146 &mut self,
23147 decoder: &mut fidl::encoding::Decoder<'_, D>,
23148 offset: usize,
23149 mut depth: fidl::encoding::Depth,
23150 ) -> fidl::Result<()> {
23151 decoder.debug_check_bounds::<Self>(offset);
23152 #[allow(unused_variables)]
23153 let next_out_of_line = decoder.next_out_of_line();
23154 let handles_before = decoder.remaining_handles();
23155 let (ordinal, inlined, num_bytes, num_handles) =
23156 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23157
23158 let member_inline_size = match ordinal {
23159 1 => <AudioCompressedFormat as fidl::encoding::TypeMarker>::inline_size(
23160 decoder.context,
23161 ),
23162 2 => <AudioUncompressedFormat as fidl::encoding::TypeMarker>::inline_size(
23163 decoder.context,
23164 ),
23165 _ => return Err(fidl::Error::UnknownUnionTag),
23166 };
23167
23168 if inlined != (member_inline_size <= 4) {
23169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23170 }
23171 let _inner_offset;
23172 if inlined {
23173 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23174 _inner_offset = offset + 8;
23175 } else {
23176 depth.increment()?;
23177 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23178 }
23179 match ordinal {
23180 1 => {
23181 #[allow(irrefutable_let_patterns)]
23182 if let AudioFormat::Compressed(_) = self {
23183 } else {
23185 *self = AudioFormat::Compressed(fidl::new_empty!(AudioCompressedFormat, D));
23187 }
23188 #[allow(irrefutable_let_patterns)]
23189 if let AudioFormat::Compressed(ref mut val) = self {
23190 fidl::decode!(
23191 AudioCompressedFormat,
23192 D,
23193 val,
23194 decoder,
23195 _inner_offset,
23196 depth
23197 )?;
23198 } else {
23199 unreachable!()
23200 }
23201 }
23202 2 => {
23203 #[allow(irrefutable_let_patterns)]
23204 if let AudioFormat::Uncompressed(_) = self {
23205 } else {
23207 *self =
23209 AudioFormat::Uncompressed(fidl::new_empty!(AudioUncompressedFormat, D));
23210 }
23211 #[allow(irrefutable_let_patterns)]
23212 if let AudioFormat::Uncompressed(ref mut val) = self {
23213 fidl::decode!(
23214 AudioUncompressedFormat,
23215 D,
23216 val,
23217 decoder,
23218 _inner_offset,
23219 depth
23220 )?;
23221 } else {
23222 unreachable!()
23223 }
23224 }
23225 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23226 }
23227 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23228 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23229 }
23230 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23231 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23232 }
23233 Ok(())
23234 }
23235 }
23236
23237 impl fidl::encoding::ValueTypeMarker for AudioUncompressedFormat {
23238 type Borrowed<'a> = &'a Self;
23239 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23240 value
23241 }
23242 }
23243
23244 unsafe impl fidl::encoding::TypeMarker for AudioUncompressedFormat {
23245 type Owned = Self;
23246
23247 #[inline(always)]
23248 fn inline_align(_context: fidl::encoding::Context) -> usize {
23249 8
23250 }
23251
23252 #[inline(always)]
23253 fn inline_size(_context: fidl::encoding::Context) -> usize {
23254 16
23255 }
23256 }
23257
23258 unsafe impl<D: fidl::encoding::ResourceDialect>
23259 fidl::encoding::Encode<AudioUncompressedFormat, D> for &AudioUncompressedFormat
23260 {
23261 #[inline]
23262 unsafe fn encode(
23263 self,
23264 encoder: &mut fidl::encoding::Encoder<'_, D>,
23265 offset: usize,
23266 _depth: fidl::encoding::Depth,
23267 ) -> fidl::Result<()> {
23268 encoder.debug_check_bounds::<AudioUncompressedFormat>(offset);
23269 encoder.write_num::<u64>(self.ordinal(), offset);
23270 match self {
23271 AudioUncompressedFormat::Pcm(ref val) => {
23272 fidl::encoding::encode_in_envelope::<PcmFormat, D>(
23273 <PcmFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23274 encoder,
23275 offset + 8,
23276 _depth,
23277 )
23278 }
23279 }
23280 }
23281 }
23282
23283 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
23284 for AudioUncompressedFormat
23285 {
23286 #[inline(always)]
23287 fn new_empty() -> Self {
23288 Self::Pcm(fidl::new_empty!(PcmFormat, D))
23289 }
23290
23291 #[inline]
23292 unsafe fn decode(
23293 &mut self,
23294 decoder: &mut fidl::encoding::Decoder<'_, D>,
23295 offset: usize,
23296 mut depth: fidl::encoding::Depth,
23297 ) -> fidl::Result<()> {
23298 decoder.debug_check_bounds::<Self>(offset);
23299 #[allow(unused_variables)]
23300 let next_out_of_line = decoder.next_out_of_line();
23301 let handles_before = decoder.remaining_handles();
23302 let (ordinal, inlined, num_bytes, num_handles) =
23303 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23304
23305 let member_inline_size = match ordinal {
23306 1 => <PcmFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23307 _ => return Err(fidl::Error::UnknownUnionTag),
23308 };
23309
23310 if inlined != (member_inline_size <= 4) {
23311 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23312 }
23313 let _inner_offset;
23314 if inlined {
23315 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23316 _inner_offset = offset + 8;
23317 } else {
23318 depth.increment()?;
23319 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23320 }
23321 match ordinal {
23322 1 => {
23323 #[allow(irrefutable_let_patterns)]
23324 if let AudioUncompressedFormat::Pcm(_) = self {
23325 } else {
23327 *self = AudioUncompressedFormat::Pcm(fidl::new_empty!(PcmFormat, D));
23329 }
23330 #[allow(irrefutable_let_patterns)]
23331 if let AudioUncompressedFormat::Pcm(ref mut val) = self {
23332 fidl::decode!(PcmFormat, D, val, decoder, _inner_offset, depth)?;
23333 } else {
23334 unreachable!()
23335 }
23336 }
23337 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23338 }
23339 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23340 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23341 }
23342 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23343 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23344 }
23345 Ok(())
23346 }
23347 }
23348
23349 impl fidl::encoding::ValueTypeMarker for CryptoFormat {
23350 type Borrowed<'a> = &'a Self;
23351 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23352 value
23353 }
23354 }
23355
23356 unsafe impl fidl::encoding::TypeMarker for CryptoFormat {
23357 type Owned = Self;
23358
23359 #[inline(always)]
23360 fn inline_align(_context: fidl::encoding::Context) -> usize {
23361 8
23362 }
23363
23364 #[inline(always)]
23365 fn inline_size(_context: fidl::encoding::Context) -> usize {
23366 16
23367 }
23368 }
23369
23370 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CryptoFormat, D>
23371 for &CryptoFormat
23372 {
23373 #[inline]
23374 unsafe fn encode(
23375 self,
23376 encoder: &mut fidl::encoding::Encoder<'_, D>,
23377 offset: usize,
23378 _depth: fidl::encoding::Depth,
23379 ) -> fidl::Result<()> {
23380 encoder.debug_check_bounds::<CryptoFormat>(offset);
23381 encoder.write_num::<u64>(self.ordinal(), offset);
23382 match self {
23383 CryptoFormat::Encrypted(ref val) => {
23384 fidl::encoding::encode_in_envelope::<EncryptedFormat, D>(
23385 <EncryptedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23386 encoder,
23387 offset + 8,
23388 _depth,
23389 )
23390 }
23391 CryptoFormat::Decrypted(ref val) => {
23392 fidl::encoding::encode_in_envelope::<DecryptedFormat, D>(
23393 <DecryptedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23394 encoder,
23395 offset + 8,
23396 _depth,
23397 )
23398 }
23399 CryptoFormat::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
23400 }
23401 }
23402 }
23403
23404 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CryptoFormat {
23405 #[inline(always)]
23406 fn new_empty() -> Self {
23407 Self::__SourceBreaking { unknown_ordinal: 0 }
23408 }
23409
23410 #[inline]
23411 unsafe fn decode(
23412 &mut self,
23413 decoder: &mut fidl::encoding::Decoder<'_, D>,
23414 offset: usize,
23415 mut depth: fidl::encoding::Depth,
23416 ) -> fidl::Result<()> {
23417 decoder.debug_check_bounds::<Self>(offset);
23418 #[allow(unused_variables)]
23419 let next_out_of_line = decoder.next_out_of_line();
23420 let handles_before = decoder.remaining_handles();
23421 let (ordinal, inlined, num_bytes, num_handles) =
23422 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23423
23424 let member_inline_size = match ordinal {
23425 1 => <EncryptedFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23426 2 => <DecryptedFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23427 0 => return Err(fidl::Error::UnknownUnionTag),
23428 _ => num_bytes as usize,
23429 };
23430
23431 if inlined != (member_inline_size <= 4) {
23432 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23433 }
23434 let _inner_offset;
23435 if inlined {
23436 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23437 _inner_offset = offset + 8;
23438 } else {
23439 depth.increment()?;
23440 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23441 }
23442 match ordinal {
23443 1 => {
23444 #[allow(irrefutable_let_patterns)]
23445 if let CryptoFormat::Encrypted(_) = self {
23446 } else {
23448 *self = CryptoFormat::Encrypted(fidl::new_empty!(EncryptedFormat, D));
23450 }
23451 #[allow(irrefutable_let_patterns)]
23452 if let CryptoFormat::Encrypted(ref mut val) = self {
23453 fidl::decode!(EncryptedFormat, D, val, decoder, _inner_offset, depth)?;
23454 } else {
23455 unreachable!()
23456 }
23457 }
23458 2 => {
23459 #[allow(irrefutable_let_patterns)]
23460 if let CryptoFormat::Decrypted(_) = self {
23461 } else {
23463 *self = CryptoFormat::Decrypted(fidl::new_empty!(DecryptedFormat, D));
23465 }
23466 #[allow(irrefutable_let_patterns)]
23467 if let CryptoFormat::Decrypted(ref mut val) = self {
23468 fidl::decode!(DecryptedFormat, D, val, decoder, _inner_offset, depth)?;
23469 } else {
23470 unreachable!()
23471 }
23472 }
23473 #[allow(deprecated)]
23474 ordinal => {
23475 for _ in 0..num_handles {
23476 decoder.drop_next_handle()?;
23477 }
23478 *self = CryptoFormat::__SourceBreaking { unknown_ordinal: ordinal };
23479 }
23480 }
23481 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23482 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23483 }
23484 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23485 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23486 }
23487 Ok(())
23488 }
23489 }
23490
23491 impl fidl::encoding::ValueTypeMarker for DomainFormat {
23492 type Borrowed<'a> = &'a Self;
23493 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23494 value
23495 }
23496 }
23497
23498 unsafe impl fidl::encoding::TypeMarker for DomainFormat {
23499 type Owned = Self;
23500
23501 #[inline(always)]
23502 fn inline_align(_context: fidl::encoding::Context) -> usize {
23503 8
23504 }
23505
23506 #[inline(always)]
23507 fn inline_size(_context: fidl::encoding::Context) -> usize {
23508 16
23509 }
23510 }
23511
23512 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DomainFormat, D>
23513 for &DomainFormat
23514 {
23515 #[inline]
23516 unsafe fn encode(
23517 self,
23518 encoder: &mut fidl::encoding::Encoder<'_, D>,
23519 offset: usize,
23520 _depth: fidl::encoding::Depth,
23521 ) -> fidl::Result<()> {
23522 encoder.debug_check_bounds::<DomainFormat>(offset);
23523 encoder.write_num::<u64>(self.ordinal(), offset);
23524 match self {
23525 DomainFormat::Audio(ref val) => {
23526 fidl::encoding::encode_in_envelope::<AudioFormat, D>(
23527 <AudioFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23528 encoder,
23529 offset + 8,
23530 _depth,
23531 )
23532 }
23533 DomainFormat::Video(ref val) => {
23534 fidl::encoding::encode_in_envelope::<VideoFormat, D>(
23535 <VideoFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23536 encoder,
23537 offset + 8,
23538 _depth,
23539 )
23540 }
23541 DomainFormat::Crypto(ref val) => {
23542 fidl::encoding::encode_in_envelope::<CryptoFormat, D>(
23543 <CryptoFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
23544 encoder,
23545 offset + 8,
23546 _depth,
23547 )
23548 }
23549 }
23550 }
23551 }
23552
23553 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DomainFormat {
23554 #[inline(always)]
23555 fn new_empty() -> Self {
23556 Self::Audio(fidl::new_empty!(AudioFormat, D))
23557 }
23558
23559 #[inline]
23560 unsafe fn decode(
23561 &mut self,
23562 decoder: &mut fidl::encoding::Decoder<'_, D>,
23563 offset: usize,
23564 mut depth: fidl::encoding::Depth,
23565 ) -> fidl::Result<()> {
23566 decoder.debug_check_bounds::<Self>(offset);
23567 #[allow(unused_variables)]
23568 let next_out_of_line = decoder.next_out_of_line();
23569 let handles_before = decoder.remaining_handles();
23570 let (ordinal, inlined, num_bytes, num_handles) =
23571 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23572
23573 let member_inline_size = match ordinal {
23574 1 => <AudioFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23575 2 => <VideoFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23576 3 => <CryptoFormat as fidl::encoding::TypeMarker>::inline_size(decoder.context),
23577 _ => return Err(fidl::Error::UnknownUnionTag),
23578 };
23579
23580 if inlined != (member_inline_size <= 4) {
23581 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23582 }
23583 let _inner_offset;
23584 if inlined {
23585 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23586 _inner_offset = offset + 8;
23587 } else {
23588 depth.increment()?;
23589 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23590 }
23591 match ordinal {
23592 1 => {
23593 #[allow(irrefutable_let_patterns)]
23594 if let DomainFormat::Audio(_) = self {
23595 } else {
23597 *self = DomainFormat::Audio(fidl::new_empty!(AudioFormat, D));
23599 }
23600 #[allow(irrefutable_let_patterns)]
23601 if let DomainFormat::Audio(ref mut val) = self {
23602 fidl::decode!(AudioFormat, D, val, decoder, _inner_offset, depth)?;
23603 } else {
23604 unreachable!()
23605 }
23606 }
23607 2 => {
23608 #[allow(irrefutable_let_patterns)]
23609 if let DomainFormat::Video(_) = self {
23610 } else {
23612 *self = DomainFormat::Video(fidl::new_empty!(VideoFormat, D));
23614 }
23615 #[allow(irrefutable_let_patterns)]
23616 if let DomainFormat::Video(ref mut val) = self {
23617 fidl::decode!(VideoFormat, D, val, decoder, _inner_offset, depth)?;
23618 } else {
23619 unreachable!()
23620 }
23621 }
23622 3 => {
23623 #[allow(irrefutable_let_patterns)]
23624 if let DomainFormat::Crypto(_) = self {
23625 } else {
23627 *self = DomainFormat::Crypto(fidl::new_empty!(CryptoFormat, D));
23629 }
23630 #[allow(irrefutable_let_patterns)]
23631 if let DomainFormat::Crypto(ref mut val) = self {
23632 fidl::decode!(CryptoFormat, D, val, decoder, _inner_offset, depth)?;
23633 } else {
23634 unreachable!()
23635 }
23636 }
23637 ordinal => panic!("unexpected ordinal {:?}", ordinal),
23638 }
23639 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23640 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23641 }
23642 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23643 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23644 }
23645 Ok(())
23646 }
23647 }
23648
23649 impl fidl::encoding::ValueTypeMarker for EncoderSettings {
23650 type Borrowed<'a> = &'a Self;
23651 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23652 value
23653 }
23654 }
23655
23656 unsafe impl fidl::encoding::TypeMarker for EncoderSettings {
23657 type Owned = Self;
23658
23659 #[inline(always)]
23660 fn inline_align(_context: fidl::encoding::Context) -> usize {
23661 8
23662 }
23663
23664 #[inline(always)]
23665 fn inline_size(_context: fidl::encoding::Context) -> usize {
23666 16
23667 }
23668 }
23669
23670 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<EncoderSettings, D>
23671 for &EncoderSettings
23672 {
23673 #[inline]
23674 unsafe fn encode(
23675 self,
23676 encoder: &mut fidl::encoding::Encoder<'_, D>,
23677 offset: usize,
23678 _depth: fidl::encoding::Depth,
23679 ) -> fidl::Result<()> {
23680 encoder.debug_check_bounds::<EncoderSettings>(offset);
23681 encoder.write_num::<u64>(self.ordinal(), offset);
23682 match self {
23683 EncoderSettings::Sbc(ref val) => {
23684 fidl::encoding::encode_in_envelope::<SbcEncoderSettings, D>(
23685 <SbcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23686 encoder,
23687 offset + 8,
23688 _depth,
23689 )
23690 }
23691 EncoderSettings::Aac(ref val) => {
23692 fidl::encoding::encode_in_envelope::<AacEncoderSettings, D>(
23693 <AacEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23694 encoder,
23695 offset + 8,
23696 _depth,
23697 )
23698 }
23699 EncoderSettings::H264(ref val) => {
23700 fidl::encoding::encode_in_envelope::<H264EncoderSettings, D>(
23701 <H264EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23702 encoder,
23703 offset + 8,
23704 _depth,
23705 )
23706 }
23707 EncoderSettings::Hevc(ref val) => {
23708 fidl::encoding::encode_in_envelope::<HevcEncoderSettings, D>(
23709 <HevcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23710 encoder,
23711 offset + 8,
23712 _depth,
23713 )
23714 }
23715 EncoderSettings::Cvsd(ref val) => {
23716 fidl::encoding::encode_in_envelope::<CvsdEncoderSettings, D>(
23717 <CvsdEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23718 encoder,
23719 offset + 8,
23720 _depth,
23721 )
23722 }
23723 EncoderSettings::Lc3(ref val) => {
23724 fidl::encoding::encode_in_envelope::<Lc3EncoderSettings, D>(
23725 <Lc3EncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23726 encoder,
23727 offset + 8,
23728 _depth,
23729 )
23730 }
23731 EncoderSettings::Msbc(ref val) => {
23732 fidl::encoding::encode_in_envelope::<MSbcEncoderSettings, D>(
23733 <MSbcEncoderSettings as fidl::encoding::ValueTypeMarker>::borrow(val),
23734 encoder,
23735 offset + 8,
23736 _depth,
23737 )
23738 }
23739 EncoderSettings::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
23740 }
23741 }
23742 }
23743
23744 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for EncoderSettings {
23745 #[inline(always)]
23746 fn new_empty() -> Self {
23747 Self::__SourceBreaking { unknown_ordinal: 0 }
23748 }
23749
23750 #[inline]
23751 unsafe fn decode(
23752 &mut self,
23753 decoder: &mut fidl::encoding::Decoder<'_, D>,
23754 offset: usize,
23755 mut depth: fidl::encoding::Depth,
23756 ) -> fidl::Result<()> {
23757 decoder.debug_check_bounds::<Self>(offset);
23758 #[allow(unused_variables)]
23759 let next_out_of_line = decoder.next_out_of_line();
23760 let handles_before = decoder.remaining_handles();
23761 let (ordinal, inlined, num_bytes, num_handles) =
23762 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
23763
23764 let member_inline_size = match ordinal {
23765 1 => {
23766 <SbcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23767 }
23768 2 => {
23769 <AacEncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23770 }
23771 3 => <H264EncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23772 decoder.context,
23773 ),
23774 4 => <HevcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23775 decoder.context,
23776 ),
23777 5 => <CvsdEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23778 decoder.context,
23779 ),
23780 6 => {
23781 <Lc3EncoderSettings as fidl::encoding::TypeMarker>::inline_size(decoder.context)
23782 }
23783 7 => <MSbcEncoderSettings as fidl::encoding::TypeMarker>::inline_size(
23784 decoder.context,
23785 ),
23786 0 => return Err(fidl::Error::UnknownUnionTag),
23787 _ => num_bytes as usize,
23788 };
23789
23790 if inlined != (member_inline_size <= 4) {
23791 return Err(fidl::Error::InvalidInlineBitInEnvelope);
23792 }
23793 let _inner_offset;
23794 if inlined {
23795 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
23796 _inner_offset = offset + 8;
23797 } else {
23798 depth.increment()?;
23799 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
23800 }
23801 match ordinal {
23802 1 => {
23803 #[allow(irrefutable_let_patterns)]
23804 if let EncoderSettings::Sbc(_) = self {
23805 } else {
23807 *self = EncoderSettings::Sbc(fidl::new_empty!(SbcEncoderSettings, D));
23809 }
23810 #[allow(irrefutable_let_patterns)]
23811 if let EncoderSettings::Sbc(ref mut val) = self {
23812 fidl::decode!(SbcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23813 } else {
23814 unreachable!()
23815 }
23816 }
23817 2 => {
23818 #[allow(irrefutable_let_patterns)]
23819 if let EncoderSettings::Aac(_) = self {
23820 } else {
23822 *self = EncoderSettings::Aac(fidl::new_empty!(AacEncoderSettings, D));
23824 }
23825 #[allow(irrefutable_let_patterns)]
23826 if let EncoderSettings::Aac(ref mut val) = self {
23827 fidl::decode!(AacEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23828 } else {
23829 unreachable!()
23830 }
23831 }
23832 3 => {
23833 #[allow(irrefutable_let_patterns)]
23834 if let EncoderSettings::H264(_) = self {
23835 } else {
23837 *self = EncoderSettings::H264(fidl::new_empty!(H264EncoderSettings, D));
23839 }
23840 #[allow(irrefutable_let_patterns)]
23841 if let EncoderSettings::H264(ref mut val) = self {
23842 fidl::decode!(H264EncoderSettings, D, val, decoder, _inner_offset, depth)?;
23843 } else {
23844 unreachable!()
23845 }
23846 }
23847 4 => {
23848 #[allow(irrefutable_let_patterns)]
23849 if let EncoderSettings::Hevc(_) = self {
23850 } else {
23852 *self = EncoderSettings::Hevc(fidl::new_empty!(HevcEncoderSettings, D));
23854 }
23855 #[allow(irrefutable_let_patterns)]
23856 if let EncoderSettings::Hevc(ref mut val) = self {
23857 fidl::decode!(HevcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23858 } else {
23859 unreachable!()
23860 }
23861 }
23862 5 => {
23863 #[allow(irrefutable_let_patterns)]
23864 if let EncoderSettings::Cvsd(_) = self {
23865 } else {
23867 *self = EncoderSettings::Cvsd(fidl::new_empty!(CvsdEncoderSettings, D));
23869 }
23870 #[allow(irrefutable_let_patterns)]
23871 if let EncoderSettings::Cvsd(ref mut val) = self {
23872 fidl::decode!(CvsdEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23873 } else {
23874 unreachable!()
23875 }
23876 }
23877 6 => {
23878 #[allow(irrefutable_let_patterns)]
23879 if let EncoderSettings::Lc3(_) = self {
23880 } else {
23882 *self = EncoderSettings::Lc3(fidl::new_empty!(Lc3EncoderSettings, D));
23884 }
23885 #[allow(irrefutable_let_patterns)]
23886 if let EncoderSettings::Lc3(ref mut val) = self {
23887 fidl::decode!(Lc3EncoderSettings, D, val, decoder, _inner_offset, depth)?;
23888 } else {
23889 unreachable!()
23890 }
23891 }
23892 7 => {
23893 #[allow(irrefutable_let_patterns)]
23894 if let EncoderSettings::Msbc(_) = self {
23895 } else {
23897 *self = EncoderSettings::Msbc(fidl::new_empty!(MSbcEncoderSettings, D));
23899 }
23900 #[allow(irrefutable_let_patterns)]
23901 if let EncoderSettings::Msbc(ref mut val) = self {
23902 fidl::decode!(MSbcEncoderSettings, D, val, decoder, _inner_offset, depth)?;
23903 } else {
23904 unreachable!()
23905 }
23906 }
23907 #[allow(deprecated)]
23908 ordinal => {
23909 for _ in 0..num_handles {
23910 decoder.drop_next_handle()?;
23911 }
23912 *self = EncoderSettings::__SourceBreaking { unknown_ordinal: ordinal };
23913 }
23914 }
23915 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
23916 return Err(fidl::Error::InvalidNumBytesInEnvelope);
23917 }
23918 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
23919 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
23920 }
23921 Ok(())
23922 }
23923 }
23924
23925 impl fidl::encoding::ValueTypeMarker for MediumSpecificStreamType {
23926 type Borrowed<'a> = &'a Self;
23927 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
23928 value
23929 }
23930 }
23931
23932 unsafe impl fidl::encoding::TypeMarker for MediumSpecificStreamType {
23933 type Owned = Self;
23934
23935 #[inline(always)]
23936 fn inline_align(_context: fidl::encoding::Context) -> usize {
23937 8
23938 }
23939
23940 #[inline(always)]
23941 fn inline_size(_context: fidl::encoding::Context) -> usize {
23942 16
23943 }
23944 }
23945
23946 unsafe impl<D: fidl::encoding::ResourceDialect>
23947 fidl::encoding::Encode<MediumSpecificStreamType, D> for &MediumSpecificStreamType
23948 {
23949 #[inline]
23950 unsafe fn encode(
23951 self,
23952 encoder: &mut fidl::encoding::Encoder<'_, D>,
23953 offset: usize,
23954 _depth: fidl::encoding::Depth,
23955 ) -> fidl::Result<()> {
23956 encoder.debug_check_bounds::<MediumSpecificStreamType>(offset);
23957 encoder.write_num::<u64>(self.ordinal(), offset);
23958 match self {
23959 MediumSpecificStreamType::Audio(ref val) => {
23960 fidl::encoding::encode_in_envelope::<AudioStreamType, D>(
23961 <AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
23962 encoder,
23963 offset + 8,
23964 _depth,
23965 )
23966 }
23967 MediumSpecificStreamType::Video(ref val) => {
23968 fidl::encoding::encode_in_envelope::<VideoStreamType, D>(
23969 <VideoStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
23970 encoder,
23971 offset + 8,
23972 _depth,
23973 )
23974 }
23975 MediumSpecificStreamType::Text(ref val) => {
23976 fidl::encoding::encode_in_envelope::<TextStreamType, D>(
23977 <TextStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
23978 encoder,
23979 offset + 8,
23980 _depth,
23981 )
23982 }
23983 MediumSpecificStreamType::Subpicture(ref val) => {
23984 fidl::encoding::encode_in_envelope::<SubpictureStreamType, D>(
23985 <SubpictureStreamType as fidl::encoding::ValueTypeMarker>::borrow(val),
23986 encoder,
23987 offset + 8,
23988 _depth,
23989 )
23990 }
23991 }
23992 }
23993 }
23994
23995 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
23996 for MediumSpecificStreamType
23997 {
23998 #[inline(always)]
23999 fn new_empty() -> Self {
24000 Self::Audio(fidl::new_empty!(AudioStreamType, D))
24001 }
24002
24003 #[inline]
24004 unsafe fn decode(
24005 &mut self,
24006 decoder: &mut fidl::encoding::Decoder<'_, D>,
24007 offset: usize,
24008 mut depth: fidl::encoding::Depth,
24009 ) -> fidl::Result<()> {
24010 decoder.debug_check_bounds::<Self>(offset);
24011 #[allow(unused_variables)]
24012 let next_out_of_line = decoder.next_out_of_line();
24013 let handles_before = decoder.remaining_handles();
24014 let (ordinal, inlined, num_bytes, num_handles) =
24015 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24016
24017 let member_inline_size = match ordinal {
24018 1 => <AudioStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24019 2 => <VideoStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24020 3 => <TextStreamType as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24021 4 => <SubpictureStreamType as fidl::encoding::TypeMarker>::inline_size(
24022 decoder.context,
24023 ),
24024 _ => return Err(fidl::Error::UnknownUnionTag),
24025 };
24026
24027 if inlined != (member_inline_size <= 4) {
24028 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24029 }
24030 let _inner_offset;
24031 if inlined {
24032 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24033 _inner_offset = offset + 8;
24034 } else {
24035 depth.increment()?;
24036 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24037 }
24038 match ordinal {
24039 1 => {
24040 #[allow(irrefutable_let_patterns)]
24041 if let MediumSpecificStreamType::Audio(_) = self {
24042 } else {
24044 *self =
24046 MediumSpecificStreamType::Audio(fidl::new_empty!(AudioStreamType, D));
24047 }
24048 #[allow(irrefutable_let_patterns)]
24049 if let MediumSpecificStreamType::Audio(ref mut val) = self {
24050 fidl::decode!(AudioStreamType, D, val, decoder, _inner_offset, depth)?;
24051 } else {
24052 unreachable!()
24053 }
24054 }
24055 2 => {
24056 #[allow(irrefutable_let_patterns)]
24057 if let MediumSpecificStreamType::Video(_) = self {
24058 } else {
24060 *self =
24062 MediumSpecificStreamType::Video(fidl::new_empty!(VideoStreamType, D));
24063 }
24064 #[allow(irrefutable_let_patterns)]
24065 if let MediumSpecificStreamType::Video(ref mut val) = self {
24066 fidl::decode!(VideoStreamType, D, val, decoder, _inner_offset, depth)?;
24067 } else {
24068 unreachable!()
24069 }
24070 }
24071 3 => {
24072 #[allow(irrefutable_let_patterns)]
24073 if let MediumSpecificStreamType::Text(_) = self {
24074 } else {
24076 *self = MediumSpecificStreamType::Text(fidl::new_empty!(TextStreamType, D));
24078 }
24079 #[allow(irrefutable_let_patterns)]
24080 if let MediumSpecificStreamType::Text(ref mut val) = self {
24081 fidl::decode!(TextStreamType, D, val, decoder, _inner_offset, depth)?;
24082 } else {
24083 unreachable!()
24084 }
24085 }
24086 4 => {
24087 #[allow(irrefutable_let_patterns)]
24088 if let MediumSpecificStreamType::Subpicture(_) = self {
24089 } else {
24091 *self = MediumSpecificStreamType::Subpicture(fidl::new_empty!(
24093 SubpictureStreamType,
24094 D
24095 ));
24096 }
24097 #[allow(irrefutable_let_patterns)]
24098 if let MediumSpecificStreamType::Subpicture(ref mut val) = self {
24099 fidl::decode!(SubpictureStreamType, D, val, decoder, _inner_offset, depth)?;
24100 } else {
24101 unreachable!()
24102 }
24103 }
24104 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24105 }
24106 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24107 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24108 }
24109 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24110 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24111 }
24112 Ok(())
24113 }
24114 }
24115
24116 impl fidl::encoding::ValueTypeMarker for Usage {
24117 type Borrowed<'a> = &'a Self;
24118 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24119 value
24120 }
24121 }
24122
24123 unsafe impl fidl::encoding::TypeMarker for Usage {
24124 type Owned = Self;
24125
24126 #[inline(always)]
24127 fn inline_align(_context: fidl::encoding::Context) -> usize {
24128 8
24129 }
24130
24131 #[inline(always)]
24132 fn inline_size(_context: fidl::encoding::Context) -> usize {
24133 16
24134 }
24135 }
24136
24137 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Usage, D> for &Usage {
24138 #[inline]
24139 unsafe fn encode(
24140 self,
24141 encoder: &mut fidl::encoding::Encoder<'_, D>,
24142 offset: usize,
24143 _depth: fidl::encoding::Depth,
24144 ) -> fidl::Result<()> {
24145 encoder.debug_check_bounds::<Usage>(offset);
24146 encoder.write_num::<u64>(self.ordinal(), offset);
24147 match self {
24148 Usage::RenderUsage(ref val) => {
24149 fidl::encoding::encode_in_envelope::<AudioRenderUsage, D>(
24150 <AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(val),
24151 encoder,
24152 offset + 8,
24153 _depth,
24154 )
24155 }
24156 Usage::CaptureUsage(ref val) => {
24157 fidl::encoding::encode_in_envelope::<AudioCaptureUsage, D>(
24158 <AudioCaptureUsage as fidl::encoding::ValueTypeMarker>::borrow(val),
24159 encoder,
24160 offset + 8,
24161 _depth,
24162 )
24163 }
24164 }
24165 }
24166 }
24167
24168 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Usage {
24169 #[inline(always)]
24170 fn new_empty() -> Self {
24171 Self::RenderUsage(fidl::new_empty!(AudioRenderUsage, D))
24172 }
24173
24174 #[inline]
24175 unsafe fn decode(
24176 &mut self,
24177 decoder: &mut fidl::encoding::Decoder<'_, D>,
24178 offset: usize,
24179 mut depth: fidl::encoding::Depth,
24180 ) -> fidl::Result<()> {
24181 decoder.debug_check_bounds::<Self>(offset);
24182 #[allow(unused_variables)]
24183 let next_out_of_line = decoder.next_out_of_line();
24184 let handles_before = decoder.remaining_handles();
24185 let (ordinal, inlined, num_bytes, num_handles) =
24186 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24187
24188 let member_inline_size = match ordinal {
24189 1 => <AudioRenderUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24190 2 => {
24191 <AudioCaptureUsage as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24192 }
24193 _ => return Err(fidl::Error::UnknownUnionTag),
24194 };
24195
24196 if inlined != (member_inline_size <= 4) {
24197 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24198 }
24199 let _inner_offset;
24200 if inlined {
24201 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24202 _inner_offset = offset + 8;
24203 } else {
24204 depth.increment()?;
24205 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24206 }
24207 match ordinal {
24208 1 => {
24209 #[allow(irrefutable_let_patterns)]
24210 if let Usage::RenderUsage(_) = self {
24211 } else {
24213 *self = Usage::RenderUsage(fidl::new_empty!(AudioRenderUsage, D));
24215 }
24216 #[allow(irrefutable_let_patterns)]
24217 if let Usage::RenderUsage(ref mut val) = self {
24218 fidl::decode!(AudioRenderUsage, D, val, decoder, _inner_offset, depth)?;
24219 } else {
24220 unreachable!()
24221 }
24222 }
24223 2 => {
24224 #[allow(irrefutable_let_patterns)]
24225 if let Usage::CaptureUsage(_) = self {
24226 } else {
24228 *self = Usage::CaptureUsage(fidl::new_empty!(AudioCaptureUsage, D));
24230 }
24231 #[allow(irrefutable_let_patterns)]
24232 if let Usage::CaptureUsage(ref mut val) = self {
24233 fidl::decode!(AudioCaptureUsage, D, val, decoder, _inner_offset, depth)?;
24234 } else {
24235 unreachable!()
24236 }
24237 }
24238 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24239 }
24240 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24241 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24242 }
24243 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24244 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24245 }
24246 Ok(())
24247 }
24248 }
24249
24250 impl fidl::encoding::ValueTypeMarker for Usage2 {
24251 type Borrowed<'a> = &'a Self;
24252 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24253 value
24254 }
24255 }
24256
24257 unsafe impl fidl::encoding::TypeMarker for Usage2 {
24258 type Owned = Self;
24259
24260 #[inline(always)]
24261 fn inline_align(_context: fidl::encoding::Context) -> usize {
24262 8
24263 }
24264
24265 #[inline(always)]
24266 fn inline_size(_context: fidl::encoding::Context) -> usize {
24267 16
24268 }
24269 }
24270
24271 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Usage2, D> for &Usage2 {
24272 #[inline]
24273 unsafe fn encode(
24274 self,
24275 encoder: &mut fidl::encoding::Encoder<'_, D>,
24276 offset: usize,
24277 _depth: fidl::encoding::Depth,
24278 ) -> fidl::Result<()> {
24279 encoder.debug_check_bounds::<Usage2>(offset);
24280 encoder.write_num::<u64>(self.ordinal(), offset);
24281 match self {
24282 Usage2::RenderUsage(ref val) => {
24283 fidl::encoding::encode_in_envelope::<AudioRenderUsage2, D>(
24284 <AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(val),
24285 encoder,
24286 offset + 8,
24287 _depth,
24288 )
24289 }
24290 Usage2::CaptureUsage(ref val) => {
24291 fidl::encoding::encode_in_envelope::<AudioCaptureUsage2, D>(
24292 <AudioCaptureUsage2 as fidl::encoding::ValueTypeMarker>::borrow(val),
24293 encoder,
24294 offset + 8,
24295 _depth,
24296 )
24297 }
24298 Usage2::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
24299 }
24300 }
24301 }
24302
24303 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Usage2 {
24304 #[inline(always)]
24305 fn new_empty() -> Self {
24306 Self::__SourceBreaking { unknown_ordinal: 0 }
24307 }
24308
24309 #[inline]
24310 unsafe fn decode(
24311 &mut self,
24312 decoder: &mut fidl::encoding::Decoder<'_, D>,
24313 offset: usize,
24314 mut depth: fidl::encoding::Depth,
24315 ) -> fidl::Result<()> {
24316 decoder.debug_check_bounds::<Self>(offset);
24317 #[allow(unused_variables)]
24318 let next_out_of_line = decoder.next_out_of_line();
24319 let handles_before = decoder.remaining_handles();
24320 let (ordinal, inlined, num_bytes, num_handles) =
24321 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24322
24323 let member_inline_size = match ordinal {
24324 1 => {
24325 <AudioRenderUsage2 as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24326 }
24327 2 => {
24328 <AudioCaptureUsage2 as fidl::encoding::TypeMarker>::inline_size(decoder.context)
24329 }
24330 0 => return Err(fidl::Error::UnknownUnionTag),
24331 _ => num_bytes as usize,
24332 };
24333
24334 if inlined != (member_inline_size <= 4) {
24335 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24336 }
24337 let _inner_offset;
24338 if inlined {
24339 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24340 _inner_offset = offset + 8;
24341 } else {
24342 depth.increment()?;
24343 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24344 }
24345 match ordinal {
24346 1 => {
24347 #[allow(irrefutable_let_patterns)]
24348 if let Usage2::RenderUsage(_) = self {
24349 } else {
24351 *self = Usage2::RenderUsage(fidl::new_empty!(AudioRenderUsage2, D));
24353 }
24354 #[allow(irrefutable_let_patterns)]
24355 if let Usage2::RenderUsage(ref mut val) = self {
24356 fidl::decode!(AudioRenderUsage2, D, val, decoder, _inner_offset, depth)?;
24357 } else {
24358 unreachable!()
24359 }
24360 }
24361 2 => {
24362 #[allow(irrefutable_let_patterns)]
24363 if let Usage2::CaptureUsage(_) = self {
24364 } else {
24366 *self = Usage2::CaptureUsage(fidl::new_empty!(AudioCaptureUsage2, D));
24368 }
24369 #[allow(irrefutable_let_patterns)]
24370 if let Usage2::CaptureUsage(ref mut val) = self {
24371 fidl::decode!(AudioCaptureUsage2, D, val, decoder, _inner_offset, depth)?;
24372 } else {
24373 unreachable!()
24374 }
24375 }
24376 #[allow(deprecated)]
24377 ordinal => {
24378 for _ in 0..num_handles {
24379 decoder.drop_next_handle()?;
24380 }
24381 *self = Usage2::__SourceBreaking { unknown_ordinal: ordinal };
24382 }
24383 }
24384 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24386 }
24387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24389 }
24390 Ok(())
24391 }
24392 }
24393
24394 impl fidl::encoding::ValueTypeMarker for UsageState {
24395 type Borrowed<'a> = &'a Self;
24396 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24397 value
24398 }
24399 }
24400
24401 unsafe impl fidl::encoding::TypeMarker for UsageState {
24402 type Owned = Self;
24403
24404 #[inline(always)]
24405 fn inline_align(_context: fidl::encoding::Context) -> usize {
24406 8
24407 }
24408
24409 #[inline(always)]
24410 fn inline_size(_context: fidl::encoding::Context) -> usize {
24411 16
24412 }
24413 }
24414
24415 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<UsageState, D>
24416 for &UsageState
24417 {
24418 #[inline]
24419 unsafe fn encode(
24420 self,
24421 encoder: &mut fidl::encoding::Encoder<'_, D>,
24422 offset: usize,
24423 _depth: fidl::encoding::Depth,
24424 ) -> fidl::Result<()> {
24425 encoder.debug_check_bounds::<UsageState>(offset);
24426 encoder.write_num::<u64>(self.ordinal(), offset);
24427 match self {
24428 UsageState::Unadjusted(ref val) => {
24429 fidl::encoding::encode_in_envelope::<UsageStateUnadjusted, D>(
24430 <UsageStateUnadjusted as fidl::encoding::ValueTypeMarker>::borrow(val),
24431 encoder,
24432 offset + 8,
24433 _depth,
24434 )
24435 }
24436 UsageState::Ducked(ref val) => {
24437 fidl::encoding::encode_in_envelope::<UsageStateDucked, D>(
24438 <UsageStateDucked as fidl::encoding::ValueTypeMarker>::borrow(val),
24439 encoder,
24440 offset + 8,
24441 _depth,
24442 )
24443 }
24444 UsageState::Muted(ref val) => {
24445 fidl::encoding::encode_in_envelope::<UsageStateMuted, D>(
24446 <UsageStateMuted as fidl::encoding::ValueTypeMarker>::borrow(val),
24447 encoder,
24448 offset + 8,
24449 _depth,
24450 )
24451 }
24452 UsageState::__SourceBreaking { .. } => Err(fidl::Error::UnknownUnionTag),
24453 }
24454 }
24455 }
24456
24457 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for UsageState {
24458 #[inline(always)]
24459 fn new_empty() -> Self {
24460 Self::__SourceBreaking { unknown_ordinal: 0 }
24461 }
24462
24463 #[inline]
24464 unsafe fn decode(
24465 &mut self,
24466 decoder: &mut fidl::encoding::Decoder<'_, D>,
24467 offset: usize,
24468 mut depth: fidl::encoding::Depth,
24469 ) -> fidl::Result<()> {
24470 decoder.debug_check_bounds::<Self>(offset);
24471 #[allow(unused_variables)]
24472 let next_out_of_line = decoder.next_out_of_line();
24473 let handles_before = decoder.remaining_handles();
24474 let (ordinal, inlined, num_bytes, num_handles) =
24475 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24476
24477 let member_inline_size = match ordinal {
24478 1 => <UsageStateUnadjusted as fidl::encoding::TypeMarker>::inline_size(
24479 decoder.context,
24480 ),
24481 2 => <UsageStateDucked as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24482 3 => <UsageStateMuted as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24483 0 => return Err(fidl::Error::UnknownUnionTag),
24484 _ => num_bytes as usize,
24485 };
24486
24487 if inlined != (member_inline_size <= 4) {
24488 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24489 }
24490 let _inner_offset;
24491 if inlined {
24492 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24493 _inner_offset = offset + 8;
24494 } else {
24495 depth.increment()?;
24496 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24497 }
24498 match ordinal {
24499 1 => {
24500 #[allow(irrefutable_let_patterns)]
24501 if let UsageState::Unadjusted(_) = self {
24502 } else {
24504 *self = UsageState::Unadjusted(fidl::new_empty!(UsageStateUnadjusted, D));
24506 }
24507 #[allow(irrefutable_let_patterns)]
24508 if let UsageState::Unadjusted(ref mut val) = self {
24509 fidl::decode!(UsageStateUnadjusted, D, val, decoder, _inner_offset, depth)?;
24510 } else {
24511 unreachable!()
24512 }
24513 }
24514 2 => {
24515 #[allow(irrefutable_let_patterns)]
24516 if let UsageState::Ducked(_) = self {
24517 } else {
24519 *self = UsageState::Ducked(fidl::new_empty!(UsageStateDucked, D));
24521 }
24522 #[allow(irrefutable_let_patterns)]
24523 if let UsageState::Ducked(ref mut val) = self {
24524 fidl::decode!(UsageStateDucked, D, val, decoder, _inner_offset, depth)?;
24525 } else {
24526 unreachable!()
24527 }
24528 }
24529 3 => {
24530 #[allow(irrefutable_let_patterns)]
24531 if let UsageState::Muted(_) = self {
24532 } else {
24534 *self = UsageState::Muted(fidl::new_empty!(UsageStateMuted, D));
24536 }
24537 #[allow(irrefutable_let_patterns)]
24538 if let UsageState::Muted(ref mut val) = self {
24539 fidl::decode!(UsageStateMuted, D, val, decoder, _inner_offset, depth)?;
24540 } else {
24541 unreachable!()
24542 }
24543 }
24544 #[allow(deprecated)]
24545 ordinal => {
24546 for _ in 0..num_handles {
24547 decoder.drop_next_handle()?;
24548 }
24549 *self = UsageState::__SourceBreaking { unknown_ordinal: ordinal };
24550 }
24551 }
24552 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24553 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24554 }
24555 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24556 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24557 }
24558 Ok(())
24559 }
24560 }
24561
24562 impl fidl::encoding::ValueTypeMarker for Value {
24563 type Borrowed<'a> = &'a Self;
24564 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24565 value
24566 }
24567 }
24568
24569 unsafe impl fidl::encoding::TypeMarker for Value {
24570 type Owned = Self;
24571
24572 #[inline(always)]
24573 fn inline_align(_context: fidl::encoding::Context) -> usize {
24574 8
24575 }
24576
24577 #[inline(always)]
24578 fn inline_size(_context: fidl::encoding::Context) -> usize {
24579 16
24580 }
24581 }
24582
24583 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Value, D> for &Value {
24584 #[inline]
24585 unsafe fn encode(
24586 self,
24587 encoder: &mut fidl::encoding::Encoder<'_, D>,
24588 offset: usize,
24589 _depth: fidl::encoding::Depth,
24590 ) -> fidl::Result<()> {
24591 encoder.debug_check_bounds::<Value>(offset);
24592 encoder.write_num::<u64>(self.ordinal(), offset);
24593 match self {
24594 Value::BoolValue(ref val) => {
24595 fidl::encoding::encode_in_envelope::<bool, D>(
24596 <bool as fidl::encoding::ValueTypeMarker>::borrow(val),
24597 encoder, offset + 8, _depth
24598 )
24599 }
24600 Value::Uint64Value(ref val) => {
24601 fidl::encoding::encode_in_envelope::<u64, D>(
24602 <u64 as fidl::encoding::ValueTypeMarker>::borrow(val),
24603 encoder, offset + 8, _depth
24604 )
24605 }
24606 Value::Int64Value(ref val) => {
24607 fidl::encoding::encode_in_envelope::<i64, D>(
24608 <i64 as fidl::encoding::ValueTypeMarker>::borrow(val),
24609 encoder, offset + 8, _depth
24610 )
24611 }
24612 Value::StringValue(ref val) => {
24613 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedString, D>(
24614 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow(val),
24615 encoder, offset + 8, _depth
24616 )
24617 }
24618 Value::BytesValue(ref val) => {
24619 fidl::encoding::encode_in_envelope::<fidl::encoding::UnboundedVector<u8>, D>(
24620 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(val),
24621 encoder, offset + 8, _depth
24622 )
24623 }
24624 }
24625 }
24626 }
24627
24628 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Value {
24629 #[inline(always)]
24630 fn new_empty() -> Self {
24631 Self::BoolValue(fidl::new_empty!(bool, D))
24632 }
24633
24634 #[inline]
24635 unsafe fn decode(
24636 &mut self,
24637 decoder: &mut fidl::encoding::Decoder<'_, D>,
24638 offset: usize,
24639 mut depth: fidl::encoding::Depth,
24640 ) -> fidl::Result<()> {
24641 decoder.debug_check_bounds::<Self>(offset);
24642 #[allow(unused_variables)]
24643 let next_out_of_line = decoder.next_out_of_line();
24644 let handles_before = decoder.remaining_handles();
24645 let (ordinal, inlined, num_bytes, num_handles) =
24646 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24647
24648 let member_inline_size = match ordinal {
24649 1 => <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24650 2 => <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24651 3 => <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24652 4 => <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
24653 decoder.context,
24654 ),
24655 5 => {
24656 <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(
24657 decoder.context,
24658 )
24659 }
24660 _ => return Err(fidl::Error::UnknownUnionTag),
24661 };
24662
24663 if inlined != (member_inline_size <= 4) {
24664 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24665 }
24666 let _inner_offset;
24667 if inlined {
24668 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24669 _inner_offset = offset + 8;
24670 } else {
24671 depth.increment()?;
24672 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24673 }
24674 match ordinal {
24675 1 => {
24676 #[allow(irrefutable_let_patterns)]
24677 if let Value::BoolValue(_) = self {
24678 } else {
24680 *self = Value::BoolValue(fidl::new_empty!(bool, D));
24682 }
24683 #[allow(irrefutable_let_patterns)]
24684 if let Value::BoolValue(ref mut val) = self {
24685 fidl::decode!(bool, D, val, decoder, _inner_offset, depth)?;
24686 } else {
24687 unreachable!()
24688 }
24689 }
24690 2 => {
24691 #[allow(irrefutable_let_patterns)]
24692 if let Value::Uint64Value(_) = self {
24693 } else {
24695 *self = Value::Uint64Value(fidl::new_empty!(u64, D));
24697 }
24698 #[allow(irrefutable_let_patterns)]
24699 if let Value::Uint64Value(ref mut val) = self {
24700 fidl::decode!(u64, D, val, decoder, _inner_offset, depth)?;
24701 } else {
24702 unreachable!()
24703 }
24704 }
24705 3 => {
24706 #[allow(irrefutable_let_patterns)]
24707 if let Value::Int64Value(_) = self {
24708 } else {
24710 *self = Value::Int64Value(fidl::new_empty!(i64, D));
24712 }
24713 #[allow(irrefutable_let_patterns)]
24714 if let Value::Int64Value(ref mut val) = self {
24715 fidl::decode!(i64, D, val, decoder, _inner_offset, depth)?;
24716 } else {
24717 unreachable!()
24718 }
24719 }
24720 4 => {
24721 #[allow(irrefutable_let_patterns)]
24722 if let Value::StringValue(_) = self {
24723 } else {
24725 *self = Value::StringValue(fidl::new_empty!(
24727 fidl::encoding::UnboundedString,
24728 D
24729 ));
24730 }
24731 #[allow(irrefutable_let_patterns)]
24732 if let Value::StringValue(ref mut val) = self {
24733 fidl::decode!(
24734 fidl::encoding::UnboundedString,
24735 D,
24736 val,
24737 decoder,
24738 _inner_offset,
24739 depth
24740 )?;
24741 } else {
24742 unreachable!()
24743 }
24744 }
24745 5 => {
24746 #[allow(irrefutable_let_patterns)]
24747 if let Value::BytesValue(_) = self {
24748 } else {
24750 *self = Value::BytesValue(fidl::new_empty!(
24752 fidl::encoding::UnboundedVector<u8>,
24753 D
24754 ));
24755 }
24756 #[allow(irrefutable_let_patterns)]
24757 if let Value::BytesValue(ref mut val) = self {
24758 fidl::decode!(
24759 fidl::encoding::UnboundedVector<u8>,
24760 D,
24761 val,
24762 decoder,
24763 _inner_offset,
24764 depth
24765 )?;
24766 } else {
24767 unreachable!()
24768 }
24769 }
24770 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24771 }
24772 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24774 }
24775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24777 }
24778 Ok(())
24779 }
24780 }
24781
24782 impl fidl::encoding::ValueTypeMarker for VideoCompressedFormat {
24783 type Borrowed<'a> = &'a Self;
24784 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24785 value
24786 }
24787 }
24788
24789 unsafe impl fidl::encoding::TypeMarker for VideoCompressedFormat {
24790 type Owned = Self;
24791
24792 #[inline(always)]
24793 fn inline_align(_context: fidl::encoding::Context) -> usize {
24794 8
24795 }
24796
24797 #[inline(always)]
24798 fn inline_size(_context: fidl::encoding::Context) -> usize {
24799 16
24800 }
24801 }
24802
24803 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoCompressedFormat, D>
24804 for &VideoCompressedFormat
24805 {
24806 #[inline]
24807 unsafe fn encode(
24808 self,
24809 encoder: &mut fidl::encoding::Encoder<'_, D>,
24810 offset: usize,
24811 _depth: fidl::encoding::Depth,
24812 ) -> fidl::Result<()> {
24813 encoder.debug_check_bounds::<VideoCompressedFormat>(offset);
24814 encoder.write_num::<u64>(self.ordinal(), offset);
24815 match self {
24816 VideoCompressedFormat::TempFieldTodoRemove(ref val) => {
24817 fidl::encoding::encode_in_envelope::<u32, D>(
24818 <u32 as fidl::encoding::ValueTypeMarker>::borrow(val),
24819 encoder,
24820 offset + 8,
24821 _depth,
24822 )
24823 }
24824 }
24825 }
24826 }
24827
24828 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoCompressedFormat {
24829 #[inline(always)]
24830 fn new_empty() -> Self {
24831 Self::TempFieldTodoRemove(fidl::new_empty!(u32, D))
24832 }
24833
24834 #[inline]
24835 unsafe fn decode(
24836 &mut self,
24837 decoder: &mut fidl::encoding::Decoder<'_, D>,
24838 offset: usize,
24839 mut depth: fidl::encoding::Depth,
24840 ) -> fidl::Result<()> {
24841 decoder.debug_check_bounds::<Self>(offset);
24842 #[allow(unused_variables)]
24843 let next_out_of_line = decoder.next_out_of_line();
24844 let handles_before = decoder.remaining_handles();
24845 let (ordinal, inlined, num_bytes, num_handles) =
24846 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24847
24848 let member_inline_size = match ordinal {
24849 1 => <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
24850 _ => return Err(fidl::Error::UnknownUnionTag),
24851 };
24852
24853 if inlined != (member_inline_size <= 4) {
24854 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24855 }
24856 let _inner_offset;
24857 if inlined {
24858 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24859 _inner_offset = offset + 8;
24860 } else {
24861 depth.increment()?;
24862 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24863 }
24864 match ordinal {
24865 1 => {
24866 #[allow(irrefutable_let_patterns)]
24867 if let VideoCompressedFormat::TempFieldTodoRemove(_) = self {
24868 } else {
24870 *self =
24872 VideoCompressedFormat::TempFieldTodoRemove(fidl::new_empty!(u32, D));
24873 }
24874 #[allow(irrefutable_let_patterns)]
24875 if let VideoCompressedFormat::TempFieldTodoRemove(ref mut val) = self {
24876 fidl::decode!(u32, D, val, decoder, _inner_offset, depth)?;
24877 } else {
24878 unreachable!()
24879 }
24880 }
24881 ordinal => panic!("unexpected ordinal {:?}", ordinal),
24882 }
24883 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
24884 return Err(fidl::Error::InvalidNumBytesInEnvelope);
24885 }
24886 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
24887 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
24888 }
24889 Ok(())
24890 }
24891 }
24892
24893 impl fidl::encoding::ValueTypeMarker for VideoFormat {
24894 type Borrowed<'a> = &'a Self;
24895 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
24896 value
24897 }
24898 }
24899
24900 unsafe impl fidl::encoding::TypeMarker for VideoFormat {
24901 type Owned = Self;
24902
24903 #[inline(always)]
24904 fn inline_align(_context: fidl::encoding::Context) -> usize {
24905 8
24906 }
24907
24908 #[inline(always)]
24909 fn inline_size(_context: fidl::encoding::Context) -> usize {
24910 16
24911 }
24912 }
24913
24914 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VideoFormat, D>
24915 for &VideoFormat
24916 {
24917 #[inline]
24918 unsafe fn encode(
24919 self,
24920 encoder: &mut fidl::encoding::Encoder<'_, D>,
24921 offset: usize,
24922 _depth: fidl::encoding::Depth,
24923 ) -> fidl::Result<()> {
24924 encoder.debug_check_bounds::<VideoFormat>(offset);
24925 encoder.write_num::<u64>(self.ordinal(), offset);
24926 match self {
24927 VideoFormat::Compressed(ref val) => {
24928 fidl::encoding::encode_in_envelope::<VideoCompressedFormat, D>(
24929 <VideoCompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
24930 encoder,
24931 offset + 8,
24932 _depth,
24933 )
24934 }
24935 VideoFormat::Uncompressed(ref val) => {
24936 fidl::encoding::encode_in_envelope::<VideoUncompressedFormat, D>(
24937 <VideoUncompressedFormat as fidl::encoding::ValueTypeMarker>::borrow(val),
24938 encoder,
24939 offset + 8,
24940 _depth,
24941 )
24942 }
24943 }
24944 }
24945 }
24946
24947 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VideoFormat {
24948 #[inline(always)]
24949 fn new_empty() -> Self {
24950 Self::Compressed(fidl::new_empty!(VideoCompressedFormat, D))
24951 }
24952
24953 #[inline]
24954 unsafe fn decode(
24955 &mut self,
24956 decoder: &mut fidl::encoding::Decoder<'_, D>,
24957 offset: usize,
24958 mut depth: fidl::encoding::Depth,
24959 ) -> fidl::Result<()> {
24960 decoder.debug_check_bounds::<Self>(offset);
24961 #[allow(unused_variables)]
24962 let next_out_of_line = decoder.next_out_of_line();
24963 let handles_before = decoder.remaining_handles();
24964 let (ordinal, inlined, num_bytes, num_handles) =
24965 fidl::encoding::decode_union_inline_portion(decoder, offset)?;
24966
24967 let member_inline_size = match ordinal {
24968 1 => <VideoCompressedFormat as fidl::encoding::TypeMarker>::inline_size(
24969 decoder.context,
24970 ),
24971 2 => <VideoUncompressedFormat as fidl::encoding::TypeMarker>::inline_size(
24972 decoder.context,
24973 ),
24974 _ => return Err(fidl::Error::UnknownUnionTag),
24975 };
24976
24977 if inlined != (member_inline_size <= 4) {
24978 return Err(fidl::Error::InvalidInlineBitInEnvelope);
24979 }
24980 let _inner_offset;
24981 if inlined {
24982 decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
24983 _inner_offset = offset + 8;
24984 } else {
24985 depth.increment()?;
24986 _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
24987 }
24988 match ordinal {
24989 1 => {
24990 #[allow(irrefutable_let_patterns)]
24991 if let VideoFormat::Compressed(_) = self {
24992 } else {
24994 *self = VideoFormat::Compressed(fidl::new_empty!(VideoCompressedFormat, D));
24996 }
24997 #[allow(irrefutable_let_patterns)]
24998 if let VideoFormat::Compressed(ref mut val) = self {
24999 fidl::decode!(
25000 VideoCompressedFormat,
25001 D,
25002 val,
25003 decoder,
25004 _inner_offset,
25005 depth
25006 )?;
25007 } else {
25008 unreachable!()
25009 }
25010 }
25011 2 => {
25012 #[allow(irrefutable_let_patterns)]
25013 if let VideoFormat::Uncompressed(_) = self {
25014 } else {
25016 *self =
25018 VideoFormat::Uncompressed(fidl::new_empty!(VideoUncompressedFormat, D));
25019 }
25020 #[allow(irrefutable_let_patterns)]
25021 if let VideoFormat::Uncompressed(ref mut val) = self {
25022 fidl::decode!(
25023 VideoUncompressedFormat,
25024 D,
25025 val,
25026 decoder,
25027 _inner_offset,
25028 depth
25029 )?;
25030 } else {
25031 unreachable!()
25032 }
25033 }
25034 ordinal => panic!("unexpected ordinal {:?}", ordinal),
25035 }
25036 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
25037 return Err(fidl::Error::InvalidNumBytesInEnvelope);
25038 }
25039 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
25040 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
25041 }
25042 Ok(())
25043 }
25044 }
25045}