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 ContextId = u32;
12
13pub type ObjectId = u64;
14
15pub type PerformanceCounterPoolId = u64;
20
21pub type PerformanceCounterSet = Vec<u64>;
24
25pub type PerformanceCounterTriggerId = u32;
26
27pub const MAX_ICD_COUNT: u64 = 8;
29
30pub const MAX_IMMEDIATE_COMMANDS_DATA_SIZE: u32 = 2048;
32
33pub const MAX_INLINE_COMMANDS_DATA_SIZE: u32 = 2048;
35
36bitflags! {
37 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
38 pub struct CommandBufferFlags: u64 {
39 const VENDOR_FLAG_0 = 65536;
41 }
42}
43
44impl CommandBufferFlags {
45 #[inline(always)]
46 pub fn from_bits_allow_unknown(bits: u64) -> Self {
47 Self::from_bits_retain(bits)
48 }
49
50 #[inline(always)]
51 pub fn has_unknown_bits(&self) -> bool {
52 self.get_unknown_bits() != 0
53 }
54
55 #[inline(always)]
56 pub fn get_unknown_bits(&self) -> u64 {
57 self.bits() & !Self::all().bits()
58 }
59}
60
61bitflags! {
62 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
63 pub struct IcdFlags: u32 {
64 const SUPPORTS_VULKAN = 1;
65 const SUPPORTS_OPENCL = 2;
66 const SUPPORTS_MEDIA_CODEC_FACTORY = 4;
67 }
68}
69
70impl IcdFlags {
71 #[inline(always)]
72 pub fn from_bits_allow_unknown(bits: u32) -> Self {
73 Self::from_bits_retain(bits)
74 }
75
76 #[inline(always)]
77 pub fn has_unknown_bits(&self) -> bool {
78 self.get_unknown_bits() != 0
79 }
80
81 #[inline(always)]
82 pub fn get_unknown_bits(&self) -> u32 {
83 self.bits() & !Self::all().bits()
84 }
85}
86
87bitflags! {
88 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
89 pub struct ImportFlags: u64 {
90 const SEMAPHORE_ONE_SHOT = 1;
91 }
92}
93
94impl ImportFlags {
95 #[inline(always)]
96 pub fn from_bits_allow_unknown(bits: u64) -> Self {
97 Self::from_bits_retain(bits)
98 }
99
100 #[inline(always)]
101 pub fn has_unknown_bits(&self) -> bool {
102 self.get_unknown_bits() != 0
103 }
104
105 #[inline(always)]
106 pub fn get_unknown_bits(&self) -> u64 {
107 self.bits() & !Self::all().bits()
108 }
109}
110
111bitflags! {
112 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
113 pub struct MapFlags: u64 {
114 const READ = 1;
115 const WRITE = 2;
116 const EXECUTE = 4;
117 const GROWABLE = 8;
120 const VENDOR_FLAG_0 = 65536;
122 }
123}
124
125impl MapFlags {
126 #[inline(always)]
127 pub fn from_bits_allow_unknown(bits: u64) -> Self {
128 Self::from_bits_retain(bits)
129 }
130
131 #[inline(always)]
132 pub fn has_unknown_bits(&self) -> bool {
133 self.get_unknown_bits() != 0
134 }
135
136 #[inline(always)]
137 pub fn get_unknown_bits(&self) -> u64 {
138 self.bits() & !Self::all().bits()
139 }
140}
141
142bitflags! {
143 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
144 pub struct ResultFlags: u32 {
145 const DISCONTINUITY = 1;
148 }
149}
150
151impl ResultFlags {
152 #[inline(always)]
153 pub fn from_bits_allow_unknown(bits: u32) -> Self {
154 Self::from_bits_retain(bits)
155 }
156
157 #[inline(always)]
158 pub fn has_unknown_bits(&self) -> bool {
159 self.get_unknown_bits() != 0
160 }
161
162 #[inline(always)]
163 pub fn get_unknown_bits(&self) -> u32 {
164 self.bits() & !Self::all().bits()
165 }
166}
167
168#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
169pub enum BufferOp {
170 PopulateTables,
174 DepopulateTables,
177 #[doc(hidden)]
178 __SourceBreaking { unknown_ordinal: u32 },
179}
180
181#[macro_export]
183macro_rules! BufferOpUnknown {
184 () => {
185 _
186 };
187}
188
189impl BufferOp {
190 #[inline]
191 pub fn from_primitive(prim: u32) -> Option<Self> {
192 match prim {
193 1 => Some(Self::PopulateTables),
194 2 => Some(Self::DepopulateTables),
195 _ => None,
196 }
197 }
198
199 #[inline]
200 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
201 match prim {
202 1 => Self::PopulateTables,
203 2 => Self::DepopulateTables,
204 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
205 }
206 }
207
208 #[inline]
209 pub fn unknown() -> Self {
210 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
211 }
212
213 #[inline]
214 pub const fn into_primitive(self) -> u32 {
215 match self {
216 Self::PopulateTables => 1,
217 Self::DepopulateTables => 2,
218 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
219 }
220 }
221
222 #[inline]
223 pub fn is_unknown(&self) -> bool {
224 match self {
225 Self::__SourceBreaking { unknown_ordinal: _ } => true,
226 _ => false,
227 }
228 }
229}
230
231#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
232pub enum ObjectType {
233 Event,
234 Buffer,
236 Semaphore,
238 #[doc(hidden)]
239 __SourceBreaking {
240 unknown_ordinal: u32,
241 },
242}
243
244#[macro_export]
246macro_rules! ObjectTypeUnknown {
247 () => {
248 _
249 };
250}
251
252impl ObjectType {
253 #[inline]
254 pub fn from_primitive(prim: u32) -> Option<Self> {
255 match prim {
256 10 => Some(Self::Event),
257 11 => Some(Self::Buffer),
258 12 => Some(Self::Semaphore),
259 _ => None,
260 }
261 }
262
263 #[inline]
264 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
265 match prim {
266 10 => Self::Event,
267 11 => Self::Buffer,
268 12 => Self::Semaphore,
269 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
270 }
271 }
272
273 #[inline]
274 pub fn unknown() -> Self {
275 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
276 }
277
278 #[inline]
279 pub const fn into_primitive(self) -> u32 {
280 match self {
281 Self::Event => 10,
282 Self::Buffer => 11,
283 Self::Semaphore => 12,
284 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
285 }
286 }
287
288 #[inline]
289 pub fn is_unknown(&self) -> bool {
290 match self {
291 Self::__SourceBreaking { unknown_ordinal: _ } => true,
292 _ => false,
293 }
294 }
295}
296
297#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
299pub enum PowerGoalType {
300 OnReadyForWork,
302 HighPerformance,
304 SustainedPerformance,
307 #[doc(hidden)]
308 __SourceBreaking { unknown_ordinal: u64 },
309}
310
311#[macro_export]
313macro_rules! PowerGoalTypeUnknown {
314 () => {
315 _
316 };
317}
318
319impl PowerGoalType {
320 #[inline]
321 pub fn from_primitive(prim: u64) -> Option<Self> {
322 match prim {
323 1 => Some(Self::OnReadyForWork),
324 2 => Some(Self::HighPerformance),
325 3 => Some(Self::SustainedPerformance),
326 _ => None,
327 }
328 }
329
330 #[inline]
331 pub fn from_primitive_allow_unknown(prim: u64) -> Self {
332 match prim {
333 1 => Self::OnReadyForWork,
334 2 => Self::HighPerformance,
335 3 => Self::SustainedPerformance,
336 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
337 }
338 }
339
340 #[inline]
341 pub fn unknown() -> Self {
342 Self::__SourceBreaking { unknown_ordinal: 0xffffffffffffffff }
343 }
344
345 #[inline]
346 pub const fn into_primitive(self) -> u64 {
347 match self {
348 Self::OnReadyForWork => 1,
349 Self::HighPerformance => 2,
350 Self::SustainedPerformance => 3,
351 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
352 }
353 }
354
355 #[inline]
356 pub fn is_unknown(&self) -> bool {
357 match self {
358 Self::__SourceBreaking { unknown_ordinal: _ } => true,
359 _ => false,
360 }
361 }
362}
363
364#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
367pub enum QueryId {
368 VendorId,
371 DeviceId,
373 VendorVersion,
375 IsTotalTimeSupported,
377 MaximumInflightParams,
379 MagmaQueryTotalTime,
382 VendorQuery0,
384 #[doc(hidden)]
385 __SourceBreaking { unknown_ordinal: u64 },
386}
387
388#[macro_export]
390macro_rules! QueryIdUnknown {
391 () => {
392 _
393 };
394}
395
396impl QueryId {
397 #[inline]
398 pub fn from_primitive(prim: u64) -> Option<Self> {
399 match prim {
400 0 => Some(Self::VendorId),
401 1 => Some(Self::DeviceId),
402 2 => Some(Self::VendorVersion),
403 3 => Some(Self::IsTotalTimeSupported),
404 5 => Some(Self::MaximumInflightParams),
405 500 => Some(Self::MagmaQueryTotalTime),
406 10000 => Some(Self::VendorQuery0),
407 _ => None,
408 }
409 }
410
411 #[inline]
412 pub fn from_primitive_allow_unknown(prim: u64) -> Self {
413 match prim {
414 0 => Self::VendorId,
415 1 => Self::DeviceId,
416 2 => Self::VendorVersion,
417 3 => Self::IsTotalTimeSupported,
418 5 => Self::MaximumInflightParams,
419 500 => Self::MagmaQueryTotalTime,
420 10000 => Self::VendorQuery0,
421 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
422 }
423 }
424
425 #[inline]
426 pub fn unknown() -> Self {
427 Self::__SourceBreaking { unknown_ordinal: 0xffffffffffffffff }
428 }
429
430 #[inline]
431 pub const fn into_primitive(self) -> u64 {
432 match self {
433 Self::VendorId => 0,
434 Self::DeviceId => 1,
435 Self::VendorVersion => 2,
436 Self::IsTotalTimeSupported => 3,
437 Self::MaximumInflightParams => 5,
438 Self::MagmaQueryTotalTime => 500,
439 Self::VendorQuery0 => 10000,
440 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
441 }
442 }
443
444 #[inline]
445 pub fn is_unknown(&self) -> bool {
446 match self {
447 Self::__SourceBreaking { unknown_ordinal: _ } => true,
448 _ => false,
449 }
450 }
451}
452
453#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
454#[repr(C)]
455pub struct BufferRange {
456 pub buffer_id: u64,
457 pub offset: u64,
458 pub size: u64,
459}
460
461impl fidl::Persistable for BufferRange {}
462
463#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
465#[repr(C)]
466pub struct CommandBuffer {
467 pub resource_index: u32,
469 pub start_offset: u64,
471}
472
473impl fidl::Persistable for CommandBuffer {}
474
475#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
476pub struct DeviceQueryRequest {
477 pub query_id: QueryId,
478}
479
480impl fidl::Persistable for DeviceQueryRequest {}
481
482#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
483#[repr(C)]
484pub struct DiagnosticDeviceDumpStateRequest {
485 pub dump_type: u32,
486}
487
488impl fidl::Persistable for DiagnosticDeviceDumpStateRequest {}
489
490#[derive(Clone, Debug, PartialEq)]
491pub struct IcdLoaderDeviceGetIcdListResponse {
492 pub icd_list: Vec<IcdInfo>,
493}
494
495impl fidl::Persistable for IcdLoaderDeviceGetIcdListResponse {}
496
497#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
498pub struct PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest {
499 pub pool_id: u64,
500 pub offsets: Vec<BufferRange>,
501}
502
503impl fidl::Persistable for PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest {}
504
505#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
506pub struct PrimaryBufferRangeOp2Request {
507 pub op: BufferOp,
508 pub range: BufferRange,
509}
510
511impl fidl::Persistable for PrimaryBufferRangeOp2Request {}
512
513#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
514pub struct PrimaryClearPerformanceCountersRequest {
515 pub counters: Vec<u64>,
516}
517
518impl fidl::Persistable for PrimaryClearPerformanceCountersRequest {}
519
520#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
521#[repr(C)]
522pub struct PrimaryCreateContextRequest {
523 pub context_id: u32,
524}
525
526impl fidl::Persistable for PrimaryCreateContextRequest {}
527
528#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
529#[repr(C)]
530pub struct PrimaryDestroyContextRequest {
531 pub context_id: u32,
532}
533
534impl fidl::Persistable for PrimaryDestroyContextRequest {}
535
536#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
537#[repr(C)]
538pub struct PrimaryDumpPerformanceCountersRequest {
539 pub pool_id: u64,
540 pub trigger_id: u32,
541}
542
543impl fidl::Persistable for PrimaryDumpPerformanceCountersRequest {}
544
545#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
546pub struct PrimaryEnablePerformanceCountersRequest {
547 pub counters: Vec<u64>,
548}
549
550impl fidl::Persistable for PrimaryEnablePerformanceCountersRequest {}
551
552#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
553pub struct PrimaryExecuteCommandRequest {
554 pub context_id: u32,
555 pub resources: Vec<BufferRange>,
556 pub command_buffers: Vec<CommandBuffer>,
557 pub wait_semaphores: Vec<u64>,
558 pub signal_semaphores: Vec<u64>,
559 pub flags: CommandBufferFlags,
560}
561
562impl fidl::Persistable for PrimaryExecuteCommandRequest {}
563
564#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
565pub struct PrimaryExecuteImmediateCommandsRequest {
566 pub context_id: u32,
567 pub command_data: Vec<u8>,
568 pub semaphores: Vec<u64>,
569}
570
571impl fidl::Persistable for PrimaryExecuteImmediateCommandsRequest {}
572
573#[derive(Clone, Debug, PartialEq)]
574pub struct PrimaryExecuteInlineCommandsRequest {
575 pub context_id: u32,
576 pub commands: Vec<InlineCommand>,
577}
578
579impl fidl::Persistable for PrimaryExecuteInlineCommandsRequest {}
580
581#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
582pub struct PrimaryIsPerformanceCounterAccessAllowedResponse {
583 pub enabled: bool,
584}
585
586impl fidl::Persistable for PrimaryIsPerformanceCounterAccessAllowedResponse {}
587
588#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
589#[repr(C)]
590pub struct PrimaryOnNotifyMemoryImportedRequest {
591 pub bytes: u64,
592}
593
594impl fidl::Persistable for PrimaryOnNotifyMemoryImportedRequest {}
595
596#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
597#[repr(C)]
598pub struct PrimaryOnNotifyMessagesConsumedRequest {
599 pub count: u64,
600}
601
602impl fidl::Persistable for PrimaryOnNotifyMessagesConsumedRequest {}
603
604#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
605pub struct PrimaryReleaseObjectRequest {
606 pub object_id: u64,
607 pub object_type: ObjectType,
608}
609
610impl fidl::Persistable for PrimaryReleaseObjectRequest {}
611
612#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
613#[repr(C)]
614pub struct PrimaryReleasePerformanceCounterBufferPoolRequest {
615 pub pool_id: u64,
616}
617
618impl fidl::Persistable for PrimaryReleasePerformanceCounterBufferPoolRequest {}
619
620#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
621#[repr(C)]
622pub struct PrimaryRemovePerformanceCounterBufferFromPoolRequest {
623 pub pool_id: u64,
624 pub buffer_id: u64,
625}
626
627impl fidl::Persistable for PrimaryRemovePerformanceCounterBufferFromPoolRequest {}
628
629#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
630#[repr(C)]
631pub struct TestDevice2GetUnitTestStatusResponse {
632 pub status: i32,
633}
634
635impl fidl::Persistable for TestDevice2GetUnitTestStatusResponse {}
636
637#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
638#[repr(C)]
639pub struct TestDeviceGetUnitTestStatusResponse {
640 pub status: i32,
641}
642
643impl fidl::Persistable for TestDeviceGetUnitTestStatusResponse {}
644
645#[derive(Clone, Debug, Default, PartialEq)]
647pub struct IcdInfo {
648 pub component_url: Option<String>,
650 pub flags: Option<IcdFlags>,
652 #[doc(hidden)]
653 pub __source_breaking: fidl::marker::SourceBreaking,
654}
655
656impl fidl::Persistable for IcdInfo {}
657
658#[derive(Clone, Debug, Default, PartialEq)]
659pub struct InlineCommand {
660 pub data: Option<Vec<u8>>,
661 pub semaphores: Option<Vec<u64>>,
662 #[doc(hidden)]
663 pub __source_breaking: fidl::marker::SourceBreaking,
664}
665
666impl fidl::Persistable for InlineCommand {}
667
668#[derive(Clone, Debug, Default, PartialEq)]
669pub struct PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest {
670 pub trigger_id: Option<u32>,
672 pub buffer_id: Option<u64>,
674 pub buffer_offset: Option<u32>,
676 pub timestamp: Option<i64>,
678 pub flags: Option<ResultFlags>,
680 #[doc(hidden)]
681 pub __source_breaking: fidl::marker::SourceBreaking,
682}
683
684impl fidl::Persistable for PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest {}
685
686#[derive(Clone, Debug, Default, PartialEq)]
687pub struct PowerElementProviderGetClockSpeedLevelRequest {
688 pub hz: Option<u64>,
690 pub allow_max: Option<bool>,
695 #[doc(hidden)]
696 pub __source_breaking: fidl::marker::SourceBreaking,
697}
698
699impl fidl::Persistable for PowerElementProviderGetClockSpeedLevelRequest {}
700
701#[derive(Clone, Debug, Default, PartialEq)]
702pub struct PowerElementProviderSetClockLimitRequest {
703 pub hz: Option<u64>,
705 #[doc(hidden)]
706 pub __source_breaking: fidl::marker::SourceBreaking,
707}
708
709impl fidl::Persistable for PowerElementProviderSetClockLimitRequest {}
710
711#[derive(Clone, Debug, Default, PartialEq)]
712pub struct PrimaryMapBufferRequest {
713 pub hw_va: Option<u64>,
715 pub range: Option<BufferRange>,
717 pub flags: Option<MapFlags>,
718 #[doc(hidden)]
719 pub __source_breaking: fidl::marker::SourceBreaking,
720}
721
722impl fidl::Persistable for PrimaryMapBufferRequest {}
723
724#[derive(Clone, Debug, Default, PartialEq)]
725pub struct PrimaryUnmapBufferRequest {
726 pub hw_va: Option<u64>,
728 pub buffer_id: Option<u64>,
730 #[doc(hidden)]
731 pub __source_breaking: fidl::marker::SourceBreaking,
732}
733
734impl fidl::Persistable for PrimaryUnmapBufferRequest {}
735
736mod internal {
737 use super::*;
738 unsafe impl fidl::encoding::TypeMarker for CommandBufferFlags {
739 type Owned = Self;
740
741 #[inline(always)]
742 fn inline_align(_context: fidl::encoding::Context) -> usize {
743 8
744 }
745
746 #[inline(always)]
747 fn inline_size(_context: fidl::encoding::Context) -> usize {
748 8
749 }
750 }
751
752 impl fidl::encoding::ValueTypeMarker for CommandBufferFlags {
753 type Borrowed<'a> = Self;
754 #[inline(always)]
755 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
756 *value
757 }
758 }
759
760 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
761 for CommandBufferFlags
762 {
763 #[inline]
764 unsafe fn encode(
765 self,
766 encoder: &mut fidl::encoding::Encoder<'_, D>,
767 offset: usize,
768 _depth: fidl::encoding::Depth,
769 ) -> fidl::Result<()> {
770 encoder.debug_check_bounds::<Self>(offset);
771 encoder.write_num(self.bits(), offset);
772 Ok(())
773 }
774 }
775
776 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CommandBufferFlags {
777 #[inline(always)]
778 fn new_empty() -> Self {
779 Self::empty()
780 }
781
782 #[inline]
783 unsafe fn decode(
784 &mut self,
785 decoder: &mut fidl::encoding::Decoder<'_, D>,
786 offset: usize,
787 _depth: fidl::encoding::Depth,
788 ) -> fidl::Result<()> {
789 decoder.debug_check_bounds::<Self>(offset);
790 let prim = decoder.read_num::<u64>(offset);
791 *self = Self::from_bits_allow_unknown(prim);
792 Ok(())
793 }
794 }
795 unsafe impl fidl::encoding::TypeMarker for IcdFlags {
796 type Owned = Self;
797
798 #[inline(always)]
799 fn inline_align(_context: fidl::encoding::Context) -> usize {
800 4
801 }
802
803 #[inline(always)]
804 fn inline_size(_context: fidl::encoding::Context) -> usize {
805 4
806 }
807 }
808
809 impl fidl::encoding::ValueTypeMarker for IcdFlags {
810 type Borrowed<'a> = Self;
811 #[inline(always)]
812 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
813 *value
814 }
815 }
816
817 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for IcdFlags {
818 #[inline]
819 unsafe fn encode(
820 self,
821 encoder: &mut fidl::encoding::Encoder<'_, D>,
822 offset: usize,
823 _depth: fidl::encoding::Depth,
824 ) -> fidl::Result<()> {
825 encoder.debug_check_bounds::<Self>(offset);
826 encoder.write_num(self.bits(), offset);
827 Ok(())
828 }
829 }
830
831 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IcdFlags {
832 #[inline(always)]
833 fn new_empty() -> Self {
834 Self::empty()
835 }
836
837 #[inline]
838 unsafe fn decode(
839 &mut self,
840 decoder: &mut fidl::encoding::Decoder<'_, D>,
841 offset: usize,
842 _depth: fidl::encoding::Depth,
843 ) -> fidl::Result<()> {
844 decoder.debug_check_bounds::<Self>(offset);
845 let prim = decoder.read_num::<u32>(offset);
846 *self = Self::from_bits_allow_unknown(prim);
847 Ok(())
848 }
849 }
850 unsafe impl fidl::encoding::TypeMarker for ImportFlags {
851 type Owned = Self;
852
853 #[inline(always)]
854 fn inline_align(_context: fidl::encoding::Context) -> usize {
855 8
856 }
857
858 #[inline(always)]
859 fn inline_size(_context: fidl::encoding::Context) -> usize {
860 8
861 }
862 }
863
864 impl fidl::encoding::ValueTypeMarker for ImportFlags {
865 type Borrowed<'a> = Self;
866 #[inline(always)]
867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
868 *value
869 }
870 }
871
872 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ImportFlags {
873 #[inline]
874 unsafe fn encode(
875 self,
876 encoder: &mut fidl::encoding::Encoder<'_, D>,
877 offset: usize,
878 _depth: fidl::encoding::Depth,
879 ) -> fidl::Result<()> {
880 encoder.debug_check_bounds::<Self>(offset);
881 encoder.write_num(self.bits(), offset);
882 Ok(())
883 }
884 }
885
886 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ImportFlags {
887 #[inline(always)]
888 fn new_empty() -> Self {
889 Self::empty()
890 }
891
892 #[inline]
893 unsafe fn decode(
894 &mut self,
895 decoder: &mut fidl::encoding::Decoder<'_, D>,
896 offset: usize,
897 _depth: fidl::encoding::Depth,
898 ) -> fidl::Result<()> {
899 decoder.debug_check_bounds::<Self>(offset);
900 let prim = decoder.read_num::<u64>(offset);
901 *self = Self::from_bits_allow_unknown(prim);
902 Ok(())
903 }
904 }
905 unsafe impl fidl::encoding::TypeMarker for MapFlags {
906 type Owned = Self;
907
908 #[inline(always)]
909 fn inline_align(_context: fidl::encoding::Context) -> usize {
910 8
911 }
912
913 #[inline(always)]
914 fn inline_size(_context: fidl::encoding::Context) -> usize {
915 8
916 }
917 }
918
919 impl fidl::encoding::ValueTypeMarker for MapFlags {
920 type Borrowed<'a> = Self;
921 #[inline(always)]
922 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
923 *value
924 }
925 }
926
927 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for MapFlags {
928 #[inline]
929 unsafe fn encode(
930 self,
931 encoder: &mut fidl::encoding::Encoder<'_, D>,
932 offset: usize,
933 _depth: fidl::encoding::Depth,
934 ) -> fidl::Result<()> {
935 encoder.debug_check_bounds::<Self>(offset);
936 encoder.write_num(self.bits(), offset);
937 Ok(())
938 }
939 }
940
941 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MapFlags {
942 #[inline(always)]
943 fn new_empty() -> Self {
944 Self::empty()
945 }
946
947 #[inline]
948 unsafe fn decode(
949 &mut self,
950 decoder: &mut fidl::encoding::Decoder<'_, D>,
951 offset: usize,
952 _depth: fidl::encoding::Depth,
953 ) -> fidl::Result<()> {
954 decoder.debug_check_bounds::<Self>(offset);
955 let prim = decoder.read_num::<u64>(offset);
956 *self = Self::from_bits_allow_unknown(prim);
957 Ok(())
958 }
959 }
960 unsafe impl fidl::encoding::TypeMarker for ResultFlags {
961 type Owned = Self;
962
963 #[inline(always)]
964 fn inline_align(_context: fidl::encoding::Context) -> usize {
965 4
966 }
967
968 #[inline(always)]
969 fn inline_size(_context: fidl::encoding::Context) -> usize {
970 4
971 }
972 }
973
974 impl fidl::encoding::ValueTypeMarker for ResultFlags {
975 type Borrowed<'a> = Self;
976 #[inline(always)]
977 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
978 *value
979 }
980 }
981
982 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ResultFlags {
983 #[inline]
984 unsafe fn encode(
985 self,
986 encoder: &mut fidl::encoding::Encoder<'_, D>,
987 offset: usize,
988 _depth: fidl::encoding::Depth,
989 ) -> fidl::Result<()> {
990 encoder.debug_check_bounds::<Self>(offset);
991 encoder.write_num(self.bits(), offset);
992 Ok(())
993 }
994 }
995
996 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ResultFlags {
997 #[inline(always)]
998 fn new_empty() -> Self {
999 Self::empty()
1000 }
1001
1002 #[inline]
1003 unsafe fn decode(
1004 &mut self,
1005 decoder: &mut fidl::encoding::Decoder<'_, D>,
1006 offset: usize,
1007 _depth: fidl::encoding::Depth,
1008 ) -> fidl::Result<()> {
1009 decoder.debug_check_bounds::<Self>(offset);
1010 let prim = decoder.read_num::<u32>(offset);
1011 *self = Self::from_bits_allow_unknown(prim);
1012 Ok(())
1013 }
1014 }
1015 unsafe impl fidl::encoding::TypeMarker for BufferOp {
1016 type Owned = Self;
1017
1018 #[inline(always)]
1019 fn inline_align(_context: fidl::encoding::Context) -> usize {
1020 std::mem::align_of::<u32>()
1021 }
1022
1023 #[inline(always)]
1024 fn inline_size(_context: fidl::encoding::Context) -> usize {
1025 std::mem::size_of::<u32>()
1026 }
1027
1028 #[inline(always)]
1029 fn encode_is_copy() -> bool {
1030 false
1031 }
1032
1033 #[inline(always)]
1034 fn decode_is_copy() -> bool {
1035 false
1036 }
1037 }
1038
1039 impl fidl::encoding::ValueTypeMarker for BufferOp {
1040 type Borrowed<'a> = Self;
1041 #[inline(always)]
1042 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1043 *value
1044 }
1045 }
1046
1047 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for BufferOp {
1048 #[inline]
1049 unsafe fn encode(
1050 self,
1051 encoder: &mut fidl::encoding::Encoder<'_, D>,
1052 offset: usize,
1053 _depth: fidl::encoding::Depth,
1054 ) -> fidl::Result<()> {
1055 encoder.debug_check_bounds::<Self>(offset);
1056 encoder.write_num(self.into_primitive(), offset);
1057 Ok(())
1058 }
1059 }
1060
1061 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BufferOp {
1062 #[inline(always)]
1063 fn new_empty() -> Self {
1064 Self::unknown()
1065 }
1066
1067 #[inline]
1068 unsafe fn decode(
1069 &mut self,
1070 decoder: &mut fidl::encoding::Decoder<'_, D>,
1071 offset: usize,
1072 _depth: fidl::encoding::Depth,
1073 ) -> fidl::Result<()> {
1074 decoder.debug_check_bounds::<Self>(offset);
1075 let prim = decoder.read_num::<u32>(offset);
1076
1077 *self = Self::from_primitive_allow_unknown(prim);
1078 Ok(())
1079 }
1080 }
1081 unsafe impl fidl::encoding::TypeMarker for ObjectType {
1082 type Owned = Self;
1083
1084 #[inline(always)]
1085 fn inline_align(_context: fidl::encoding::Context) -> usize {
1086 std::mem::align_of::<u32>()
1087 }
1088
1089 #[inline(always)]
1090 fn inline_size(_context: fidl::encoding::Context) -> usize {
1091 std::mem::size_of::<u32>()
1092 }
1093
1094 #[inline(always)]
1095 fn encode_is_copy() -> bool {
1096 false
1097 }
1098
1099 #[inline(always)]
1100 fn decode_is_copy() -> bool {
1101 false
1102 }
1103 }
1104
1105 impl fidl::encoding::ValueTypeMarker for ObjectType {
1106 type Borrowed<'a> = Self;
1107 #[inline(always)]
1108 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1109 *value
1110 }
1111 }
1112
1113 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for ObjectType {
1114 #[inline]
1115 unsafe fn encode(
1116 self,
1117 encoder: &mut fidl::encoding::Encoder<'_, D>,
1118 offset: usize,
1119 _depth: fidl::encoding::Depth,
1120 ) -> fidl::Result<()> {
1121 encoder.debug_check_bounds::<Self>(offset);
1122 encoder.write_num(self.into_primitive(), offset);
1123 Ok(())
1124 }
1125 }
1126
1127 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ObjectType {
1128 #[inline(always)]
1129 fn new_empty() -> Self {
1130 Self::unknown()
1131 }
1132
1133 #[inline]
1134 unsafe fn decode(
1135 &mut self,
1136 decoder: &mut fidl::encoding::Decoder<'_, D>,
1137 offset: usize,
1138 _depth: fidl::encoding::Depth,
1139 ) -> fidl::Result<()> {
1140 decoder.debug_check_bounds::<Self>(offset);
1141 let prim = decoder.read_num::<u32>(offset);
1142
1143 *self = Self::from_primitive_allow_unknown(prim);
1144 Ok(())
1145 }
1146 }
1147 unsafe impl fidl::encoding::TypeMarker for PowerGoalType {
1148 type Owned = Self;
1149
1150 #[inline(always)]
1151 fn inline_align(_context: fidl::encoding::Context) -> usize {
1152 std::mem::align_of::<u64>()
1153 }
1154
1155 #[inline(always)]
1156 fn inline_size(_context: fidl::encoding::Context) -> usize {
1157 std::mem::size_of::<u64>()
1158 }
1159
1160 #[inline(always)]
1161 fn encode_is_copy() -> bool {
1162 false
1163 }
1164
1165 #[inline(always)]
1166 fn decode_is_copy() -> bool {
1167 false
1168 }
1169 }
1170
1171 impl fidl::encoding::ValueTypeMarker for PowerGoalType {
1172 type Borrowed<'a> = Self;
1173 #[inline(always)]
1174 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1175 *value
1176 }
1177 }
1178
1179 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PowerGoalType {
1180 #[inline]
1181 unsafe fn encode(
1182 self,
1183 encoder: &mut fidl::encoding::Encoder<'_, D>,
1184 offset: usize,
1185 _depth: fidl::encoding::Depth,
1186 ) -> fidl::Result<()> {
1187 encoder.debug_check_bounds::<Self>(offset);
1188 encoder.write_num(self.into_primitive(), offset);
1189 Ok(())
1190 }
1191 }
1192
1193 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PowerGoalType {
1194 #[inline(always)]
1195 fn new_empty() -> Self {
1196 Self::unknown()
1197 }
1198
1199 #[inline]
1200 unsafe fn decode(
1201 &mut self,
1202 decoder: &mut fidl::encoding::Decoder<'_, D>,
1203 offset: usize,
1204 _depth: fidl::encoding::Depth,
1205 ) -> fidl::Result<()> {
1206 decoder.debug_check_bounds::<Self>(offset);
1207 let prim = decoder.read_num::<u64>(offset);
1208
1209 *self = Self::from_primitive_allow_unknown(prim);
1210 Ok(())
1211 }
1212 }
1213 unsafe impl fidl::encoding::TypeMarker for QueryId {
1214 type Owned = Self;
1215
1216 #[inline(always)]
1217 fn inline_align(_context: fidl::encoding::Context) -> usize {
1218 std::mem::align_of::<u64>()
1219 }
1220
1221 #[inline(always)]
1222 fn inline_size(_context: fidl::encoding::Context) -> usize {
1223 std::mem::size_of::<u64>()
1224 }
1225
1226 #[inline(always)]
1227 fn encode_is_copy() -> bool {
1228 false
1229 }
1230
1231 #[inline(always)]
1232 fn decode_is_copy() -> bool {
1233 false
1234 }
1235 }
1236
1237 impl fidl::encoding::ValueTypeMarker for QueryId {
1238 type Borrowed<'a> = Self;
1239 #[inline(always)]
1240 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1241 *value
1242 }
1243 }
1244
1245 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for QueryId {
1246 #[inline]
1247 unsafe fn encode(
1248 self,
1249 encoder: &mut fidl::encoding::Encoder<'_, D>,
1250 offset: usize,
1251 _depth: fidl::encoding::Depth,
1252 ) -> fidl::Result<()> {
1253 encoder.debug_check_bounds::<Self>(offset);
1254 encoder.write_num(self.into_primitive(), offset);
1255 Ok(())
1256 }
1257 }
1258
1259 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for QueryId {
1260 #[inline(always)]
1261 fn new_empty() -> Self {
1262 Self::unknown()
1263 }
1264
1265 #[inline]
1266 unsafe fn decode(
1267 &mut self,
1268 decoder: &mut fidl::encoding::Decoder<'_, D>,
1269 offset: usize,
1270 _depth: fidl::encoding::Depth,
1271 ) -> fidl::Result<()> {
1272 decoder.debug_check_bounds::<Self>(offset);
1273 let prim = decoder.read_num::<u64>(offset);
1274
1275 *self = Self::from_primitive_allow_unknown(prim);
1276 Ok(())
1277 }
1278 }
1279
1280 impl fidl::encoding::ValueTypeMarker for BufferRange {
1281 type Borrowed<'a> = &'a Self;
1282 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1283 value
1284 }
1285 }
1286
1287 unsafe impl fidl::encoding::TypeMarker for BufferRange {
1288 type Owned = Self;
1289
1290 #[inline(always)]
1291 fn inline_align(_context: fidl::encoding::Context) -> usize {
1292 8
1293 }
1294
1295 #[inline(always)]
1296 fn inline_size(_context: fidl::encoding::Context) -> usize {
1297 24
1298 }
1299 #[inline(always)]
1300 fn encode_is_copy() -> bool {
1301 true
1302 }
1303
1304 #[inline(always)]
1305 fn decode_is_copy() -> bool {
1306 true
1307 }
1308 }
1309
1310 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<BufferRange, D>
1311 for &BufferRange
1312 {
1313 #[inline]
1314 unsafe fn encode(
1315 self,
1316 encoder: &mut fidl::encoding::Encoder<'_, D>,
1317 offset: usize,
1318 _depth: fidl::encoding::Depth,
1319 ) -> fidl::Result<()> {
1320 encoder.debug_check_bounds::<BufferRange>(offset);
1321 unsafe {
1322 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1324 (buf_ptr as *mut BufferRange).write_unaligned((self as *const BufferRange).read());
1325 }
1328 Ok(())
1329 }
1330 }
1331 unsafe impl<
1332 D: fidl::encoding::ResourceDialect,
1333 T0: fidl::encoding::Encode<u64, D>,
1334 T1: fidl::encoding::Encode<u64, D>,
1335 T2: fidl::encoding::Encode<u64, D>,
1336 > fidl::encoding::Encode<BufferRange, D> for (T0, T1, T2)
1337 {
1338 #[inline]
1339 unsafe fn encode(
1340 self,
1341 encoder: &mut fidl::encoding::Encoder<'_, D>,
1342 offset: usize,
1343 depth: fidl::encoding::Depth,
1344 ) -> fidl::Result<()> {
1345 encoder.debug_check_bounds::<BufferRange>(offset);
1346 self.0.encode(encoder, offset + 0, depth)?;
1350 self.1.encode(encoder, offset + 8, depth)?;
1351 self.2.encode(encoder, offset + 16, depth)?;
1352 Ok(())
1353 }
1354 }
1355
1356 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for BufferRange {
1357 #[inline(always)]
1358 fn new_empty() -> Self {
1359 Self {
1360 buffer_id: fidl::new_empty!(u64, D),
1361 offset: fidl::new_empty!(u64, D),
1362 size: fidl::new_empty!(u64, D),
1363 }
1364 }
1365
1366 #[inline]
1367 unsafe fn decode(
1368 &mut self,
1369 decoder: &mut fidl::encoding::Decoder<'_, D>,
1370 offset: usize,
1371 _depth: fidl::encoding::Depth,
1372 ) -> fidl::Result<()> {
1373 decoder.debug_check_bounds::<Self>(offset);
1374 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1375 unsafe {
1378 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 24);
1379 }
1380 Ok(())
1381 }
1382 }
1383
1384 impl fidl::encoding::ValueTypeMarker for CommandBuffer {
1385 type Borrowed<'a> = &'a Self;
1386 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1387 value
1388 }
1389 }
1390
1391 unsafe impl fidl::encoding::TypeMarker for CommandBuffer {
1392 type Owned = Self;
1393
1394 #[inline(always)]
1395 fn inline_align(_context: fidl::encoding::Context) -> usize {
1396 8
1397 }
1398
1399 #[inline(always)]
1400 fn inline_size(_context: fidl::encoding::Context) -> usize {
1401 16
1402 }
1403 }
1404
1405 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CommandBuffer, D>
1406 for &CommandBuffer
1407 {
1408 #[inline]
1409 unsafe fn encode(
1410 self,
1411 encoder: &mut fidl::encoding::Encoder<'_, D>,
1412 offset: usize,
1413 _depth: fidl::encoding::Depth,
1414 ) -> fidl::Result<()> {
1415 encoder.debug_check_bounds::<CommandBuffer>(offset);
1416 unsafe {
1417 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1419 (buf_ptr as *mut CommandBuffer)
1420 .write_unaligned((self as *const CommandBuffer).read());
1421 let padding_ptr = buf_ptr.offset(0) as *mut u64;
1424 let padding_mask = 0xffffffff00000000u64;
1425 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
1426 }
1427 Ok(())
1428 }
1429 }
1430 unsafe impl<
1431 D: fidl::encoding::ResourceDialect,
1432 T0: fidl::encoding::Encode<u32, D>,
1433 T1: fidl::encoding::Encode<u64, D>,
1434 > fidl::encoding::Encode<CommandBuffer, D> for (T0, T1)
1435 {
1436 #[inline]
1437 unsafe fn encode(
1438 self,
1439 encoder: &mut fidl::encoding::Encoder<'_, D>,
1440 offset: usize,
1441 depth: fidl::encoding::Depth,
1442 ) -> fidl::Result<()> {
1443 encoder.debug_check_bounds::<CommandBuffer>(offset);
1444 unsafe {
1447 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1448 (ptr as *mut u64).write_unaligned(0);
1449 }
1450 self.0.encode(encoder, offset + 0, depth)?;
1452 self.1.encode(encoder, offset + 8, depth)?;
1453 Ok(())
1454 }
1455 }
1456
1457 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CommandBuffer {
1458 #[inline(always)]
1459 fn new_empty() -> Self {
1460 Self {
1461 resource_index: fidl::new_empty!(u32, D),
1462 start_offset: fidl::new_empty!(u64, D),
1463 }
1464 }
1465
1466 #[inline]
1467 unsafe fn decode(
1468 &mut self,
1469 decoder: &mut fidl::encoding::Decoder<'_, D>,
1470 offset: usize,
1471 _depth: fidl::encoding::Depth,
1472 ) -> fidl::Result<()> {
1473 decoder.debug_check_bounds::<Self>(offset);
1474 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1475 let ptr = unsafe { buf_ptr.offset(0) };
1477 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1478 let mask = 0xffffffff00000000u64;
1479 let maskedval = padval & mask;
1480 if maskedval != 0 {
1481 return Err(fidl::Error::NonZeroPadding {
1482 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1483 });
1484 }
1485 unsafe {
1487 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
1488 }
1489 Ok(())
1490 }
1491 }
1492
1493 impl fidl::encoding::ValueTypeMarker for DeviceQueryRequest {
1494 type Borrowed<'a> = &'a Self;
1495 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1496 value
1497 }
1498 }
1499
1500 unsafe impl fidl::encoding::TypeMarker for DeviceQueryRequest {
1501 type Owned = Self;
1502
1503 #[inline(always)]
1504 fn inline_align(_context: fidl::encoding::Context) -> usize {
1505 8
1506 }
1507
1508 #[inline(always)]
1509 fn inline_size(_context: fidl::encoding::Context) -> usize {
1510 8
1511 }
1512 }
1513
1514 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<DeviceQueryRequest, D>
1515 for &DeviceQueryRequest
1516 {
1517 #[inline]
1518 unsafe fn encode(
1519 self,
1520 encoder: &mut fidl::encoding::Encoder<'_, D>,
1521 offset: usize,
1522 _depth: fidl::encoding::Depth,
1523 ) -> fidl::Result<()> {
1524 encoder.debug_check_bounds::<DeviceQueryRequest>(offset);
1525 fidl::encoding::Encode::<DeviceQueryRequest, D>::encode(
1527 (<QueryId as fidl::encoding::ValueTypeMarker>::borrow(&self.query_id),),
1528 encoder,
1529 offset,
1530 _depth,
1531 )
1532 }
1533 }
1534 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<QueryId, D>>
1535 fidl::encoding::Encode<DeviceQueryRequest, D> for (T0,)
1536 {
1537 #[inline]
1538 unsafe fn encode(
1539 self,
1540 encoder: &mut fidl::encoding::Encoder<'_, D>,
1541 offset: usize,
1542 depth: fidl::encoding::Depth,
1543 ) -> fidl::Result<()> {
1544 encoder.debug_check_bounds::<DeviceQueryRequest>(offset);
1545 self.0.encode(encoder, offset + 0, depth)?;
1549 Ok(())
1550 }
1551 }
1552
1553 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for DeviceQueryRequest {
1554 #[inline(always)]
1555 fn new_empty() -> Self {
1556 Self { query_id: fidl::new_empty!(QueryId, D) }
1557 }
1558
1559 #[inline]
1560 unsafe fn decode(
1561 &mut self,
1562 decoder: &mut fidl::encoding::Decoder<'_, D>,
1563 offset: usize,
1564 _depth: fidl::encoding::Depth,
1565 ) -> fidl::Result<()> {
1566 decoder.debug_check_bounds::<Self>(offset);
1567 fidl::decode!(QueryId, D, &mut self.query_id, decoder, offset + 0, _depth)?;
1569 Ok(())
1570 }
1571 }
1572
1573 impl fidl::encoding::ValueTypeMarker for DiagnosticDeviceDumpStateRequest {
1574 type Borrowed<'a> = &'a Self;
1575 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1576 value
1577 }
1578 }
1579
1580 unsafe impl fidl::encoding::TypeMarker for DiagnosticDeviceDumpStateRequest {
1581 type Owned = Self;
1582
1583 #[inline(always)]
1584 fn inline_align(_context: fidl::encoding::Context) -> usize {
1585 4
1586 }
1587
1588 #[inline(always)]
1589 fn inline_size(_context: fidl::encoding::Context) -> usize {
1590 4
1591 }
1592 #[inline(always)]
1593 fn encode_is_copy() -> bool {
1594 true
1595 }
1596
1597 #[inline(always)]
1598 fn decode_is_copy() -> bool {
1599 true
1600 }
1601 }
1602
1603 unsafe impl<D: fidl::encoding::ResourceDialect>
1604 fidl::encoding::Encode<DiagnosticDeviceDumpStateRequest, D>
1605 for &DiagnosticDeviceDumpStateRequest
1606 {
1607 #[inline]
1608 unsafe fn encode(
1609 self,
1610 encoder: &mut fidl::encoding::Encoder<'_, D>,
1611 offset: usize,
1612 _depth: fidl::encoding::Depth,
1613 ) -> fidl::Result<()> {
1614 encoder.debug_check_bounds::<DiagnosticDeviceDumpStateRequest>(offset);
1615 unsafe {
1616 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
1618 (buf_ptr as *mut DiagnosticDeviceDumpStateRequest)
1619 .write_unaligned((self as *const DiagnosticDeviceDumpStateRequest).read());
1620 }
1623 Ok(())
1624 }
1625 }
1626 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
1627 fidl::encoding::Encode<DiagnosticDeviceDumpStateRequest, D> for (T0,)
1628 {
1629 #[inline]
1630 unsafe fn encode(
1631 self,
1632 encoder: &mut fidl::encoding::Encoder<'_, D>,
1633 offset: usize,
1634 depth: fidl::encoding::Depth,
1635 ) -> fidl::Result<()> {
1636 encoder.debug_check_bounds::<DiagnosticDeviceDumpStateRequest>(offset);
1637 self.0.encode(encoder, offset + 0, depth)?;
1641 Ok(())
1642 }
1643 }
1644
1645 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1646 for DiagnosticDeviceDumpStateRequest
1647 {
1648 #[inline(always)]
1649 fn new_empty() -> Self {
1650 Self { dump_type: fidl::new_empty!(u32, D) }
1651 }
1652
1653 #[inline]
1654 unsafe fn decode(
1655 &mut self,
1656 decoder: &mut fidl::encoding::Decoder<'_, D>,
1657 offset: usize,
1658 _depth: fidl::encoding::Depth,
1659 ) -> fidl::Result<()> {
1660 decoder.debug_check_bounds::<Self>(offset);
1661 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
1662 unsafe {
1665 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
1666 }
1667 Ok(())
1668 }
1669 }
1670
1671 impl fidl::encoding::ValueTypeMarker for IcdLoaderDeviceGetIcdListResponse {
1672 type Borrowed<'a> = &'a Self;
1673 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1674 value
1675 }
1676 }
1677
1678 unsafe impl fidl::encoding::TypeMarker for IcdLoaderDeviceGetIcdListResponse {
1679 type Owned = Self;
1680
1681 #[inline(always)]
1682 fn inline_align(_context: fidl::encoding::Context) -> usize {
1683 8
1684 }
1685
1686 #[inline(always)]
1687 fn inline_size(_context: fidl::encoding::Context) -> usize {
1688 16
1689 }
1690 }
1691
1692 unsafe impl<D: fidl::encoding::ResourceDialect>
1693 fidl::encoding::Encode<IcdLoaderDeviceGetIcdListResponse, D>
1694 for &IcdLoaderDeviceGetIcdListResponse
1695 {
1696 #[inline]
1697 unsafe fn encode(
1698 self,
1699 encoder: &mut fidl::encoding::Encoder<'_, D>,
1700 offset: usize,
1701 _depth: fidl::encoding::Depth,
1702 ) -> fidl::Result<()> {
1703 encoder.debug_check_bounds::<IcdLoaderDeviceGetIcdListResponse>(offset);
1704 fidl::encoding::Encode::<IcdLoaderDeviceGetIcdListResponse, D>::encode(
1706 (<fidl::encoding::Vector<IcdInfo, 8> as fidl::encoding::ValueTypeMarker>::borrow(
1707 &self.icd_list,
1708 ),),
1709 encoder,
1710 offset,
1711 _depth,
1712 )
1713 }
1714 }
1715 unsafe impl<
1716 D: fidl::encoding::ResourceDialect,
1717 T0: fidl::encoding::Encode<fidl::encoding::Vector<IcdInfo, 8>, D>,
1718 > fidl::encoding::Encode<IcdLoaderDeviceGetIcdListResponse, D> for (T0,)
1719 {
1720 #[inline]
1721 unsafe fn encode(
1722 self,
1723 encoder: &mut fidl::encoding::Encoder<'_, D>,
1724 offset: usize,
1725 depth: fidl::encoding::Depth,
1726 ) -> fidl::Result<()> {
1727 encoder.debug_check_bounds::<IcdLoaderDeviceGetIcdListResponse>(offset);
1728 self.0.encode(encoder, offset + 0, depth)?;
1732 Ok(())
1733 }
1734 }
1735
1736 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1737 for IcdLoaderDeviceGetIcdListResponse
1738 {
1739 #[inline(always)]
1740 fn new_empty() -> Self {
1741 Self { icd_list: fidl::new_empty!(fidl::encoding::Vector<IcdInfo, 8>, D) }
1742 }
1743
1744 #[inline]
1745 unsafe fn decode(
1746 &mut self,
1747 decoder: &mut fidl::encoding::Decoder<'_, D>,
1748 offset: usize,
1749 _depth: fidl::encoding::Depth,
1750 ) -> fidl::Result<()> {
1751 decoder.debug_check_bounds::<Self>(offset);
1752 fidl::decode!(fidl::encoding::Vector<IcdInfo, 8>, D, &mut self.icd_list, decoder, offset + 0, _depth)?;
1754 Ok(())
1755 }
1756 }
1757
1758 impl fidl::encoding::ValueTypeMarker for PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest {
1759 type Borrowed<'a> = &'a Self;
1760 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1761 value
1762 }
1763 }
1764
1765 unsafe impl fidl::encoding::TypeMarker for PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest {
1766 type Owned = Self;
1767
1768 #[inline(always)]
1769 fn inline_align(_context: fidl::encoding::Context) -> usize {
1770 8
1771 }
1772
1773 #[inline(always)]
1774 fn inline_size(_context: fidl::encoding::Context) -> usize {
1775 24
1776 }
1777 }
1778
1779 unsafe impl<D: fidl::encoding::ResourceDialect>
1780 fidl::encoding::Encode<PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest, D>
1781 for &PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest
1782 {
1783 #[inline]
1784 unsafe fn encode(
1785 self,
1786 encoder: &mut fidl::encoding::Encoder<'_, D>,
1787 offset: usize,
1788 _depth: fidl::encoding::Depth,
1789 ) -> fidl::Result<()> {
1790 encoder.debug_check_bounds::<PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest>(
1791 offset,
1792 );
1793 fidl::encoding::Encode::<PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest, D>::encode(
1795 (
1796 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.pool_id),
1797 <fidl::encoding::Vector<BufferRange, 64> as fidl::encoding::ValueTypeMarker>::borrow(&self.offsets),
1798 ),
1799 encoder, offset, _depth
1800 )
1801 }
1802 }
1803 unsafe impl<
1804 D: fidl::encoding::ResourceDialect,
1805 T0: fidl::encoding::Encode<u64, D>,
1806 T1: fidl::encoding::Encode<fidl::encoding::Vector<BufferRange, 64>, D>,
1807 > fidl::encoding::Encode<PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest, D>
1808 for (T0, T1)
1809 {
1810 #[inline]
1811 unsafe fn encode(
1812 self,
1813 encoder: &mut fidl::encoding::Encoder<'_, D>,
1814 offset: usize,
1815 depth: fidl::encoding::Depth,
1816 ) -> fidl::Result<()> {
1817 encoder.debug_check_bounds::<PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest>(
1818 offset,
1819 );
1820 self.0.encode(encoder, offset + 0, depth)?;
1824 self.1.encode(encoder, offset + 8, depth)?;
1825 Ok(())
1826 }
1827 }
1828
1829 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1830 for PrimaryAddPerformanceCounterBufferOffsetsToPoolRequest
1831 {
1832 #[inline(always)]
1833 fn new_empty() -> Self {
1834 Self {
1835 pool_id: fidl::new_empty!(u64, D),
1836 offsets: fidl::new_empty!(fidl::encoding::Vector<BufferRange, 64>, D),
1837 }
1838 }
1839
1840 #[inline]
1841 unsafe fn decode(
1842 &mut self,
1843 decoder: &mut fidl::encoding::Decoder<'_, D>,
1844 offset: usize,
1845 _depth: fidl::encoding::Depth,
1846 ) -> fidl::Result<()> {
1847 decoder.debug_check_bounds::<Self>(offset);
1848 fidl::decode!(u64, D, &mut self.pool_id, decoder, offset + 0, _depth)?;
1850 fidl::decode!(fidl::encoding::Vector<BufferRange, 64>, D, &mut self.offsets, decoder, offset + 8, _depth)?;
1851 Ok(())
1852 }
1853 }
1854
1855 impl fidl::encoding::ValueTypeMarker for PrimaryBufferRangeOp2Request {
1856 type Borrowed<'a> = &'a Self;
1857 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1858 value
1859 }
1860 }
1861
1862 unsafe impl fidl::encoding::TypeMarker for PrimaryBufferRangeOp2Request {
1863 type Owned = Self;
1864
1865 #[inline(always)]
1866 fn inline_align(_context: fidl::encoding::Context) -> usize {
1867 8
1868 }
1869
1870 #[inline(always)]
1871 fn inline_size(_context: fidl::encoding::Context) -> usize {
1872 32
1873 }
1874 }
1875
1876 unsafe impl<D: fidl::encoding::ResourceDialect>
1877 fidl::encoding::Encode<PrimaryBufferRangeOp2Request, D> for &PrimaryBufferRangeOp2Request
1878 {
1879 #[inline]
1880 unsafe fn encode(
1881 self,
1882 encoder: &mut fidl::encoding::Encoder<'_, D>,
1883 offset: usize,
1884 _depth: fidl::encoding::Depth,
1885 ) -> fidl::Result<()> {
1886 encoder.debug_check_bounds::<PrimaryBufferRangeOp2Request>(offset);
1887 fidl::encoding::Encode::<PrimaryBufferRangeOp2Request, D>::encode(
1889 (
1890 <BufferOp as fidl::encoding::ValueTypeMarker>::borrow(&self.op),
1891 <BufferRange as fidl::encoding::ValueTypeMarker>::borrow(&self.range),
1892 ),
1893 encoder,
1894 offset,
1895 _depth,
1896 )
1897 }
1898 }
1899 unsafe impl<
1900 D: fidl::encoding::ResourceDialect,
1901 T0: fidl::encoding::Encode<BufferOp, D>,
1902 T1: fidl::encoding::Encode<BufferRange, D>,
1903 > fidl::encoding::Encode<PrimaryBufferRangeOp2Request, D> for (T0, T1)
1904 {
1905 #[inline]
1906 unsafe fn encode(
1907 self,
1908 encoder: &mut fidl::encoding::Encoder<'_, D>,
1909 offset: usize,
1910 depth: fidl::encoding::Depth,
1911 ) -> fidl::Result<()> {
1912 encoder.debug_check_bounds::<PrimaryBufferRangeOp2Request>(offset);
1913 unsafe {
1916 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1917 (ptr as *mut u64).write_unaligned(0);
1918 }
1919 self.0.encode(encoder, offset + 0, depth)?;
1921 self.1.encode(encoder, offset + 8, depth)?;
1922 Ok(())
1923 }
1924 }
1925
1926 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1927 for PrimaryBufferRangeOp2Request
1928 {
1929 #[inline(always)]
1930 fn new_empty() -> Self {
1931 Self { op: fidl::new_empty!(BufferOp, D), range: fidl::new_empty!(BufferRange, D) }
1932 }
1933
1934 #[inline]
1935 unsafe fn decode(
1936 &mut self,
1937 decoder: &mut fidl::encoding::Decoder<'_, D>,
1938 offset: usize,
1939 _depth: fidl::encoding::Depth,
1940 ) -> fidl::Result<()> {
1941 decoder.debug_check_bounds::<Self>(offset);
1942 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1944 let padval = unsafe { (ptr as *const u64).read_unaligned() };
1945 let mask = 0xffffffff00000000u64;
1946 let maskedval = padval & mask;
1947 if maskedval != 0 {
1948 return Err(fidl::Error::NonZeroPadding {
1949 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1950 });
1951 }
1952 fidl::decode!(BufferOp, D, &mut self.op, decoder, offset + 0, _depth)?;
1953 fidl::decode!(BufferRange, D, &mut self.range, decoder, offset + 8, _depth)?;
1954 Ok(())
1955 }
1956 }
1957
1958 impl fidl::encoding::ValueTypeMarker for PrimaryClearPerformanceCountersRequest {
1959 type Borrowed<'a> = &'a Self;
1960 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1961 value
1962 }
1963 }
1964
1965 unsafe impl fidl::encoding::TypeMarker for PrimaryClearPerformanceCountersRequest {
1966 type Owned = Self;
1967
1968 #[inline(always)]
1969 fn inline_align(_context: fidl::encoding::Context) -> usize {
1970 8
1971 }
1972
1973 #[inline(always)]
1974 fn inline_size(_context: fidl::encoding::Context) -> usize {
1975 16
1976 }
1977 }
1978
1979 unsafe impl<D: fidl::encoding::ResourceDialect>
1980 fidl::encoding::Encode<PrimaryClearPerformanceCountersRequest, D>
1981 for &PrimaryClearPerformanceCountersRequest
1982 {
1983 #[inline]
1984 unsafe fn encode(
1985 self,
1986 encoder: &mut fidl::encoding::Encoder<'_, D>,
1987 offset: usize,
1988 _depth: fidl::encoding::Depth,
1989 ) -> fidl::Result<()> {
1990 encoder.debug_check_bounds::<PrimaryClearPerformanceCountersRequest>(offset);
1991 fidl::encoding::Encode::<PrimaryClearPerformanceCountersRequest, D>::encode(
1993 (<fidl::encoding::Vector<u64, 64> as fidl::encoding::ValueTypeMarker>::borrow(
1994 &self.counters,
1995 ),),
1996 encoder,
1997 offset,
1998 _depth,
1999 )
2000 }
2001 }
2002 unsafe impl<
2003 D: fidl::encoding::ResourceDialect,
2004 T0: fidl::encoding::Encode<fidl::encoding::Vector<u64, 64>, D>,
2005 > fidl::encoding::Encode<PrimaryClearPerformanceCountersRequest, D> for (T0,)
2006 {
2007 #[inline]
2008 unsafe fn encode(
2009 self,
2010 encoder: &mut fidl::encoding::Encoder<'_, D>,
2011 offset: usize,
2012 depth: fidl::encoding::Depth,
2013 ) -> fidl::Result<()> {
2014 encoder.debug_check_bounds::<PrimaryClearPerformanceCountersRequest>(offset);
2015 self.0.encode(encoder, offset + 0, depth)?;
2019 Ok(())
2020 }
2021 }
2022
2023 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2024 for PrimaryClearPerformanceCountersRequest
2025 {
2026 #[inline(always)]
2027 fn new_empty() -> Self {
2028 Self { counters: fidl::new_empty!(fidl::encoding::Vector<u64, 64>, D) }
2029 }
2030
2031 #[inline]
2032 unsafe fn decode(
2033 &mut self,
2034 decoder: &mut fidl::encoding::Decoder<'_, D>,
2035 offset: usize,
2036 _depth: fidl::encoding::Depth,
2037 ) -> fidl::Result<()> {
2038 decoder.debug_check_bounds::<Self>(offset);
2039 fidl::decode!(fidl::encoding::Vector<u64, 64>, D, &mut self.counters, decoder, offset + 0, _depth)?;
2041 Ok(())
2042 }
2043 }
2044
2045 impl fidl::encoding::ValueTypeMarker for PrimaryCreateContextRequest {
2046 type Borrowed<'a> = &'a Self;
2047 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2048 value
2049 }
2050 }
2051
2052 unsafe impl fidl::encoding::TypeMarker for PrimaryCreateContextRequest {
2053 type Owned = Self;
2054
2055 #[inline(always)]
2056 fn inline_align(_context: fidl::encoding::Context) -> usize {
2057 4
2058 }
2059
2060 #[inline(always)]
2061 fn inline_size(_context: fidl::encoding::Context) -> usize {
2062 4
2063 }
2064 #[inline(always)]
2065 fn encode_is_copy() -> bool {
2066 true
2067 }
2068
2069 #[inline(always)]
2070 fn decode_is_copy() -> bool {
2071 true
2072 }
2073 }
2074
2075 unsafe impl<D: fidl::encoding::ResourceDialect>
2076 fidl::encoding::Encode<PrimaryCreateContextRequest, D> for &PrimaryCreateContextRequest
2077 {
2078 #[inline]
2079 unsafe fn encode(
2080 self,
2081 encoder: &mut fidl::encoding::Encoder<'_, D>,
2082 offset: usize,
2083 _depth: fidl::encoding::Depth,
2084 ) -> fidl::Result<()> {
2085 encoder.debug_check_bounds::<PrimaryCreateContextRequest>(offset);
2086 unsafe {
2087 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2089 (buf_ptr as *mut PrimaryCreateContextRequest)
2090 .write_unaligned((self as *const PrimaryCreateContextRequest).read());
2091 }
2094 Ok(())
2095 }
2096 }
2097 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
2098 fidl::encoding::Encode<PrimaryCreateContextRequest, D> for (T0,)
2099 {
2100 #[inline]
2101 unsafe fn encode(
2102 self,
2103 encoder: &mut fidl::encoding::Encoder<'_, D>,
2104 offset: usize,
2105 depth: fidl::encoding::Depth,
2106 ) -> fidl::Result<()> {
2107 encoder.debug_check_bounds::<PrimaryCreateContextRequest>(offset);
2108 self.0.encode(encoder, offset + 0, depth)?;
2112 Ok(())
2113 }
2114 }
2115
2116 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2117 for PrimaryCreateContextRequest
2118 {
2119 #[inline(always)]
2120 fn new_empty() -> Self {
2121 Self { context_id: fidl::new_empty!(u32, D) }
2122 }
2123
2124 #[inline]
2125 unsafe fn decode(
2126 &mut self,
2127 decoder: &mut fidl::encoding::Decoder<'_, D>,
2128 offset: usize,
2129 _depth: fidl::encoding::Depth,
2130 ) -> fidl::Result<()> {
2131 decoder.debug_check_bounds::<Self>(offset);
2132 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2133 unsafe {
2136 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2137 }
2138 Ok(())
2139 }
2140 }
2141
2142 impl fidl::encoding::ValueTypeMarker for PrimaryDestroyContextRequest {
2143 type Borrowed<'a> = &'a Self;
2144 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2145 value
2146 }
2147 }
2148
2149 unsafe impl fidl::encoding::TypeMarker for PrimaryDestroyContextRequest {
2150 type Owned = Self;
2151
2152 #[inline(always)]
2153 fn inline_align(_context: fidl::encoding::Context) -> usize {
2154 4
2155 }
2156
2157 #[inline(always)]
2158 fn inline_size(_context: fidl::encoding::Context) -> usize {
2159 4
2160 }
2161 #[inline(always)]
2162 fn encode_is_copy() -> bool {
2163 true
2164 }
2165
2166 #[inline(always)]
2167 fn decode_is_copy() -> bool {
2168 true
2169 }
2170 }
2171
2172 unsafe impl<D: fidl::encoding::ResourceDialect>
2173 fidl::encoding::Encode<PrimaryDestroyContextRequest, D> for &PrimaryDestroyContextRequest
2174 {
2175 #[inline]
2176 unsafe fn encode(
2177 self,
2178 encoder: &mut fidl::encoding::Encoder<'_, D>,
2179 offset: usize,
2180 _depth: fidl::encoding::Depth,
2181 ) -> fidl::Result<()> {
2182 encoder.debug_check_bounds::<PrimaryDestroyContextRequest>(offset);
2183 unsafe {
2184 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2186 (buf_ptr as *mut PrimaryDestroyContextRequest)
2187 .write_unaligned((self as *const PrimaryDestroyContextRequest).read());
2188 }
2191 Ok(())
2192 }
2193 }
2194 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
2195 fidl::encoding::Encode<PrimaryDestroyContextRequest, D> for (T0,)
2196 {
2197 #[inline]
2198 unsafe fn encode(
2199 self,
2200 encoder: &mut fidl::encoding::Encoder<'_, D>,
2201 offset: usize,
2202 depth: fidl::encoding::Depth,
2203 ) -> fidl::Result<()> {
2204 encoder.debug_check_bounds::<PrimaryDestroyContextRequest>(offset);
2205 self.0.encode(encoder, offset + 0, depth)?;
2209 Ok(())
2210 }
2211 }
2212
2213 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2214 for PrimaryDestroyContextRequest
2215 {
2216 #[inline(always)]
2217 fn new_empty() -> Self {
2218 Self { context_id: fidl::new_empty!(u32, D) }
2219 }
2220
2221 #[inline]
2222 unsafe fn decode(
2223 &mut self,
2224 decoder: &mut fidl::encoding::Decoder<'_, D>,
2225 offset: usize,
2226 _depth: fidl::encoding::Depth,
2227 ) -> fidl::Result<()> {
2228 decoder.debug_check_bounds::<Self>(offset);
2229 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2230 unsafe {
2233 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
2234 }
2235 Ok(())
2236 }
2237 }
2238
2239 impl fidl::encoding::ValueTypeMarker for PrimaryDumpPerformanceCountersRequest {
2240 type Borrowed<'a> = &'a Self;
2241 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2242 value
2243 }
2244 }
2245
2246 unsafe impl fidl::encoding::TypeMarker for PrimaryDumpPerformanceCountersRequest {
2247 type Owned = Self;
2248
2249 #[inline(always)]
2250 fn inline_align(_context: fidl::encoding::Context) -> usize {
2251 8
2252 }
2253
2254 #[inline(always)]
2255 fn inline_size(_context: fidl::encoding::Context) -> usize {
2256 16
2257 }
2258 }
2259
2260 unsafe impl<D: fidl::encoding::ResourceDialect>
2261 fidl::encoding::Encode<PrimaryDumpPerformanceCountersRequest, D>
2262 for &PrimaryDumpPerformanceCountersRequest
2263 {
2264 #[inline]
2265 unsafe fn encode(
2266 self,
2267 encoder: &mut fidl::encoding::Encoder<'_, D>,
2268 offset: usize,
2269 _depth: fidl::encoding::Depth,
2270 ) -> fidl::Result<()> {
2271 encoder.debug_check_bounds::<PrimaryDumpPerformanceCountersRequest>(offset);
2272 unsafe {
2273 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2275 (buf_ptr as *mut PrimaryDumpPerformanceCountersRequest)
2276 .write_unaligned((self as *const PrimaryDumpPerformanceCountersRequest).read());
2277 let padding_ptr = buf_ptr.offset(8) as *mut u64;
2280 let padding_mask = 0xffffffff00000000u64;
2281 padding_ptr.write_unaligned(padding_ptr.read_unaligned() & !padding_mask);
2282 }
2283 Ok(())
2284 }
2285 }
2286 unsafe impl<
2287 D: fidl::encoding::ResourceDialect,
2288 T0: fidl::encoding::Encode<u64, D>,
2289 T1: fidl::encoding::Encode<u32, D>,
2290 > fidl::encoding::Encode<PrimaryDumpPerformanceCountersRequest, D> for (T0, T1)
2291 {
2292 #[inline]
2293 unsafe fn encode(
2294 self,
2295 encoder: &mut fidl::encoding::Encoder<'_, D>,
2296 offset: usize,
2297 depth: fidl::encoding::Depth,
2298 ) -> fidl::Result<()> {
2299 encoder.debug_check_bounds::<PrimaryDumpPerformanceCountersRequest>(offset);
2300 unsafe {
2303 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
2304 (ptr as *mut u64).write_unaligned(0);
2305 }
2306 self.0.encode(encoder, offset + 0, depth)?;
2308 self.1.encode(encoder, offset + 8, depth)?;
2309 Ok(())
2310 }
2311 }
2312
2313 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2314 for PrimaryDumpPerformanceCountersRequest
2315 {
2316 #[inline(always)]
2317 fn new_empty() -> Self {
2318 Self { pool_id: fidl::new_empty!(u64, D), trigger_id: fidl::new_empty!(u32, D) }
2319 }
2320
2321 #[inline]
2322 unsafe fn decode(
2323 &mut self,
2324 decoder: &mut fidl::encoding::Decoder<'_, D>,
2325 offset: usize,
2326 _depth: fidl::encoding::Depth,
2327 ) -> fidl::Result<()> {
2328 decoder.debug_check_bounds::<Self>(offset);
2329 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2330 let ptr = unsafe { buf_ptr.offset(8) };
2332 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2333 let mask = 0xffffffff00000000u64;
2334 let maskedval = padval & mask;
2335 if maskedval != 0 {
2336 return Err(fidl::Error::NonZeroPadding {
2337 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
2338 });
2339 }
2340 unsafe {
2342 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
2343 }
2344 Ok(())
2345 }
2346 }
2347
2348 impl fidl::encoding::ValueTypeMarker for PrimaryEnablePerformanceCountersRequest {
2349 type Borrowed<'a> = &'a Self;
2350 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2351 value
2352 }
2353 }
2354
2355 unsafe impl fidl::encoding::TypeMarker for PrimaryEnablePerformanceCountersRequest {
2356 type Owned = Self;
2357
2358 #[inline(always)]
2359 fn inline_align(_context: fidl::encoding::Context) -> usize {
2360 8
2361 }
2362
2363 #[inline(always)]
2364 fn inline_size(_context: fidl::encoding::Context) -> usize {
2365 16
2366 }
2367 }
2368
2369 unsafe impl<D: fidl::encoding::ResourceDialect>
2370 fidl::encoding::Encode<PrimaryEnablePerformanceCountersRequest, D>
2371 for &PrimaryEnablePerformanceCountersRequest
2372 {
2373 #[inline]
2374 unsafe fn encode(
2375 self,
2376 encoder: &mut fidl::encoding::Encoder<'_, D>,
2377 offset: usize,
2378 _depth: fidl::encoding::Depth,
2379 ) -> fidl::Result<()> {
2380 encoder.debug_check_bounds::<PrimaryEnablePerformanceCountersRequest>(offset);
2381 fidl::encoding::Encode::<PrimaryEnablePerformanceCountersRequest, D>::encode(
2383 (<fidl::encoding::Vector<u64, 64> as fidl::encoding::ValueTypeMarker>::borrow(
2384 &self.counters,
2385 ),),
2386 encoder,
2387 offset,
2388 _depth,
2389 )
2390 }
2391 }
2392 unsafe impl<
2393 D: fidl::encoding::ResourceDialect,
2394 T0: fidl::encoding::Encode<fidl::encoding::Vector<u64, 64>, D>,
2395 > fidl::encoding::Encode<PrimaryEnablePerformanceCountersRequest, D> for (T0,)
2396 {
2397 #[inline]
2398 unsafe fn encode(
2399 self,
2400 encoder: &mut fidl::encoding::Encoder<'_, D>,
2401 offset: usize,
2402 depth: fidl::encoding::Depth,
2403 ) -> fidl::Result<()> {
2404 encoder.debug_check_bounds::<PrimaryEnablePerformanceCountersRequest>(offset);
2405 self.0.encode(encoder, offset + 0, depth)?;
2409 Ok(())
2410 }
2411 }
2412
2413 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2414 for PrimaryEnablePerformanceCountersRequest
2415 {
2416 #[inline(always)]
2417 fn new_empty() -> Self {
2418 Self { counters: fidl::new_empty!(fidl::encoding::Vector<u64, 64>, D) }
2419 }
2420
2421 #[inline]
2422 unsafe fn decode(
2423 &mut self,
2424 decoder: &mut fidl::encoding::Decoder<'_, D>,
2425 offset: usize,
2426 _depth: fidl::encoding::Depth,
2427 ) -> fidl::Result<()> {
2428 decoder.debug_check_bounds::<Self>(offset);
2429 fidl::decode!(fidl::encoding::Vector<u64, 64>, D, &mut self.counters, decoder, offset + 0, _depth)?;
2431 Ok(())
2432 }
2433 }
2434
2435 impl fidl::encoding::ValueTypeMarker for PrimaryExecuteCommandRequest {
2436 type Borrowed<'a> = &'a Self;
2437 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2438 value
2439 }
2440 }
2441
2442 unsafe impl fidl::encoding::TypeMarker for PrimaryExecuteCommandRequest {
2443 type Owned = Self;
2444
2445 #[inline(always)]
2446 fn inline_align(_context: fidl::encoding::Context) -> usize {
2447 8
2448 }
2449
2450 #[inline(always)]
2451 fn inline_size(_context: fidl::encoding::Context) -> usize {
2452 80
2453 }
2454 }
2455
2456 unsafe impl<D: fidl::encoding::ResourceDialect>
2457 fidl::encoding::Encode<PrimaryExecuteCommandRequest, D> for &PrimaryExecuteCommandRequest
2458 {
2459 #[inline]
2460 unsafe fn encode(
2461 self,
2462 encoder: &mut fidl::encoding::Encoder<'_, D>,
2463 offset: usize,
2464 _depth: fidl::encoding::Depth,
2465 ) -> fidl::Result<()> {
2466 encoder.debug_check_bounds::<PrimaryExecuteCommandRequest>(offset);
2467 fidl::encoding::Encode::<PrimaryExecuteCommandRequest, D>::encode(
2469 (
2470 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.context_id),
2471 <fidl::encoding::UnboundedVector<BufferRange> as fidl::encoding::ValueTypeMarker>::borrow(&self.resources),
2472 <fidl::encoding::UnboundedVector<CommandBuffer> as fidl::encoding::ValueTypeMarker>::borrow(&self.command_buffers),
2473 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.wait_semaphores),
2474 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.signal_semaphores),
2475 <CommandBufferFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.flags),
2476 ),
2477 encoder, offset, _depth
2478 )
2479 }
2480 }
2481 unsafe impl<
2482 D: fidl::encoding::ResourceDialect,
2483 T0: fidl::encoding::Encode<u32, D>,
2484 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<BufferRange>, D>,
2485 T2: fidl::encoding::Encode<fidl::encoding::UnboundedVector<CommandBuffer>, D>,
2486 T3: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2487 T4: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2488 T5: fidl::encoding::Encode<CommandBufferFlags, D>,
2489 > fidl::encoding::Encode<PrimaryExecuteCommandRequest, D> for (T0, T1, T2, T3, T4, T5)
2490 {
2491 #[inline]
2492 unsafe fn encode(
2493 self,
2494 encoder: &mut fidl::encoding::Encoder<'_, D>,
2495 offset: usize,
2496 depth: fidl::encoding::Depth,
2497 ) -> fidl::Result<()> {
2498 encoder.debug_check_bounds::<PrimaryExecuteCommandRequest>(offset);
2499 unsafe {
2502 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2503 (ptr as *mut u64).write_unaligned(0);
2504 }
2505 self.0.encode(encoder, offset + 0, depth)?;
2507 self.1.encode(encoder, offset + 8, depth)?;
2508 self.2.encode(encoder, offset + 24, depth)?;
2509 self.3.encode(encoder, offset + 40, depth)?;
2510 self.4.encode(encoder, offset + 56, depth)?;
2511 self.5.encode(encoder, offset + 72, depth)?;
2512 Ok(())
2513 }
2514 }
2515
2516 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2517 for PrimaryExecuteCommandRequest
2518 {
2519 #[inline(always)]
2520 fn new_empty() -> Self {
2521 Self {
2522 context_id: fidl::new_empty!(u32, D),
2523 resources: fidl::new_empty!(fidl::encoding::UnboundedVector<BufferRange>, D),
2524 command_buffers: fidl::new_empty!(
2525 fidl::encoding::UnboundedVector<CommandBuffer>,
2526 D
2527 ),
2528 wait_semaphores: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D),
2529 signal_semaphores: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D),
2530 flags: fidl::new_empty!(CommandBufferFlags, D),
2531 }
2532 }
2533
2534 #[inline]
2535 unsafe fn decode(
2536 &mut self,
2537 decoder: &mut fidl::encoding::Decoder<'_, D>,
2538 offset: usize,
2539 _depth: fidl::encoding::Depth,
2540 ) -> fidl::Result<()> {
2541 decoder.debug_check_bounds::<Self>(offset);
2542 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2544 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2545 let mask = 0xffffffff00000000u64;
2546 let maskedval = padval & mask;
2547 if maskedval != 0 {
2548 return Err(fidl::Error::NonZeroPadding {
2549 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2550 });
2551 }
2552 fidl::decode!(u32, D, &mut self.context_id, decoder, offset + 0, _depth)?;
2553 fidl::decode!(
2554 fidl::encoding::UnboundedVector<BufferRange>,
2555 D,
2556 &mut self.resources,
2557 decoder,
2558 offset + 8,
2559 _depth
2560 )?;
2561 fidl::decode!(
2562 fidl::encoding::UnboundedVector<CommandBuffer>,
2563 D,
2564 &mut self.command_buffers,
2565 decoder,
2566 offset + 24,
2567 _depth
2568 )?;
2569 fidl::decode!(
2570 fidl::encoding::UnboundedVector<u64>,
2571 D,
2572 &mut self.wait_semaphores,
2573 decoder,
2574 offset + 40,
2575 _depth
2576 )?;
2577 fidl::decode!(
2578 fidl::encoding::UnboundedVector<u64>,
2579 D,
2580 &mut self.signal_semaphores,
2581 decoder,
2582 offset + 56,
2583 _depth
2584 )?;
2585 fidl::decode!(CommandBufferFlags, D, &mut self.flags, decoder, offset + 72, _depth)?;
2586 Ok(())
2587 }
2588 }
2589
2590 impl fidl::encoding::ValueTypeMarker for PrimaryExecuteImmediateCommandsRequest {
2591 type Borrowed<'a> = &'a Self;
2592 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2593 value
2594 }
2595 }
2596
2597 unsafe impl fidl::encoding::TypeMarker for PrimaryExecuteImmediateCommandsRequest {
2598 type Owned = Self;
2599
2600 #[inline(always)]
2601 fn inline_align(_context: fidl::encoding::Context) -> usize {
2602 8
2603 }
2604
2605 #[inline(always)]
2606 fn inline_size(_context: fidl::encoding::Context) -> usize {
2607 40
2608 }
2609 }
2610
2611 unsafe impl<D: fidl::encoding::ResourceDialect>
2612 fidl::encoding::Encode<PrimaryExecuteImmediateCommandsRequest, D>
2613 for &PrimaryExecuteImmediateCommandsRequest
2614 {
2615 #[inline]
2616 unsafe fn encode(
2617 self,
2618 encoder: &mut fidl::encoding::Encoder<'_, D>,
2619 offset: usize,
2620 _depth: fidl::encoding::Depth,
2621 ) -> fidl::Result<()> {
2622 encoder.debug_check_bounds::<PrimaryExecuteImmediateCommandsRequest>(offset);
2623 fidl::encoding::Encode::<PrimaryExecuteImmediateCommandsRequest, D>::encode(
2625 (
2626 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.context_id),
2627 <fidl::encoding::Vector<u8, 2048> as fidl::encoding::ValueTypeMarker>::borrow(&self.command_data),
2628 <fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow(&self.semaphores),
2629 ),
2630 encoder, offset, _depth
2631 )
2632 }
2633 }
2634 unsafe impl<
2635 D: fidl::encoding::ResourceDialect,
2636 T0: fidl::encoding::Encode<u32, D>,
2637 T1: fidl::encoding::Encode<fidl::encoding::Vector<u8, 2048>, D>,
2638 T2: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u64>, D>,
2639 > fidl::encoding::Encode<PrimaryExecuteImmediateCommandsRequest, D> for (T0, T1, T2)
2640 {
2641 #[inline]
2642 unsafe fn encode(
2643 self,
2644 encoder: &mut fidl::encoding::Encoder<'_, D>,
2645 offset: usize,
2646 depth: fidl::encoding::Depth,
2647 ) -> fidl::Result<()> {
2648 encoder.debug_check_bounds::<PrimaryExecuteImmediateCommandsRequest>(offset);
2649 unsafe {
2652 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2653 (ptr as *mut u64).write_unaligned(0);
2654 }
2655 self.0.encode(encoder, offset + 0, depth)?;
2657 self.1.encode(encoder, offset + 8, depth)?;
2658 self.2.encode(encoder, offset + 24, depth)?;
2659 Ok(())
2660 }
2661 }
2662
2663 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2664 for PrimaryExecuteImmediateCommandsRequest
2665 {
2666 #[inline(always)]
2667 fn new_empty() -> Self {
2668 Self {
2669 context_id: fidl::new_empty!(u32, D),
2670 command_data: fidl::new_empty!(fidl::encoding::Vector<u8, 2048>, D),
2671 semaphores: fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D),
2672 }
2673 }
2674
2675 #[inline]
2676 unsafe fn decode(
2677 &mut self,
2678 decoder: &mut fidl::encoding::Decoder<'_, D>,
2679 offset: usize,
2680 _depth: fidl::encoding::Depth,
2681 ) -> fidl::Result<()> {
2682 decoder.debug_check_bounds::<Self>(offset);
2683 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2685 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2686 let mask = 0xffffffff00000000u64;
2687 let maskedval = padval & mask;
2688 if maskedval != 0 {
2689 return Err(fidl::Error::NonZeroPadding {
2690 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2691 });
2692 }
2693 fidl::decode!(u32, D, &mut self.context_id, decoder, offset + 0, _depth)?;
2694 fidl::decode!(fidl::encoding::Vector<u8, 2048>, D, &mut self.command_data, decoder, offset + 8, _depth)?;
2695 fidl::decode!(
2696 fidl::encoding::UnboundedVector<u64>,
2697 D,
2698 &mut self.semaphores,
2699 decoder,
2700 offset + 24,
2701 _depth
2702 )?;
2703 Ok(())
2704 }
2705 }
2706
2707 impl fidl::encoding::ValueTypeMarker for PrimaryExecuteInlineCommandsRequest {
2708 type Borrowed<'a> = &'a Self;
2709 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2710 value
2711 }
2712 }
2713
2714 unsafe impl fidl::encoding::TypeMarker for PrimaryExecuteInlineCommandsRequest {
2715 type Owned = Self;
2716
2717 #[inline(always)]
2718 fn inline_align(_context: fidl::encoding::Context) -> usize {
2719 8
2720 }
2721
2722 #[inline(always)]
2723 fn inline_size(_context: fidl::encoding::Context) -> usize {
2724 24
2725 }
2726 }
2727
2728 unsafe impl<D: fidl::encoding::ResourceDialect>
2729 fidl::encoding::Encode<PrimaryExecuteInlineCommandsRequest, D>
2730 for &PrimaryExecuteInlineCommandsRequest
2731 {
2732 #[inline]
2733 unsafe fn encode(
2734 self,
2735 encoder: &mut fidl::encoding::Encoder<'_, D>,
2736 offset: usize,
2737 _depth: fidl::encoding::Depth,
2738 ) -> fidl::Result<()> {
2739 encoder.debug_check_bounds::<PrimaryExecuteInlineCommandsRequest>(offset);
2740 fidl::encoding::Encode::<PrimaryExecuteInlineCommandsRequest, D>::encode(
2742 (
2743 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.context_id),
2744 <fidl::encoding::UnboundedVector<InlineCommand> as fidl::encoding::ValueTypeMarker>::borrow(&self.commands),
2745 ),
2746 encoder, offset, _depth
2747 )
2748 }
2749 }
2750 unsafe impl<
2751 D: fidl::encoding::ResourceDialect,
2752 T0: fidl::encoding::Encode<u32, D>,
2753 T1: fidl::encoding::Encode<fidl::encoding::UnboundedVector<InlineCommand>, D>,
2754 > fidl::encoding::Encode<PrimaryExecuteInlineCommandsRequest, D> for (T0, T1)
2755 {
2756 #[inline]
2757 unsafe fn encode(
2758 self,
2759 encoder: &mut fidl::encoding::Encoder<'_, D>,
2760 offset: usize,
2761 depth: fidl::encoding::Depth,
2762 ) -> fidl::Result<()> {
2763 encoder.debug_check_bounds::<PrimaryExecuteInlineCommandsRequest>(offset);
2764 unsafe {
2767 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2768 (ptr as *mut u64).write_unaligned(0);
2769 }
2770 self.0.encode(encoder, offset + 0, depth)?;
2772 self.1.encode(encoder, offset + 8, depth)?;
2773 Ok(())
2774 }
2775 }
2776
2777 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2778 for PrimaryExecuteInlineCommandsRequest
2779 {
2780 #[inline(always)]
2781 fn new_empty() -> Self {
2782 Self {
2783 context_id: fidl::new_empty!(u32, D),
2784 commands: fidl::new_empty!(fidl::encoding::UnboundedVector<InlineCommand>, D),
2785 }
2786 }
2787
2788 #[inline]
2789 unsafe fn decode(
2790 &mut self,
2791 decoder: &mut fidl::encoding::Decoder<'_, D>,
2792 offset: usize,
2793 _depth: fidl::encoding::Depth,
2794 ) -> fidl::Result<()> {
2795 decoder.debug_check_bounds::<Self>(offset);
2796 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2798 let padval = unsafe { (ptr as *const u64).read_unaligned() };
2799 let mask = 0xffffffff00000000u64;
2800 let maskedval = padval & mask;
2801 if maskedval != 0 {
2802 return Err(fidl::Error::NonZeroPadding {
2803 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2804 });
2805 }
2806 fidl::decode!(u32, D, &mut self.context_id, decoder, offset + 0, _depth)?;
2807 fidl::decode!(
2808 fidl::encoding::UnboundedVector<InlineCommand>,
2809 D,
2810 &mut self.commands,
2811 decoder,
2812 offset + 8,
2813 _depth
2814 )?;
2815 Ok(())
2816 }
2817 }
2818
2819 impl fidl::encoding::ValueTypeMarker for PrimaryIsPerformanceCounterAccessAllowedResponse {
2820 type Borrowed<'a> = &'a Self;
2821 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2822 value
2823 }
2824 }
2825
2826 unsafe impl fidl::encoding::TypeMarker for PrimaryIsPerformanceCounterAccessAllowedResponse {
2827 type Owned = Self;
2828
2829 #[inline(always)]
2830 fn inline_align(_context: fidl::encoding::Context) -> usize {
2831 1
2832 }
2833
2834 #[inline(always)]
2835 fn inline_size(_context: fidl::encoding::Context) -> usize {
2836 1
2837 }
2838 }
2839
2840 unsafe impl<D: fidl::encoding::ResourceDialect>
2841 fidl::encoding::Encode<PrimaryIsPerformanceCounterAccessAllowedResponse, D>
2842 for &PrimaryIsPerformanceCounterAccessAllowedResponse
2843 {
2844 #[inline]
2845 unsafe fn encode(
2846 self,
2847 encoder: &mut fidl::encoding::Encoder<'_, D>,
2848 offset: usize,
2849 _depth: fidl::encoding::Depth,
2850 ) -> fidl::Result<()> {
2851 encoder.debug_check_bounds::<PrimaryIsPerformanceCounterAccessAllowedResponse>(offset);
2852 fidl::encoding::Encode::<PrimaryIsPerformanceCounterAccessAllowedResponse, D>::encode(
2854 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
2855 encoder,
2856 offset,
2857 _depth,
2858 )
2859 }
2860 }
2861 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
2862 fidl::encoding::Encode<PrimaryIsPerformanceCounterAccessAllowedResponse, D> for (T0,)
2863 {
2864 #[inline]
2865 unsafe fn encode(
2866 self,
2867 encoder: &mut fidl::encoding::Encoder<'_, D>,
2868 offset: usize,
2869 depth: fidl::encoding::Depth,
2870 ) -> fidl::Result<()> {
2871 encoder.debug_check_bounds::<PrimaryIsPerformanceCounterAccessAllowedResponse>(offset);
2872 self.0.encode(encoder, offset + 0, depth)?;
2876 Ok(())
2877 }
2878 }
2879
2880 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2881 for PrimaryIsPerformanceCounterAccessAllowedResponse
2882 {
2883 #[inline(always)]
2884 fn new_empty() -> Self {
2885 Self { enabled: fidl::new_empty!(bool, D) }
2886 }
2887
2888 #[inline]
2889 unsafe fn decode(
2890 &mut self,
2891 decoder: &mut fidl::encoding::Decoder<'_, D>,
2892 offset: usize,
2893 _depth: fidl::encoding::Depth,
2894 ) -> fidl::Result<()> {
2895 decoder.debug_check_bounds::<Self>(offset);
2896 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
2898 Ok(())
2899 }
2900 }
2901
2902 impl fidl::encoding::ValueTypeMarker for PrimaryOnNotifyMemoryImportedRequest {
2903 type Borrowed<'a> = &'a Self;
2904 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2905 value
2906 }
2907 }
2908
2909 unsafe impl fidl::encoding::TypeMarker for PrimaryOnNotifyMemoryImportedRequest {
2910 type Owned = Self;
2911
2912 #[inline(always)]
2913 fn inline_align(_context: fidl::encoding::Context) -> usize {
2914 8
2915 }
2916
2917 #[inline(always)]
2918 fn inline_size(_context: fidl::encoding::Context) -> usize {
2919 8
2920 }
2921 #[inline(always)]
2922 fn encode_is_copy() -> bool {
2923 true
2924 }
2925
2926 #[inline(always)]
2927 fn decode_is_copy() -> bool {
2928 true
2929 }
2930 }
2931
2932 unsafe impl<D: fidl::encoding::ResourceDialect>
2933 fidl::encoding::Encode<PrimaryOnNotifyMemoryImportedRequest, D>
2934 for &PrimaryOnNotifyMemoryImportedRequest
2935 {
2936 #[inline]
2937 unsafe fn encode(
2938 self,
2939 encoder: &mut fidl::encoding::Encoder<'_, D>,
2940 offset: usize,
2941 _depth: fidl::encoding::Depth,
2942 ) -> fidl::Result<()> {
2943 encoder.debug_check_bounds::<PrimaryOnNotifyMemoryImportedRequest>(offset);
2944 unsafe {
2945 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
2947 (buf_ptr as *mut PrimaryOnNotifyMemoryImportedRequest)
2948 .write_unaligned((self as *const PrimaryOnNotifyMemoryImportedRequest).read());
2949 }
2952 Ok(())
2953 }
2954 }
2955 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
2956 fidl::encoding::Encode<PrimaryOnNotifyMemoryImportedRequest, D> for (T0,)
2957 {
2958 #[inline]
2959 unsafe fn encode(
2960 self,
2961 encoder: &mut fidl::encoding::Encoder<'_, D>,
2962 offset: usize,
2963 depth: fidl::encoding::Depth,
2964 ) -> fidl::Result<()> {
2965 encoder.debug_check_bounds::<PrimaryOnNotifyMemoryImportedRequest>(offset);
2966 self.0.encode(encoder, offset + 0, depth)?;
2970 Ok(())
2971 }
2972 }
2973
2974 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
2975 for PrimaryOnNotifyMemoryImportedRequest
2976 {
2977 #[inline(always)]
2978 fn new_empty() -> Self {
2979 Self { bytes: fidl::new_empty!(u64, D) }
2980 }
2981
2982 #[inline]
2983 unsafe fn decode(
2984 &mut self,
2985 decoder: &mut fidl::encoding::Decoder<'_, D>,
2986 offset: usize,
2987 _depth: fidl::encoding::Depth,
2988 ) -> fidl::Result<()> {
2989 decoder.debug_check_bounds::<Self>(offset);
2990 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
2991 unsafe {
2994 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
2995 }
2996 Ok(())
2997 }
2998 }
2999
3000 impl fidl::encoding::ValueTypeMarker for PrimaryOnNotifyMessagesConsumedRequest {
3001 type Borrowed<'a> = &'a Self;
3002 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3003 value
3004 }
3005 }
3006
3007 unsafe impl fidl::encoding::TypeMarker for PrimaryOnNotifyMessagesConsumedRequest {
3008 type Owned = Self;
3009
3010 #[inline(always)]
3011 fn inline_align(_context: fidl::encoding::Context) -> usize {
3012 8
3013 }
3014
3015 #[inline(always)]
3016 fn inline_size(_context: fidl::encoding::Context) -> usize {
3017 8
3018 }
3019 #[inline(always)]
3020 fn encode_is_copy() -> bool {
3021 true
3022 }
3023
3024 #[inline(always)]
3025 fn decode_is_copy() -> bool {
3026 true
3027 }
3028 }
3029
3030 unsafe impl<D: fidl::encoding::ResourceDialect>
3031 fidl::encoding::Encode<PrimaryOnNotifyMessagesConsumedRequest, D>
3032 for &PrimaryOnNotifyMessagesConsumedRequest
3033 {
3034 #[inline]
3035 unsafe fn encode(
3036 self,
3037 encoder: &mut fidl::encoding::Encoder<'_, D>,
3038 offset: usize,
3039 _depth: fidl::encoding::Depth,
3040 ) -> fidl::Result<()> {
3041 encoder.debug_check_bounds::<PrimaryOnNotifyMessagesConsumedRequest>(offset);
3042 unsafe {
3043 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3045 (buf_ptr as *mut PrimaryOnNotifyMessagesConsumedRequest).write_unaligned(
3046 (self as *const PrimaryOnNotifyMessagesConsumedRequest).read(),
3047 );
3048 }
3051 Ok(())
3052 }
3053 }
3054 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
3055 fidl::encoding::Encode<PrimaryOnNotifyMessagesConsumedRequest, D> for (T0,)
3056 {
3057 #[inline]
3058 unsafe fn encode(
3059 self,
3060 encoder: &mut fidl::encoding::Encoder<'_, D>,
3061 offset: usize,
3062 depth: fidl::encoding::Depth,
3063 ) -> fidl::Result<()> {
3064 encoder.debug_check_bounds::<PrimaryOnNotifyMessagesConsumedRequest>(offset);
3065 self.0.encode(encoder, offset + 0, depth)?;
3069 Ok(())
3070 }
3071 }
3072
3073 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3074 for PrimaryOnNotifyMessagesConsumedRequest
3075 {
3076 #[inline(always)]
3077 fn new_empty() -> Self {
3078 Self { count: fidl::new_empty!(u64, D) }
3079 }
3080
3081 #[inline]
3082 unsafe fn decode(
3083 &mut self,
3084 decoder: &mut fidl::encoding::Decoder<'_, D>,
3085 offset: usize,
3086 _depth: fidl::encoding::Depth,
3087 ) -> fidl::Result<()> {
3088 decoder.debug_check_bounds::<Self>(offset);
3089 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3090 unsafe {
3093 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3094 }
3095 Ok(())
3096 }
3097 }
3098
3099 impl fidl::encoding::ValueTypeMarker for PrimaryReleaseObjectRequest {
3100 type Borrowed<'a> = &'a Self;
3101 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3102 value
3103 }
3104 }
3105
3106 unsafe impl fidl::encoding::TypeMarker for PrimaryReleaseObjectRequest {
3107 type Owned = Self;
3108
3109 #[inline(always)]
3110 fn inline_align(_context: fidl::encoding::Context) -> usize {
3111 8
3112 }
3113
3114 #[inline(always)]
3115 fn inline_size(_context: fidl::encoding::Context) -> usize {
3116 16
3117 }
3118 }
3119
3120 unsafe impl<D: fidl::encoding::ResourceDialect>
3121 fidl::encoding::Encode<PrimaryReleaseObjectRequest, D> for &PrimaryReleaseObjectRequest
3122 {
3123 #[inline]
3124 unsafe fn encode(
3125 self,
3126 encoder: &mut fidl::encoding::Encoder<'_, D>,
3127 offset: usize,
3128 _depth: fidl::encoding::Depth,
3129 ) -> fidl::Result<()> {
3130 encoder.debug_check_bounds::<PrimaryReleaseObjectRequest>(offset);
3131 fidl::encoding::Encode::<PrimaryReleaseObjectRequest, D>::encode(
3133 (
3134 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.object_id),
3135 <ObjectType as fidl::encoding::ValueTypeMarker>::borrow(&self.object_type),
3136 ),
3137 encoder,
3138 offset,
3139 _depth,
3140 )
3141 }
3142 }
3143 unsafe impl<
3144 D: fidl::encoding::ResourceDialect,
3145 T0: fidl::encoding::Encode<u64, D>,
3146 T1: fidl::encoding::Encode<ObjectType, D>,
3147 > fidl::encoding::Encode<PrimaryReleaseObjectRequest, D> for (T0, T1)
3148 {
3149 #[inline]
3150 unsafe fn encode(
3151 self,
3152 encoder: &mut fidl::encoding::Encoder<'_, D>,
3153 offset: usize,
3154 depth: fidl::encoding::Depth,
3155 ) -> fidl::Result<()> {
3156 encoder.debug_check_bounds::<PrimaryReleaseObjectRequest>(offset);
3157 unsafe {
3160 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
3161 (ptr as *mut u64).write_unaligned(0);
3162 }
3163 self.0.encode(encoder, offset + 0, depth)?;
3165 self.1.encode(encoder, offset + 8, depth)?;
3166 Ok(())
3167 }
3168 }
3169
3170 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3171 for PrimaryReleaseObjectRequest
3172 {
3173 #[inline(always)]
3174 fn new_empty() -> Self {
3175 Self {
3176 object_id: fidl::new_empty!(u64, D),
3177 object_type: fidl::new_empty!(ObjectType, D),
3178 }
3179 }
3180
3181 #[inline]
3182 unsafe fn decode(
3183 &mut self,
3184 decoder: &mut fidl::encoding::Decoder<'_, D>,
3185 offset: usize,
3186 _depth: fidl::encoding::Depth,
3187 ) -> fidl::Result<()> {
3188 decoder.debug_check_bounds::<Self>(offset);
3189 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
3191 let padval = unsafe { (ptr as *const u64).read_unaligned() };
3192 let mask = 0xffffffff00000000u64;
3193 let maskedval = padval & mask;
3194 if maskedval != 0 {
3195 return Err(fidl::Error::NonZeroPadding {
3196 padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
3197 });
3198 }
3199 fidl::decode!(u64, D, &mut self.object_id, decoder, offset + 0, _depth)?;
3200 fidl::decode!(ObjectType, D, &mut self.object_type, decoder, offset + 8, _depth)?;
3201 Ok(())
3202 }
3203 }
3204
3205 impl fidl::encoding::ValueTypeMarker for PrimaryReleasePerformanceCounterBufferPoolRequest {
3206 type Borrowed<'a> = &'a Self;
3207 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3208 value
3209 }
3210 }
3211
3212 unsafe impl fidl::encoding::TypeMarker for PrimaryReleasePerformanceCounterBufferPoolRequest {
3213 type Owned = Self;
3214
3215 #[inline(always)]
3216 fn inline_align(_context: fidl::encoding::Context) -> usize {
3217 8
3218 }
3219
3220 #[inline(always)]
3221 fn inline_size(_context: fidl::encoding::Context) -> usize {
3222 8
3223 }
3224 #[inline(always)]
3225 fn encode_is_copy() -> bool {
3226 true
3227 }
3228
3229 #[inline(always)]
3230 fn decode_is_copy() -> bool {
3231 true
3232 }
3233 }
3234
3235 unsafe impl<D: fidl::encoding::ResourceDialect>
3236 fidl::encoding::Encode<PrimaryReleasePerformanceCounterBufferPoolRequest, D>
3237 for &PrimaryReleasePerformanceCounterBufferPoolRequest
3238 {
3239 #[inline]
3240 unsafe fn encode(
3241 self,
3242 encoder: &mut fidl::encoding::Encoder<'_, D>,
3243 offset: usize,
3244 _depth: fidl::encoding::Depth,
3245 ) -> fidl::Result<()> {
3246 encoder.debug_check_bounds::<PrimaryReleasePerformanceCounterBufferPoolRequest>(offset);
3247 unsafe {
3248 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3250 (buf_ptr as *mut PrimaryReleasePerformanceCounterBufferPoolRequest)
3251 .write_unaligned(
3252 (self as *const PrimaryReleasePerformanceCounterBufferPoolRequest).read(),
3253 );
3254 }
3257 Ok(())
3258 }
3259 }
3260 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u64, D>>
3261 fidl::encoding::Encode<PrimaryReleasePerformanceCounterBufferPoolRequest, D> for (T0,)
3262 {
3263 #[inline]
3264 unsafe fn encode(
3265 self,
3266 encoder: &mut fidl::encoding::Encoder<'_, D>,
3267 offset: usize,
3268 depth: fidl::encoding::Depth,
3269 ) -> fidl::Result<()> {
3270 encoder.debug_check_bounds::<PrimaryReleasePerformanceCounterBufferPoolRequest>(offset);
3271 self.0.encode(encoder, offset + 0, depth)?;
3275 Ok(())
3276 }
3277 }
3278
3279 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3280 for PrimaryReleasePerformanceCounterBufferPoolRequest
3281 {
3282 #[inline(always)]
3283 fn new_empty() -> Self {
3284 Self { pool_id: fidl::new_empty!(u64, D) }
3285 }
3286
3287 #[inline]
3288 unsafe fn decode(
3289 &mut self,
3290 decoder: &mut fidl::encoding::Decoder<'_, D>,
3291 offset: usize,
3292 _depth: fidl::encoding::Depth,
3293 ) -> fidl::Result<()> {
3294 decoder.debug_check_bounds::<Self>(offset);
3295 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3296 unsafe {
3299 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
3300 }
3301 Ok(())
3302 }
3303 }
3304
3305 impl fidl::encoding::ValueTypeMarker for PrimaryRemovePerformanceCounterBufferFromPoolRequest {
3306 type Borrowed<'a> = &'a Self;
3307 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3308 value
3309 }
3310 }
3311
3312 unsafe impl fidl::encoding::TypeMarker for PrimaryRemovePerformanceCounterBufferFromPoolRequest {
3313 type Owned = Self;
3314
3315 #[inline(always)]
3316 fn inline_align(_context: fidl::encoding::Context) -> usize {
3317 8
3318 }
3319
3320 #[inline(always)]
3321 fn inline_size(_context: fidl::encoding::Context) -> usize {
3322 16
3323 }
3324 #[inline(always)]
3325 fn encode_is_copy() -> bool {
3326 true
3327 }
3328
3329 #[inline(always)]
3330 fn decode_is_copy() -> bool {
3331 true
3332 }
3333 }
3334
3335 unsafe impl<D: fidl::encoding::ResourceDialect>
3336 fidl::encoding::Encode<PrimaryRemovePerformanceCounterBufferFromPoolRequest, D>
3337 for &PrimaryRemovePerformanceCounterBufferFromPoolRequest
3338 {
3339 #[inline]
3340 unsafe fn encode(
3341 self,
3342 encoder: &mut fidl::encoding::Encoder<'_, D>,
3343 offset: usize,
3344 _depth: fidl::encoding::Depth,
3345 ) -> fidl::Result<()> {
3346 encoder
3347 .debug_check_bounds::<PrimaryRemovePerformanceCounterBufferFromPoolRequest>(offset);
3348 unsafe {
3349 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3351 (buf_ptr as *mut PrimaryRemovePerformanceCounterBufferFromPoolRequest)
3352 .write_unaligned(
3353 (self as *const PrimaryRemovePerformanceCounterBufferFromPoolRequest)
3354 .read(),
3355 );
3356 }
3359 Ok(())
3360 }
3361 }
3362 unsafe impl<
3363 D: fidl::encoding::ResourceDialect,
3364 T0: fidl::encoding::Encode<u64, D>,
3365 T1: fidl::encoding::Encode<u64, D>,
3366 > fidl::encoding::Encode<PrimaryRemovePerformanceCounterBufferFromPoolRequest, D>
3367 for (T0, T1)
3368 {
3369 #[inline]
3370 unsafe fn encode(
3371 self,
3372 encoder: &mut fidl::encoding::Encoder<'_, D>,
3373 offset: usize,
3374 depth: fidl::encoding::Depth,
3375 ) -> fidl::Result<()> {
3376 encoder
3377 .debug_check_bounds::<PrimaryRemovePerformanceCounterBufferFromPoolRequest>(offset);
3378 self.0.encode(encoder, offset + 0, depth)?;
3382 self.1.encode(encoder, offset + 8, depth)?;
3383 Ok(())
3384 }
3385 }
3386
3387 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3388 for PrimaryRemovePerformanceCounterBufferFromPoolRequest
3389 {
3390 #[inline(always)]
3391 fn new_empty() -> Self {
3392 Self { pool_id: fidl::new_empty!(u64, D), buffer_id: fidl::new_empty!(u64, D) }
3393 }
3394
3395 #[inline]
3396 unsafe fn decode(
3397 &mut self,
3398 decoder: &mut fidl::encoding::Decoder<'_, D>,
3399 offset: usize,
3400 _depth: fidl::encoding::Depth,
3401 ) -> fidl::Result<()> {
3402 decoder.debug_check_bounds::<Self>(offset);
3403 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3404 unsafe {
3407 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 16);
3408 }
3409 Ok(())
3410 }
3411 }
3412
3413 impl fidl::encoding::ValueTypeMarker for TestDevice2GetUnitTestStatusResponse {
3414 type Borrowed<'a> = &'a Self;
3415 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3416 value
3417 }
3418 }
3419
3420 unsafe impl fidl::encoding::TypeMarker for TestDevice2GetUnitTestStatusResponse {
3421 type Owned = Self;
3422
3423 #[inline(always)]
3424 fn inline_align(_context: fidl::encoding::Context) -> usize {
3425 4
3426 }
3427
3428 #[inline(always)]
3429 fn inline_size(_context: fidl::encoding::Context) -> usize {
3430 4
3431 }
3432 #[inline(always)]
3433 fn encode_is_copy() -> bool {
3434 true
3435 }
3436
3437 #[inline(always)]
3438 fn decode_is_copy() -> bool {
3439 true
3440 }
3441 }
3442
3443 unsafe impl<D: fidl::encoding::ResourceDialect>
3444 fidl::encoding::Encode<TestDevice2GetUnitTestStatusResponse, D>
3445 for &TestDevice2GetUnitTestStatusResponse
3446 {
3447 #[inline]
3448 unsafe fn encode(
3449 self,
3450 encoder: &mut fidl::encoding::Encoder<'_, D>,
3451 offset: usize,
3452 _depth: fidl::encoding::Depth,
3453 ) -> fidl::Result<()> {
3454 encoder.debug_check_bounds::<TestDevice2GetUnitTestStatusResponse>(offset);
3455 unsafe {
3456 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3458 (buf_ptr as *mut TestDevice2GetUnitTestStatusResponse)
3459 .write_unaligned((self as *const TestDevice2GetUnitTestStatusResponse).read());
3460 }
3463 Ok(())
3464 }
3465 }
3466 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
3467 fidl::encoding::Encode<TestDevice2GetUnitTestStatusResponse, D> for (T0,)
3468 {
3469 #[inline]
3470 unsafe fn encode(
3471 self,
3472 encoder: &mut fidl::encoding::Encoder<'_, D>,
3473 offset: usize,
3474 depth: fidl::encoding::Depth,
3475 ) -> fidl::Result<()> {
3476 encoder.debug_check_bounds::<TestDevice2GetUnitTestStatusResponse>(offset);
3477 self.0.encode(encoder, offset + 0, depth)?;
3481 Ok(())
3482 }
3483 }
3484
3485 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3486 for TestDevice2GetUnitTestStatusResponse
3487 {
3488 #[inline(always)]
3489 fn new_empty() -> Self {
3490 Self { status: fidl::new_empty!(i32, D) }
3491 }
3492
3493 #[inline]
3494 unsafe fn decode(
3495 &mut self,
3496 decoder: &mut fidl::encoding::Decoder<'_, D>,
3497 offset: usize,
3498 _depth: fidl::encoding::Depth,
3499 ) -> fidl::Result<()> {
3500 decoder.debug_check_bounds::<Self>(offset);
3501 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3502 unsafe {
3505 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3506 }
3507 Ok(())
3508 }
3509 }
3510
3511 impl fidl::encoding::ValueTypeMarker for TestDeviceGetUnitTestStatusResponse {
3512 type Borrowed<'a> = &'a Self;
3513 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3514 value
3515 }
3516 }
3517
3518 unsafe impl fidl::encoding::TypeMarker for TestDeviceGetUnitTestStatusResponse {
3519 type Owned = Self;
3520
3521 #[inline(always)]
3522 fn inline_align(_context: fidl::encoding::Context) -> usize {
3523 4
3524 }
3525
3526 #[inline(always)]
3527 fn inline_size(_context: fidl::encoding::Context) -> usize {
3528 4
3529 }
3530 #[inline(always)]
3531 fn encode_is_copy() -> bool {
3532 true
3533 }
3534
3535 #[inline(always)]
3536 fn decode_is_copy() -> bool {
3537 true
3538 }
3539 }
3540
3541 unsafe impl<D: fidl::encoding::ResourceDialect>
3542 fidl::encoding::Encode<TestDeviceGetUnitTestStatusResponse, D>
3543 for &TestDeviceGetUnitTestStatusResponse
3544 {
3545 #[inline]
3546 unsafe fn encode(
3547 self,
3548 encoder: &mut fidl::encoding::Encoder<'_, D>,
3549 offset: usize,
3550 _depth: fidl::encoding::Depth,
3551 ) -> fidl::Result<()> {
3552 encoder.debug_check_bounds::<TestDeviceGetUnitTestStatusResponse>(offset);
3553 unsafe {
3554 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
3556 (buf_ptr as *mut TestDeviceGetUnitTestStatusResponse)
3557 .write_unaligned((self as *const TestDeviceGetUnitTestStatusResponse).read());
3558 }
3561 Ok(())
3562 }
3563 }
3564 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
3565 fidl::encoding::Encode<TestDeviceGetUnitTestStatusResponse, D> for (T0,)
3566 {
3567 #[inline]
3568 unsafe fn encode(
3569 self,
3570 encoder: &mut fidl::encoding::Encoder<'_, D>,
3571 offset: usize,
3572 depth: fidl::encoding::Depth,
3573 ) -> fidl::Result<()> {
3574 encoder.debug_check_bounds::<TestDeviceGetUnitTestStatusResponse>(offset);
3575 self.0.encode(encoder, offset + 0, depth)?;
3579 Ok(())
3580 }
3581 }
3582
3583 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3584 for TestDeviceGetUnitTestStatusResponse
3585 {
3586 #[inline(always)]
3587 fn new_empty() -> Self {
3588 Self { status: fidl::new_empty!(i32, D) }
3589 }
3590
3591 #[inline]
3592 unsafe fn decode(
3593 &mut self,
3594 decoder: &mut fidl::encoding::Decoder<'_, D>,
3595 offset: usize,
3596 _depth: fidl::encoding::Depth,
3597 ) -> fidl::Result<()> {
3598 decoder.debug_check_bounds::<Self>(offset);
3599 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
3600 unsafe {
3603 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
3604 }
3605 Ok(())
3606 }
3607 }
3608
3609 impl IcdInfo {
3610 #[inline(always)]
3611 fn max_ordinal_present(&self) -> u64 {
3612 if let Some(_) = self.flags {
3613 return 2;
3614 }
3615 if let Some(_) = self.component_url {
3616 return 1;
3617 }
3618 0
3619 }
3620 }
3621
3622 impl fidl::encoding::ValueTypeMarker for IcdInfo {
3623 type Borrowed<'a> = &'a Self;
3624 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3625 value
3626 }
3627 }
3628
3629 unsafe impl fidl::encoding::TypeMarker for IcdInfo {
3630 type Owned = Self;
3631
3632 #[inline(always)]
3633 fn inline_align(_context: fidl::encoding::Context) -> usize {
3634 8
3635 }
3636
3637 #[inline(always)]
3638 fn inline_size(_context: fidl::encoding::Context) -> usize {
3639 16
3640 }
3641 }
3642
3643 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<IcdInfo, D> for &IcdInfo {
3644 unsafe fn encode(
3645 self,
3646 encoder: &mut fidl::encoding::Encoder<'_, D>,
3647 offset: usize,
3648 mut depth: fidl::encoding::Depth,
3649 ) -> fidl::Result<()> {
3650 encoder.debug_check_bounds::<IcdInfo>(offset);
3651 let max_ordinal: u64 = self.max_ordinal_present();
3653 encoder.write_num(max_ordinal, offset);
3654 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3655 if max_ordinal == 0 {
3657 return Ok(());
3658 }
3659 depth.increment()?;
3660 let envelope_size = 8;
3661 let bytes_len = max_ordinal as usize * envelope_size;
3662 #[allow(unused_variables)]
3663 let offset = encoder.out_of_line_offset(bytes_len);
3664 let mut _prev_end_offset: usize = 0;
3665 if 1 > max_ordinal {
3666 return Ok(());
3667 }
3668
3669 let cur_offset: usize = (1 - 1) * envelope_size;
3672
3673 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3675
3676 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<4096>, D>(
3681 self.component_url.as_ref().map(<fidl::encoding::BoundedString<4096> as fidl::encoding::ValueTypeMarker>::borrow),
3682 encoder, offset + cur_offset, depth
3683 )?;
3684
3685 _prev_end_offset = cur_offset + envelope_size;
3686 if 2 > max_ordinal {
3687 return Ok(());
3688 }
3689
3690 let cur_offset: usize = (2 - 1) * envelope_size;
3693
3694 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3696
3697 fidl::encoding::encode_in_envelope_optional::<IcdFlags, D>(
3702 self.flags.as_ref().map(<IcdFlags as fidl::encoding::ValueTypeMarker>::borrow),
3703 encoder,
3704 offset + cur_offset,
3705 depth,
3706 )?;
3707
3708 _prev_end_offset = cur_offset + envelope_size;
3709
3710 Ok(())
3711 }
3712 }
3713
3714 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for IcdInfo {
3715 #[inline(always)]
3716 fn new_empty() -> Self {
3717 Self::default()
3718 }
3719
3720 unsafe fn decode(
3721 &mut self,
3722 decoder: &mut fidl::encoding::Decoder<'_, D>,
3723 offset: usize,
3724 mut depth: fidl::encoding::Depth,
3725 ) -> fidl::Result<()> {
3726 decoder.debug_check_bounds::<Self>(offset);
3727 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3728 None => return Err(fidl::Error::NotNullable),
3729 Some(len) => len,
3730 };
3731 if len == 0 {
3733 return Ok(());
3734 };
3735 depth.increment()?;
3736 let envelope_size = 8;
3737 let bytes_len = len * envelope_size;
3738 let offset = decoder.out_of_line_offset(bytes_len)?;
3739 let mut _next_ordinal_to_read = 0;
3741 let mut next_offset = offset;
3742 let end_offset = offset + bytes_len;
3743 _next_ordinal_to_read += 1;
3744 if next_offset >= end_offset {
3745 return Ok(());
3746 }
3747
3748 while _next_ordinal_to_read < 1 {
3750 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3751 _next_ordinal_to_read += 1;
3752 next_offset += envelope_size;
3753 }
3754
3755 let next_out_of_line = decoder.next_out_of_line();
3756 let handles_before = decoder.remaining_handles();
3757 if let Some((inlined, num_bytes, num_handles)) =
3758 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3759 {
3760 let member_inline_size = <fidl::encoding::BoundedString<4096> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3761 if inlined != (member_inline_size <= 4) {
3762 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3763 }
3764 let inner_offset;
3765 let mut inner_depth = depth.clone();
3766 if inlined {
3767 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3768 inner_offset = next_offset;
3769 } else {
3770 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3771 inner_depth.increment()?;
3772 }
3773 let val_ref = self.component_url.get_or_insert_with(|| {
3774 fidl::new_empty!(fidl::encoding::BoundedString<4096>, D)
3775 });
3776 fidl::decode!(
3777 fidl::encoding::BoundedString<4096>,
3778 D,
3779 val_ref,
3780 decoder,
3781 inner_offset,
3782 inner_depth
3783 )?;
3784 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3785 {
3786 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3787 }
3788 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3789 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3790 }
3791 }
3792
3793 next_offset += envelope_size;
3794 _next_ordinal_to_read += 1;
3795 if next_offset >= end_offset {
3796 return Ok(());
3797 }
3798
3799 while _next_ordinal_to_read < 2 {
3801 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3802 _next_ordinal_to_read += 1;
3803 next_offset += envelope_size;
3804 }
3805
3806 let next_out_of_line = decoder.next_out_of_line();
3807 let handles_before = decoder.remaining_handles();
3808 if let Some((inlined, num_bytes, num_handles)) =
3809 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3810 {
3811 let member_inline_size =
3812 <IcdFlags as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3813 if inlined != (member_inline_size <= 4) {
3814 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3815 }
3816 let inner_offset;
3817 let mut inner_depth = depth.clone();
3818 if inlined {
3819 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3820 inner_offset = next_offset;
3821 } else {
3822 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3823 inner_depth.increment()?;
3824 }
3825 let val_ref = self.flags.get_or_insert_with(|| fidl::new_empty!(IcdFlags, D));
3826 fidl::decode!(IcdFlags, D, val_ref, decoder, inner_offset, inner_depth)?;
3827 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3828 {
3829 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3830 }
3831 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3832 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3833 }
3834 }
3835
3836 next_offset += envelope_size;
3837
3838 while next_offset < end_offset {
3840 _next_ordinal_to_read += 1;
3841 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3842 next_offset += envelope_size;
3843 }
3844
3845 Ok(())
3846 }
3847 }
3848
3849 impl InlineCommand {
3850 #[inline(always)]
3851 fn max_ordinal_present(&self) -> u64 {
3852 if let Some(_) = self.semaphores {
3853 return 2;
3854 }
3855 if let Some(_) = self.data {
3856 return 1;
3857 }
3858 0
3859 }
3860 }
3861
3862 impl fidl::encoding::ValueTypeMarker for InlineCommand {
3863 type Borrowed<'a> = &'a Self;
3864 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3865 value
3866 }
3867 }
3868
3869 unsafe impl fidl::encoding::TypeMarker for InlineCommand {
3870 type Owned = Self;
3871
3872 #[inline(always)]
3873 fn inline_align(_context: fidl::encoding::Context) -> usize {
3874 8
3875 }
3876
3877 #[inline(always)]
3878 fn inline_size(_context: fidl::encoding::Context) -> usize {
3879 16
3880 }
3881 }
3882
3883 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<InlineCommand, D>
3884 for &InlineCommand
3885 {
3886 unsafe fn encode(
3887 self,
3888 encoder: &mut fidl::encoding::Encoder<'_, D>,
3889 offset: usize,
3890 mut depth: fidl::encoding::Depth,
3891 ) -> fidl::Result<()> {
3892 encoder.debug_check_bounds::<InlineCommand>(offset);
3893 let max_ordinal: u64 = self.max_ordinal_present();
3895 encoder.write_num(max_ordinal, offset);
3896 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3897 if max_ordinal == 0 {
3899 return Ok(());
3900 }
3901 depth.increment()?;
3902 let envelope_size = 8;
3903 let bytes_len = max_ordinal as usize * envelope_size;
3904 #[allow(unused_variables)]
3905 let offset = encoder.out_of_line_offset(bytes_len);
3906 let mut _prev_end_offset: usize = 0;
3907 if 1 > max_ordinal {
3908 return Ok(());
3909 }
3910
3911 let cur_offset: usize = (1 - 1) * envelope_size;
3914
3915 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3917
3918 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u8>, D>(
3923 self.data.as_ref().map(<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow),
3924 encoder, offset + cur_offset, depth
3925 )?;
3926
3927 _prev_end_offset = cur_offset + envelope_size;
3928 if 2 > max_ordinal {
3929 return Ok(());
3930 }
3931
3932 let cur_offset: usize = (2 - 1) * envelope_size;
3935
3936 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3938
3939 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<u64>, D>(
3944 self.semaphores.as_ref().map(<fidl::encoding::UnboundedVector<u64> as fidl::encoding::ValueTypeMarker>::borrow),
3945 encoder, offset + cur_offset, depth
3946 )?;
3947
3948 _prev_end_offset = cur_offset + envelope_size;
3949
3950 Ok(())
3951 }
3952 }
3953
3954 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for InlineCommand {
3955 #[inline(always)]
3956 fn new_empty() -> Self {
3957 Self::default()
3958 }
3959
3960 unsafe fn decode(
3961 &mut self,
3962 decoder: &mut fidl::encoding::Decoder<'_, D>,
3963 offset: usize,
3964 mut depth: fidl::encoding::Depth,
3965 ) -> fidl::Result<()> {
3966 decoder.debug_check_bounds::<Self>(offset);
3967 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3968 None => return Err(fidl::Error::NotNullable),
3969 Some(len) => len,
3970 };
3971 if len == 0 {
3973 return Ok(());
3974 };
3975 depth.increment()?;
3976 let envelope_size = 8;
3977 let bytes_len = len * envelope_size;
3978 let offset = decoder.out_of_line_offset(bytes_len)?;
3979 let mut _next_ordinal_to_read = 0;
3981 let mut next_offset = offset;
3982 let end_offset = offset + bytes_len;
3983 _next_ordinal_to_read += 1;
3984 if next_offset >= end_offset {
3985 return Ok(());
3986 }
3987
3988 while _next_ordinal_to_read < 1 {
3990 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3991 _next_ordinal_to_read += 1;
3992 next_offset += envelope_size;
3993 }
3994
3995 let next_out_of_line = decoder.next_out_of_line();
3996 let handles_before = decoder.remaining_handles();
3997 if let Some((inlined, num_bytes, num_handles)) =
3998 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3999 {
4000 let member_inline_size = <fidl::encoding::UnboundedVector<u8> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4001 if inlined != (member_inline_size <= 4) {
4002 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4003 }
4004 let inner_offset;
4005 let mut inner_depth = depth.clone();
4006 if inlined {
4007 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4008 inner_offset = next_offset;
4009 } else {
4010 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4011 inner_depth.increment()?;
4012 }
4013 let val_ref = self.data.get_or_insert_with(|| {
4014 fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D)
4015 });
4016 fidl::decode!(
4017 fidl::encoding::UnboundedVector<u8>,
4018 D,
4019 val_ref,
4020 decoder,
4021 inner_offset,
4022 inner_depth
4023 )?;
4024 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4025 {
4026 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4027 }
4028 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4029 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4030 }
4031 }
4032
4033 next_offset += envelope_size;
4034 _next_ordinal_to_read += 1;
4035 if next_offset >= end_offset {
4036 return Ok(());
4037 }
4038
4039 while _next_ordinal_to_read < 2 {
4041 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4042 _next_ordinal_to_read += 1;
4043 next_offset += envelope_size;
4044 }
4045
4046 let next_out_of_line = decoder.next_out_of_line();
4047 let handles_before = decoder.remaining_handles();
4048 if let Some((inlined, num_bytes, num_handles)) =
4049 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4050 {
4051 let member_inline_size = <fidl::encoding::UnboundedVector<u64> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4052 if inlined != (member_inline_size <= 4) {
4053 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4054 }
4055 let inner_offset;
4056 let mut inner_depth = depth.clone();
4057 if inlined {
4058 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4059 inner_offset = next_offset;
4060 } else {
4061 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4062 inner_depth.increment()?;
4063 }
4064 let val_ref = self.semaphores.get_or_insert_with(|| {
4065 fidl::new_empty!(fidl::encoding::UnboundedVector<u64>, D)
4066 });
4067 fidl::decode!(
4068 fidl::encoding::UnboundedVector<u64>,
4069 D,
4070 val_ref,
4071 decoder,
4072 inner_offset,
4073 inner_depth
4074 )?;
4075 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4076 {
4077 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4078 }
4079 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4080 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4081 }
4082 }
4083
4084 next_offset += envelope_size;
4085
4086 while next_offset < end_offset {
4088 _next_ordinal_to_read += 1;
4089 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4090 next_offset += envelope_size;
4091 }
4092
4093 Ok(())
4094 }
4095 }
4096
4097 impl PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest {
4098 #[inline(always)]
4099 fn max_ordinal_present(&self) -> u64 {
4100 if let Some(_) = self.flags {
4101 return 5;
4102 }
4103 if let Some(_) = self.timestamp {
4104 return 4;
4105 }
4106 if let Some(_) = self.buffer_offset {
4107 return 3;
4108 }
4109 if let Some(_) = self.buffer_id {
4110 return 2;
4111 }
4112 if let Some(_) = self.trigger_id {
4113 return 1;
4114 }
4115 0
4116 }
4117 }
4118
4119 impl fidl::encoding::ValueTypeMarker
4120 for PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest
4121 {
4122 type Borrowed<'a> = &'a Self;
4123 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4124 value
4125 }
4126 }
4127
4128 unsafe impl fidl::encoding::TypeMarker
4129 for PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest
4130 {
4131 type Owned = Self;
4132
4133 #[inline(always)]
4134 fn inline_align(_context: fidl::encoding::Context) -> usize {
4135 8
4136 }
4137
4138 #[inline(always)]
4139 fn inline_size(_context: fidl::encoding::Context) -> usize {
4140 16
4141 }
4142 }
4143
4144 unsafe impl<D: fidl::encoding::ResourceDialect>
4145 fidl::encoding::Encode<PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest, D>
4146 for &PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest
4147 {
4148 unsafe fn encode(
4149 self,
4150 encoder: &mut fidl::encoding::Encoder<'_, D>,
4151 offset: usize,
4152 mut depth: fidl::encoding::Depth,
4153 ) -> fidl::Result<()> {
4154 encoder.debug_check_bounds::<PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest>(offset);
4155 let max_ordinal: u64 = self.max_ordinal_present();
4157 encoder.write_num(max_ordinal, offset);
4158 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4159 if max_ordinal == 0 {
4161 return Ok(());
4162 }
4163 depth.increment()?;
4164 let envelope_size = 8;
4165 let bytes_len = max_ordinal as usize * envelope_size;
4166 #[allow(unused_variables)]
4167 let offset = encoder.out_of_line_offset(bytes_len);
4168 let mut _prev_end_offset: usize = 0;
4169 if 1 > max_ordinal {
4170 return Ok(());
4171 }
4172
4173 let cur_offset: usize = (1 - 1) * envelope_size;
4176
4177 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4179
4180 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4185 self.trigger_id.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4186 encoder,
4187 offset + cur_offset,
4188 depth,
4189 )?;
4190
4191 _prev_end_offset = cur_offset + envelope_size;
4192 if 2 > max_ordinal {
4193 return Ok(());
4194 }
4195
4196 let cur_offset: usize = (2 - 1) * envelope_size;
4199
4200 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4202
4203 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4208 self.buffer_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4209 encoder,
4210 offset + cur_offset,
4211 depth,
4212 )?;
4213
4214 _prev_end_offset = cur_offset + envelope_size;
4215 if 3 > max_ordinal {
4216 return Ok(());
4217 }
4218
4219 let cur_offset: usize = (3 - 1) * envelope_size;
4222
4223 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4225
4226 fidl::encoding::encode_in_envelope_optional::<u32, D>(
4231 self.buffer_offset.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
4232 encoder,
4233 offset + cur_offset,
4234 depth,
4235 )?;
4236
4237 _prev_end_offset = cur_offset + envelope_size;
4238 if 4 > max_ordinal {
4239 return Ok(());
4240 }
4241
4242 let cur_offset: usize = (4 - 1) * envelope_size;
4245
4246 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4248
4249 fidl::encoding::encode_in_envelope_optional::<i64, D>(
4254 self.timestamp.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
4255 encoder,
4256 offset + cur_offset,
4257 depth,
4258 )?;
4259
4260 _prev_end_offset = cur_offset + envelope_size;
4261 if 5 > max_ordinal {
4262 return Ok(());
4263 }
4264
4265 let cur_offset: usize = (5 - 1) * envelope_size;
4268
4269 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4271
4272 fidl::encoding::encode_in_envelope_optional::<ResultFlags, D>(
4277 self.flags.as_ref().map(<ResultFlags as fidl::encoding::ValueTypeMarker>::borrow),
4278 encoder,
4279 offset + cur_offset,
4280 depth,
4281 )?;
4282
4283 _prev_end_offset = cur_offset + envelope_size;
4284
4285 Ok(())
4286 }
4287 }
4288
4289 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4290 for PerformanceCounterEventsOnPerformanceCounterReadCompletedRequest
4291 {
4292 #[inline(always)]
4293 fn new_empty() -> Self {
4294 Self::default()
4295 }
4296
4297 unsafe fn decode(
4298 &mut self,
4299 decoder: &mut fidl::encoding::Decoder<'_, D>,
4300 offset: usize,
4301 mut depth: fidl::encoding::Depth,
4302 ) -> fidl::Result<()> {
4303 decoder.debug_check_bounds::<Self>(offset);
4304 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4305 None => return Err(fidl::Error::NotNullable),
4306 Some(len) => len,
4307 };
4308 if len == 0 {
4310 return Ok(());
4311 };
4312 depth.increment()?;
4313 let envelope_size = 8;
4314 let bytes_len = len * envelope_size;
4315 let offset = decoder.out_of_line_offset(bytes_len)?;
4316 let mut _next_ordinal_to_read = 0;
4318 let mut next_offset = offset;
4319 let end_offset = offset + bytes_len;
4320 _next_ordinal_to_read += 1;
4321 if next_offset >= end_offset {
4322 return Ok(());
4323 }
4324
4325 while _next_ordinal_to_read < 1 {
4327 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4328 _next_ordinal_to_read += 1;
4329 next_offset += envelope_size;
4330 }
4331
4332 let next_out_of_line = decoder.next_out_of_line();
4333 let handles_before = decoder.remaining_handles();
4334 if let Some((inlined, num_bytes, num_handles)) =
4335 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4336 {
4337 let member_inline_size =
4338 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4339 if inlined != (member_inline_size <= 4) {
4340 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4341 }
4342 let inner_offset;
4343 let mut inner_depth = depth.clone();
4344 if inlined {
4345 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4346 inner_offset = next_offset;
4347 } else {
4348 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4349 inner_depth.increment()?;
4350 }
4351 let val_ref = self.trigger_id.get_or_insert_with(|| fidl::new_empty!(u32, D));
4352 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4353 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4354 {
4355 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4356 }
4357 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4358 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4359 }
4360 }
4361
4362 next_offset += envelope_size;
4363 _next_ordinal_to_read += 1;
4364 if next_offset >= end_offset {
4365 return Ok(());
4366 }
4367
4368 while _next_ordinal_to_read < 2 {
4370 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4371 _next_ordinal_to_read += 1;
4372 next_offset += envelope_size;
4373 }
4374
4375 let next_out_of_line = decoder.next_out_of_line();
4376 let handles_before = decoder.remaining_handles();
4377 if let Some((inlined, num_bytes, num_handles)) =
4378 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4379 {
4380 let member_inline_size =
4381 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4382 if inlined != (member_inline_size <= 4) {
4383 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4384 }
4385 let inner_offset;
4386 let mut inner_depth = depth.clone();
4387 if inlined {
4388 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4389 inner_offset = next_offset;
4390 } else {
4391 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4392 inner_depth.increment()?;
4393 }
4394 let val_ref = self.buffer_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
4395 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4396 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4397 {
4398 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4399 }
4400 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4401 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4402 }
4403 }
4404
4405 next_offset += envelope_size;
4406 _next_ordinal_to_read += 1;
4407 if next_offset >= end_offset {
4408 return Ok(());
4409 }
4410
4411 while _next_ordinal_to_read < 3 {
4413 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4414 _next_ordinal_to_read += 1;
4415 next_offset += envelope_size;
4416 }
4417
4418 let next_out_of_line = decoder.next_out_of_line();
4419 let handles_before = decoder.remaining_handles();
4420 if let Some((inlined, num_bytes, num_handles)) =
4421 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4422 {
4423 let member_inline_size =
4424 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4425 if inlined != (member_inline_size <= 4) {
4426 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4427 }
4428 let inner_offset;
4429 let mut inner_depth = depth.clone();
4430 if inlined {
4431 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4432 inner_offset = next_offset;
4433 } else {
4434 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4435 inner_depth.increment()?;
4436 }
4437 let val_ref = self.buffer_offset.get_or_insert_with(|| fidl::new_empty!(u32, D));
4438 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
4439 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4440 {
4441 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4442 }
4443 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4444 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4445 }
4446 }
4447
4448 next_offset += envelope_size;
4449 _next_ordinal_to_read += 1;
4450 if next_offset >= end_offset {
4451 return Ok(());
4452 }
4453
4454 while _next_ordinal_to_read < 4 {
4456 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4457 _next_ordinal_to_read += 1;
4458 next_offset += envelope_size;
4459 }
4460
4461 let next_out_of_line = decoder.next_out_of_line();
4462 let handles_before = decoder.remaining_handles();
4463 if let Some((inlined, num_bytes, num_handles)) =
4464 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4465 {
4466 let member_inline_size =
4467 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4468 if inlined != (member_inline_size <= 4) {
4469 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4470 }
4471 let inner_offset;
4472 let mut inner_depth = depth.clone();
4473 if inlined {
4474 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4475 inner_offset = next_offset;
4476 } else {
4477 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4478 inner_depth.increment()?;
4479 }
4480 let val_ref = self.timestamp.get_or_insert_with(|| fidl::new_empty!(i64, D));
4481 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
4482 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4483 {
4484 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4485 }
4486 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4487 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4488 }
4489 }
4490
4491 next_offset += envelope_size;
4492 _next_ordinal_to_read += 1;
4493 if next_offset >= end_offset {
4494 return Ok(());
4495 }
4496
4497 while _next_ordinal_to_read < 5 {
4499 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4500 _next_ordinal_to_read += 1;
4501 next_offset += envelope_size;
4502 }
4503
4504 let next_out_of_line = decoder.next_out_of_line();
4505 let handles_before = decoder.remaining_handles();
4506 if let Some((inlined, num_bytes, num_handles)) =
4507 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4508 {
4509 let member_inline_size =
4510 <ResultFlags as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4511 if inlined != (member_inline_size <= 4) {
4512 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4513 }
4514 let inner_offset;
4515 let mut inner_depth = depth.clone();
4516 if inlined {
4517 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4518 inner_offset = next_offset;
4519 } else {
4520 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4521 inner_depth.increment()?;
4522 }
4523 let val_ref = self.flags.get_or_insert_with(|| fidl::new_empty!(ResultFlags, D));
4524 fidl::decode!(ResultFlags, D, val_ref, decoder, inner_offset, inner_depth)?;
4525 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4526 {
4527 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4528 }
4529 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4530 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4531 }
4532 }
4533
4534 next_offset += envelope_size;
4535
4536 while next_offset < end_offset {
4538 _next_ordinal_to_read += 1;
4539 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4540 next_offset += envelope_size;
4541 }
4542
4543 Ok(())
4544 }
4545 }
4546
4547 impl PowerElementProviderGetClockSpeedLevelRequest {
4548 #[inline(always)]
4549 fn max_ordinal_present(&self) -> u64 {
4550 if let Some(_) = self.allow_max {
4551 return 2;
4552 }
4553 if let Some(_) = self.hz {
4554 return 1;
4555 }
4556 0
4557 }
4558 }
4559
4560 impl fidl::encoding::ValueTypeMarker for PowerElementProviderGetClockSpeedLevelRequest {
4561 type Borrowed<'a> = &'a Self;
4562 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4563 value
4564 }
4565 }
4566
4567 unsafe impl fidl::encoding::TypeMarker for PowerElementProviderGetClockSpeedLevelRequest {
4568 type Owned = Self;
4569
4570 #[inline(always)]
4571 fn inline_align(_context: fidl::encoding::Context) -> usize {
4572 8
4573 }
4574
4575 #[inline(always)]
4576 fn inline_size(_context: fidl::encoding::Context) -> usize {
4577 16
4578 }
4579 }
4580
4581 unsafe impl<D: fidl::encoding::ResourceDialect>
4582 fidl::encoding::Encode<PowerElementProviderGetClockSpeedLevelRequest, D>
4583 for &PowerElementProviderGetClockSpeedLevelRequest
4584 {
4585 unsafe fn encode(
4586 self,
4587 encoder: &mut fidl::encoding::Encoder<'_, D>,
4588 offset: usize,
4589 mut depth: fidl::encoding::Depth,
4590 ) -> fidl::Result<()> {
4591 encoder.debug_check_bounds::<PowerElementProviderGetClockSpeedLevelRequest>(offset);
4592 let max_ordinal: u64 = self.max_ordinal_present();
4594 encoder.write_num(max_ordinal, offset);
4595 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4596 if max_ordinal == 0 {
4598 return Ok(());
4599 }
4600 depth.increment()?;
4601 let envelope_size = 8;
4602 let bytes_len = max_ordinal as usize * envelope_size;
4603 #[allow(unused_variables)]
4604 let offset = encoder.out_of_line_offset(bytes_len);
4605 let mut _prev_end_offset: usize = 0;
4606 if 1 > max_ordinal {
4607 return Ok(());
4608 }
4609
4610 let cur_offset: usize = (1 - 1) * envelope_size;
4613
4614 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4616
4617 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4622 self.hz.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4623 encoder,
4624 offset + cur_offset,
4625 depth,
4626 )?;
4627
4628 _prev_end_offset = cur_offset + envelope_size;
4629 if 2 > max_ordinal {
4630 return Ok(());
4631 }
4632
4633 let cur_offset: usize = (2 - 1) * envelope_size;
4636
4637 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4639
4640 fidl::encoding::encode_in_envelope_optional::<bool, D>(
4645 self.allow_max.as_ref().map(<bool as fidl::encoding::ValueTypeMarker>::borrow),
4646 encoder,
4647 offset + cur_offset,
4648 depth,
4649 )?;
4650
4651 _prev_end_offset = cur_offset + envelope_size;
4652
4653 Ok(())
4654 }
4655 }
4656
4657 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4658 for PowerElementProviderGetClockSpeedLevelRequest
4659 {
4660 #[inline(always)]
4661 fn new_empty() -> Self {
4662 Self::default()
4663 }
4664
4665 unsafe fn decode(
4666 &mut self,
4667 decoder: &mut fidl::encoding::Decoder<'_, D>,
4668 offset: usize,
4669 mut depth: fidl::encoding::Depth,
4670 ) -> fidl::Result<()> {
4671 decoder.debug_check_bounds::<Self>(offset);
4672 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4673 None => return Err(fidl::Error::NotNullable),
4674 Some(len) => len,
4675 };
4676 if len == 0 {
4678 return Ok(());
4679 };
4680 depth.increment()?;
4681 let envelope_size = 8;
4682 let bytes_len = len * envelope_size;
4683 let offset = decoder.out_of_line_offset(bytes_len)?;
4684 let mut _next_ordinal_to_read = 0;
4686 let mut next_offset = offset;
4687 let end_offset = offset + bytes_len;
4688 _next_ordinal_to_read += 1;
4689 if next_offset >= end_offset {
4690 return Ok(());
4691 }
4692
4693 while _next_ordinal_to_read < 1 {
4695 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4696 _next_ordinal_to_read += 1;
4697 next_offset += envelope_size;
4698 }
4699
4700 let next_out_of_line = decoder.next_out_of_line();
4701 let handles_before = decoder.remaining_handles();
4702 if let Some((inlined, num_bytes, num_handles)) =
4703 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4704 {
4705 let member_inline_size =
4706 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4707 if inlined != (member_inline_size <= 4) {
4708 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4709 }
4710 let inner_offset;
4711 let mut inner_depth = depth.clone();
4712 if inlined {
4713 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4714 inner_offset = next_offset;
4715 } else {
4716 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4717 inner_depth.increment()?;
4718 }
4719 let val_ref = self.hz.get_or_insert_with(|| fidl::new_empty!(u64, D));
4720 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4721 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4722 {
4723 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4724 }
4725 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4726 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4727 }
4728 }
4729
4730 next_offset += envelope_size;
4731 _next_ordinal_to_read += 1;
4732 if next_offset >= end_offset {
4733 return Ok(());
4734 }
4735
4736 while _next_ordinal_to_read < 2 {
4738 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4739 _next_ordinal_to_read += 1;
4740 next_offset += envelope_size;
4741 }
4742
4743 let next_out_of_line = decoder.next_out_of_line();
4744 let handles_before = decoder.remaining_handles();
4745 if let Some((inlined, num_bytes, num_handles)) =
4746 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4747 {
4748 let member_inline_size =
4749 <bool as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4750 if inlined != (member_inline_size <= 4) {
4751 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4752 }
4753 let inner_offset;
4754 let mut inner_depth = depth.clone();
4755 if inlined {
4756 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4757 inner_offset = next_offset;
4758 } else {
4759 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4760 inner_depth.increment()?;
4761 }
4762 let val_ref = self.allow_max.get_or_insert_with(|| fidl::new_empty!(bool, D));
4763 fidl::decode!(bool, D, val_ref, decoder, inner_offset, inner_depth)?;
4764 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4765 {
4766 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4767 }
4768 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4769 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4770 }
4771 }
4772
4773 next_offset += envelope_size;
4774
4775 while next_offset < end_offset {
4777 _next_ordinal_to_read += 1;
4778 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4779 next_offset += envelope_size;
4780 }
4781
4782 Ok(())
4783 }
4784 }
4785
4786 impl PowerElementProviderSetClockLimitRequest {
4787 #[inline(always)]
4788 fn max_ordinal_present(&self) -> u64 {
4789 if let Some(_) = self.hz {
4790 return 1;
4791 }
4792 0
4793 }
4794 }
4795
4796 impl fidl::encoding::ValueTypeMarker for PowerElementProviderSetClockLimitRequest {
4797 type Borrowed<'a> = &'a Self;
4798 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4799 value
4800 }
4801 }
4802
4803 unsafe impl fidl::encoding::TypeMarker for PowerElementProviderSetClockLimitRequest {
4804 type Owned = Self;
4805
4806 #[inline(always)]
4807 fn inline_align(_context: fidl::encoding::Context) -> usize {
4808 8
4809 }
4810
4811 #[inline(always)]
4812 fn inline_size(_context: fidl::encoding::Context) -> usize {
4813 16
4814 }
4815 }
4816
4817 unsafe impl<D: fidl::encoding::ResourceDialect>
4818 fidl::encoding::Encode<PowerElementProviderSetClockLimitRequest, D>
4819 for &PowerElementProviderSetClockLimitRequest
4820 {
4821 unsafe fn encode(
4822 self,
4823 encoder: &mut fidl::encoding::Encoder<'_, D>,
4824 offset: usize,
4825 mut depth: fidl::encoding::Depth,
4826 ) -> fidl::Result<()> {
4827 encoder.debug_check_bounds::<PowerElementProviderSetClockLimitRequest>(offset);
4828 let max_ordinal: u64 = self.max_ordinal_present();
4830 encoder.write_num(max_ordinal, offset);
4831 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
4832 if max_ordinal == 0 {
4834 return Ok(());
4835 }
4836 depth.increment()?;
4837 let envelope_size = 8;
4838 let bytes_len = max_ordinal as usize * envelope_size;
4839 #[allow(unused_variables)]
4840 let offset = encoder.out_of_line_offset(bytes_len);
4841 let mut _prev_end_offset: usize = 0;
4842 if 1 > max_ordinal {
4843 return Ok(());
4844 }
4845
4846 let cur_offset: usize = (1 - 1) * envelope_size;
4849
4850 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4852
4853 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4858 self.hz.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4859 encoder,
4860 offset + cur_offset,
4861 depth,
4862 )?;
4863
4864 _prev_end_offset = cur_offset + envelope_size;
4865
4866 Ok(())
4867 }
4868 }
4869
4870 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
4871 for PowerElementProviderSetClockLimitRequest
4872 {
4873 #[inline(always)]
4874 fn new_empty() -> Self {
4875 Self::default()
4876 }
4877
4878 unsafe fn decode(
4879 &mut self,
4880 decoder: &mut fidl::encoding::Decoder<'_, D>,
4881 offset: usize,
4882 mut depth: fidl::encoding::Depth,
4883 ) -> fidl::Result<()> {
4884 decoder.debug_check_bounds::<Self>(offset);
4885 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4886 None => return Err(fidl::Error::NotNullable),
4887 Some(len) => len,
4888 };
4889 if len == 0 {
4891 return Ok(());
4892 };
4893 depth.increment()?;
4894 let envelope_size = 8;
4895 let bytes_len = len * envelope_size;
4896 let offset = decoder.out_of_line_offset(bytes_len)?;
4897 let mut _next_ordinal_to_read = 0;
4899 let mut next_offset = offset;
4900 let end_offset = offset + bytes_len;
4901 _next_ordinal_to_read += 1;
4902 if next_offset >= end_offset {
4903 return Ok(());
4904 }
4905
4906 while _next_ordinal_to_read < 1 {
4908 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4909 _next_ordinal_to_read += 1;
4910 next_offset += envelope_size;
4911 }
4912
4913 let next_out_of_line = decoder.next_out_of_line();
4914 let handles_before = decoder.remaining_handles();
4915 if let Some((inlined, num_bytes, num_handles)) =
4916 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4917 {
4918 let member_inline_size =
4919 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4920 if inlined != (member_inline_size <= 4) {
4921 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4922 }
4923 let inner_offset;
4924 let mut inner_depth = depth.clone();
4925 if inlined {
4926 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4927 inner_offset = next_offset;
4928 } else {
4929 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4930 inner_depth.increment()?;
4931 }
4932 let val_ref = self.hz.get_or_insert_with(|| fidl::new_empty!(u64, D));
4933 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4934 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4935 {
4936 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4937 }
4938 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4939 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4940 }
4941 }
4942
4943 next_offset += envelope_size;
4944
4945 while next_offset < end_offset {
4947 _next_ordinal_to_read += 1;
4948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4949 next_offset += envelope_size;
4950 }
4951
4952 Ok(())
4953 }
4954 }
4955
4956 impl PrimaryMapBufferRequest {
4957 #[inline(always)]
4958 fn max_ordinal_present(&self) -> u64 {
4959 if let Some(_) = self.flags {
4960 return 3;
4961 }
4962 if let Some(_) = self.range {
4963 return 2;
4964 }
4965 if let Some(_) = self.hw_va {
4966 return 1;
4967 }
4968 0
4969 }
4970 }
4971
4972 impl fidl::encoding::ValueTypeMarker for PrimaryMapBufferRequest {
4973 type Borrowed<'a> = &'a Self;
4974 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
4975 value
4976 }
4977 }
4978
4979 unsafe impl fidl::encoding::TypeMarker for PrimaryMapBufferRequest {
4980 type Owned = Self;
4981
4982 #[inline(always)]
4983 fn inline_align(_context: fidl::encoding::Context) -> usize {
4984 8
4985 }
4986
4987 #[inline(always)]
4988 fn inline_size(_context: fidl::encoding::Context) -> usize {
4989 16
4990 }
4991 }
4992
4993 unsafe impl<D: fidl::encoding::ResourceDialect>
4994 fidl::encoding::Encode<PrimaryMapBufferRequest, D> for &PrimaryMapBufferRequest
4995 {
4996 unsafe fn encode(
4997 self,
4998 encoder: &mut fidl::encoding::Encoder<'_, D>,
4999 offset: usize,
5000 mut depth: fidl::encoding::Depth,
5001 ) -> fidl::Result<()> {
5002 encoder.debug_check_bounds::<PrimaryMapBufferRequest>(offset);
5003 let max_ordinal: u64 = self.max_ordinal_present();
5005 encoder.write_num(max_ordinal, offset);
5006 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5007 if max_ordinal == 0 {
5009 return Ok(());
5010 }
5011 depth.increment()?;
5012 let envelope_size = 8;
5013 let bytes_len = max_ordinal as usize * envelope_size;
5014 #[allow(unused_variables)]
5015 let offset = encoder.out_of_line_offset(bytes_len);
5016 let mut _prev_end_offset: usize = 0;
5017 if 1 > max_ordinal {
5018 return Ok(());
5019 }
5020
5021 let cur_offset: usize = (1 - 1) * envelope_size;
5024
5025 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5027
5028 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5033 self.hw_va.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5034 encoder,
5035 offset + cur_offset,
5036 depth,
5037 )?;
5038
5039 _prev_end_offset = cur_offset + envelope_size;
5040 if 2 > max_ordinal {
5041 return Ok(());
5042 }
5043
5044 let cur_offset: usize = (2 - 1) * envelope_size;
5047
5048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5050
5051 fidl::encoding::encode_in_envelope_optional::<BufferRange, D>(
5056 self.range.as_ref().map(<BufferRange as fidl::encoding::ValueTypeMarker>::borrow),
5057 encoder,
5058 offset + cur_offset,
5059 depth,
5060 )?;
5061
5062 _prev_end_offset = cur_offset + envelope_size;
5063 if 3 > max_ordinal {
5064 return Ok(());
5065 }
5066
5067 let cur_offset: usize = (3 - 1) * envelope_size;
5070
5071 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5073
5074 fidl::encoding::encode_in_envelope_optional::<MapFlags, D>(
5079 self.flags.as_ref().map(<MapFlags as fidl::encoding::ValueTypeMarker>::borrow),
5080 encoder,
5081 offset + cur_offset,
5082 depth,
5083 )?;
5084
5085 _prev_end_offset = cur_offset + envelope_size;
5086
5087 Ok(())
5088 }
5089 }
5090
5091 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5092 for PrimaryMapBufferRequest
5093 {
5094 #[inline(always)]
5095 fn new_empty() -> Self {
5096 Self::default()
5097 }
5098
5099 unsafe fn decode(
5100 &mut self,
5101 decoder: &mut fidl::encoding::Decoder<'_, D>,
5102 offset: usize,
5103 mut depth: fidl::encoding::Depth,
5104 ) -> fidl::Result<()> {
5105 decoder.debug_check_bounds::<Self>(offset);
5106 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5107 None => return Err(fidl::Error::NotNullable),
5108 Some(len) => len,
5109 };
5110 if len == 0 {
5112 return Ok(());
5113 };
5114 depth.increment()?;
5115 let envelope_size = 8;
5116 let bytes_len = len * envelope_size;
5117 let offset = decoder.out_of_line_offset(bytes_len)?;
5118 let mut _next_ordinal_to_read = 0;
5120 let mut next_offset = offset;
5121 let end_offset = offset + bytes_len;
5122 _next_ordinal_to_read += 1;
5123 if next_offset >= end_offset {
5124 return Ok(());
5125 }
5126
5127 while _next_ordinal_to_read < 1 {
5129 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5130 _next_ordinal_to_read += 1;
5131 next_offset += envelope_size;
5132 }
5133
5134 let next_out_of_line = decoder.next_out_of_line();
5135 let handles_before = decoder.remaining_handles();
5136 if let Some((inlined, num_bytes, num_handles)) =
5137 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5138 {
5139 let member_inline_size =
5140 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5141 if inlined != (member_inline_size <= 4) {
5142 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5143 }
5144 let inner_offset;
5145 let mut inner_depth = depth.clone();
5146 if inlined {
5147 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5148 inner_offset = next_offset;
5149 } else {
5150 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5151 inner_depth.increment()?;
5152 }
5153 let val_ref = self.hw_va.get_or_insert_with(|| fidl::new_empty!(u64, D));
5154 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5155 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5156 {
5157 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5158 }
5159 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5160 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5161 }
5162 }
5163
5164 next_offset += envelope_size;
5165 _next_ordinal_to_read += 1;
5166 if next_offset >= end_offset {
5167 return Ok(());
5168 }
5169
5170 while _next_ordinal_to_read < 2 {
5172 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5173 _next_ordinal_to_read += 1;
5174 next_offset += envelope_size;
5175 }
5176
5177 let next_out_of_line = decoder.next_out_of_line();
5178 let handles_before = decoder.remaining_handles();
5179 if let Some((inlined, num_bytes, num_handles)) =
5180 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5181 {
5182 let member_inline_size =
5183 <BufferRange as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5184 if inlined != (member_inline_size <= 4) {
5185 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5186 }
5187 let inner_offset;
5188 let mut inner_depth = depth.clone();
5189 if inlined {
5190 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5191 inner_offset = next_offset;
5192 } else {
5193 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5194 inner_depth.increment()?;
5195 }
5196 let val_ref = self.range.get_or_insert_with(|| fidl::new_empty!(BufferRange, D));
5197 fidl::decode!(BufferRange, D, val_ref, decoder, inner_offset, inner_depth)?;
5198 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5199 {
5200 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5201 }
5202 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5203 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5204 }
5205 }
5206
5207 next_offset += envelope_size;
5208 _next_ordinal_to_read += 1;
5209 if next_offset >= end_offset {
5210 return Ok(());
5211 }
5212
5213 while _next_ordinal_to_read < 3 {
5215 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5216 _next_ordinal_to_read += 1;
5217 next_offset += envelope_size;
5218 }
5219
5220 let next_out_of_line = decoder.next_out_of_line();
5221 let handles_before = decoder.remaining_handles();
5222 if let Some((inlined, num_bytes, num_handles)) =
5223 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5224 {
5225 let member_inline_size =
5226 <MapFlags as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5227 if inlined != (member_inline_size <= 4) {
5228 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5229 }
5230 let inner_offset;
5231 let mut inner_depth = depth.clone();
5232 if inlined {
5233 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5234 inner_offset = next_offset;
5235 } else {
5236 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5237 inner_depth.increment()?;
5238 }
5239 let val_ref = self.flags.get_or_insert_with(|| fidl::new_empty!(MapFlags, D));
5240 fidl::decode!(MapFlags, D, val_ref, decoder, inner_offset, inner_depth)?;
5241 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5242 {
5243 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5244 }
5245 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5246 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5247 }
5248 }
5249
5250 next_offset += envelope_size;
5251
5252 while next_offset < end_offset {
5254 _next_ordinal_to_read += 1;
5255 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5256 next_offset += envelope_size;
5257 }
5258
5259 Ok(())
5260 }
5261 }
5262
5263 impl PrimaryUnmapBufferRequest {
5264 #[inline(always)]
5265 fn max_ordinal_present(&self) -> u64 {
5266 if let Some(_) = self.buffer_id {
5267 return 2;
5268 }
5269 if let Some(_) = self.hw_va {
5270 return 1;
5271 }
5272 0
5273 }
5274 }
5275
5276 impl fidl::encoding::ValueTypeMarker for PrimaryUnmapBufferRequest {
5277 type Borrowed<'a> = &'a Self;
5278 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5279 value
5280 }
5281 }
5282
5283 unsafe impl fidl::encoding::TypeMarker for PrimaryUnmapBufferRequest {
5284 type Owned = Self;
5285
5286 #[inline(always)]
5287 fn inline_align(_context: fidl::encoding::Context) -> usize {
5288 8
5289 }
5290
5291 #[inline(always)]
5292 fn inline_size(_context: fidl::encoding::Context) -> usize {
5293 16
5294 }
5295 }
5296
5297 unsafe impl<D: fidl::encoding::ResourceDialect>
5298 fidl::encoding::Encode<PrimaryUnmapBufferRequest, D> for &PrimaryUnmapBufferRequest
5299 {
5300 unsafe fn encode(
5301 self,
5302 encoder: &mut fidl::encoding::Encoder<'_, D>,
5303 offset: usize,
5304 mut depth: fidl::encoding::Depth,
5305 ) -> fidl::Result<()> {
5306 encoder.debug_check_bounds::<PrimaryUnmapBufferRequest>(offset);
5307 let max_ordinal: u64 = self.max_ordinal_present();
5309 encoder.write_num(max_ordinal, offset);
5310 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5311 if max_ordinal == 0 {
5313 return Ok(());
5314 }
5315 depth.increment()?;
5316 let envelope_size = 8;
5317 let bytes_len = max_ordinal as usize * envelope_size;
5318 #[allow(unused_variables)]
5319 let offset = encoder.out_of_line_offset(bytes_len);
5320 let mut _prev_end_offset: usize = 0;
5321 if 1 > max_ordinal {
5322 return Ok(());
5323 }
5324
5325 let cur_offset: usize = (1 - 1) * envelope_size;
5328
5329 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5331
5332 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5337 self.hw_va.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5338 encoder,
5339 offset + cur_offset,
5340 depth,
5341 )?;
5342
5343 _prev_end_offset = cur_offset + envelope_size;
5344 if 2 > max_ordinal {
5345 return Ok(());
5346 }
5347
5348 let cur_offset: usize = (2 - 1) * envelope_size;
5351
5352 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5354
5355 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5360 self.buffer_id.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5361 encoder,
5362 offset + cur_offset,
5363 depth,
5364 )?;
5365
5366 _prev_end_offset = cur_offset + envelope_size;
5367
5368 Ok(())
5369 }
5370 }
5371
5372 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
5373 for PrimaryUnmapBufferRequest
5374 {
5375 #[inline(always)]
5376 fn new_empty() -> Self {
5377 Self::default()
5378 }
5379
5380 unsafe fn decode(
5381 &mut self,
5382 decoder: &mut fidl::encoding::Decoder<'_, D>,
5383 offset: usize,
5384 mut depth: fidl::encoding::Depth,
5385 ) -> fidl::Result<()> {
5386 decoder.debug_check_bounds::<Self>(offset);
5387 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5388 None => return Err(fidl::Error::NotNullable),
5389 Some(len) => len,
5390 };
5391 if len == 0 {
5393 return Ok(());
5394 };
5395 depth.increment()?;
5396 let envelope_size = 8;
5397 let bytes_len = len * envelope_size;
5398 let offset = decoder.out_of_line_offset(bytes_len)?;
5399 let mut _next_ordinal_to_read = 0;
5401 let mut next_offset = offset;
5402 let end_offset = offset + bytes_len;
5403 _next_ordinal_to_read += 1;
5404 if next_offset >= end_offset {
5405 return Ok(());
5406 }
5407
5408 while _next_ordinal_to_read < 1 {
5410 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5411 _next_ordinal_to_read += 1;
5412 next_offset += envelope_size;
5413 }
5414
5415 let next_out_of_line = decoder.next_out_of_line();
5416 let handles_before = decoder.remaining_handles();
5417 if let Some((inlined, num_bytes, num_handles)) =
5418 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5419 {
5420 let member_inline_size =
5421 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5422 if inlined != (member_inline_size <= 4) {
5423 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5424 }
5425 let inner_offset;
5426 let mut inner_depth = depth.clone();
5427 if inlined {
5428 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5429 inner_offset = next_offset;
5430 } else {
5431 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5432 inner_depth.increment()?;
5433 }
5434 let val_ref = self.hw_va.get_or_insert_with(|| fidl::new_empty!(u64, D));
5435 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5436 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5437 {
5438 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5439 }
5440 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5441 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5442 }
5443 }
5444
5445 next_offset += envelope_size;
5446 _next_ordinal_to_read += 1;
5447 if next_offset >= end_offset {
5448 return Ok(());
5449 }
5450
5451 while _next_ordinal_to_read < 2 {
5453 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5454 _next_ordinal_to_read += 1;
5455 next_offset += envelope_size;
5456 }
5457
5458 let next_out_of_line = decoder.next_out_of_line();
5459 let handles_before = decoder.remaining_handles();
5460 if let Some((inlined, num_bytes, num_handles)) =
5461 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5462 {
5463 let member_inline_size =
5464 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5465 if inlined != (member_inline_size <= 4) {
5466 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5467 }
5468 let inner_offset;
5469 let mut inner_depth = depth.clone();
5470 if inlined {
5471 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5472 inner_offset = next_offset;
5473 } else {
5474 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5475 inner_depth.increment()?;
5476 }
5477 let val_ref = self.buffer_id.get_or_insert_with(|| fidl::new_empty!(u64, D));
5478 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5479 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5480 {
5481 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5482 }
5483 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5484 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5485 }
5486 }
5487
5488 next_offset += envelope_size;
5489
5490 while next_offset < end_offset {
5492 _next_ordinal_to_read += 1;
5493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5494 next_offset += envelope_size;
5495 }
5496
5497 Ok(())
5498 }
5499 }
5500}