1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11pub const DEBUG_COMMAND_MAX: u32 = 1024;
13
14#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15#[repr(C)]
16pub struct CounterUpdateInspectVmoResponse {
17 pub status: i32,
18}
19
20impl fidl::Persistable for CounterUpdateInspectVmoResponse {}
21
22#[derive(Clone, Debug, PartialEq)]
23pub struct CpuStats {
24 pub actual_num_cpus: u64,
28 pub per_cpu_stats: Option<Vec<PerCpuStats>>,
29}
30
31impl fidl::Persistable for CpuStats {}
32
33#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
34pub struct DebugBrokerSendDebugCommandRequest {
35 pub command: String,
36}
37
38impl fidl::Persistable for DebugBrokerSendDebugCommandRequest {}
39
40#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
41#[repr(C)]
42pub struct DebugBrokerSendDebugCommandResponse {
43 pub status: i32,
44}
45
46impl fidl::Persistable for DebugBrokerSendDebugCommandResponse {}
47
48#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
49pub struct DebugBrokerSetTracingEnabledRequest {
50 pub enabled: bool,
51}
52
53impl fidl::Persistable for DebugBrokerSetTracingEnabledRequest {}
54
55#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
56#[repr(C)]
57pub struct DebugBrokerSetTracingEnabledResponse {
58 pub status: i32,
59}
60
61impl fidl::Persistable for DebugBrokerSetTracingEnabledResponse {}
62
63#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
64#[repr(C)]
65pub struct StatsGetCpuLoadRequest {
66 pub duration: i64,
67}
68
69impl fidl::Persistable for StatsGetCpuLoadRequest {}
70
71#[derive(Clone, Debug, PartialEq, PartialOrd)]
72pub struct StatsGetCpuLoadResponse {
73 pub per_cpu_load: Vec<f32>,
74}
75
76impl fidl::Persistable for StatsGetCpuLoadResponse {}
77
78#[derive(Clone, Debug, PartialEq)]
79pub struct StatsGetCpuStatsResponse {
80 pub stats: CpuStats,
81}
82
83impl fidl::Persistable for StatsGetCpuStatsResponse {}
84
85#[derive(Clone, Debug, PartialEq)]
86pub struct StatsGetMemoryStatsExtendedResponse {
87 pub stats: MemoryStatsExtended,
88}
89
90impl fidl::Persistable for StatsGetMemoryStatsExtendedResponse {}
91
92#[derive(Clone, Debug, PartialEq)]
93pub struct StatsGetMemoryStatsResponse {
94 pub stats: MemoryStats,
95}
96
97impl fidl::Persistable for StatsGetMemoryStatsResponse {}
98
99#[derive(Clone, Debug, Default, PartialEq)]
100pub struct MemoryStats {
101 pub total_bytes: Option<u64>,
102 pub free_bytes: Option<u64>,
103 pub wired_bytes: Option<u64>,
104 pub total_heap_bytes: Option<u64>,
105 pub free_heap_bytes: Option<u64>,
106 pub vmo_bytes: Option<u64>,
107 pub mmu_overhead_bytes: Option<u64>,
108 pub ipc_bytes: Option<u64>,
109 pub other_bytes: Option<u64>,
110 pub free_loaned_bytes: Option<u64>,
111 pub cache_bytes: Option<u64>,
112 pub slab_bytes: Option<u64>,
113 pub zram_bytes: Option<u64>,
114 pub vmo_reclaim_total_bytes: Option<u64>,
115 pub vmo_reclaim_newest_bytes: Option<u64>,
116 pub vmo_reclaim_oldest_bytes: Option<u64>,
117 pub vmo_reclaim_disabled_bytes: Option<u64>,
118 pub vmo_discardable_locked_bytes: Option<u64>,
119 pub vmo_discardable_unlocked_bytes: Option<u64>,
120 #[doc(hidden)]
121 pub __source_breaking: fidl::marker::SourceBreaking,
122}
123
124impl fidl::Persistable for MemoryStats {}
125
126#[derive(Clone, Debug, Default, PartialEq)]
127pub struct MemoryStatsCompression {
128 pub uncompressed_storage_bytes: Option<u64>,
129 pub compressed_storage_bytes: Option<u64>,
130 pub compressed_fragmentation_bytes: Option<u64>,
131 pub compression_time: Option<i64>,
132 pub decompression_time: Option<i64>,
133 pub total_page_compression_attempts: Option<u64>,
134 pub failed_page_compression_attempts: Option<u64>,
135 pub total_page_decompressions: Option<u64>,
136 pub compressed_page_evictions: Option<u64>,
137 pub eager_page_compressions: Option<u64>,
138 pub memory_pressure_page_compressions: Option<u64>,
139 pub critical_memory_page_compressions: Option<u64>,
140 pub pages_decompressed_unit_ns: Option<u64>,
141 pub pages_decompressed_within_log_time: Option<[u64; 8]>,
142 #[doc(hidden)]
143 pub __source_breaking: fidl::marker::SourceBreaking,
144}
145
146impl fidl::Persistable for MemoryStatsCompression {}
147
148#[derive(Clone, Debug, Default, PartialEq)]
149pub struct MemoryStatsExtended {
150 pub total_bytes: Option<u64>,
151 pub free_bytes: Option<u64>,
152 pub wired_bytes: Option<u64>,
153 pub total_heap_bytes: Option<u64>,
154 pub free_heap_bytes: Option<u64>,
155 pub vmo_bytes: Option<u64>,
156 pub vmo_pager_total_bytes: Option<u64>,
157 pub vmo_pager_newest_bytes: Option<u64>,
158 pub vmo_pager_oldest_bytes: Option<u64>,
159 pub vmo_discardable_locked_bytes: Option<u64>,
160 pub vmo_discardable_unlocked_bytes: Option<u64>,
161 pub mmu_overhead_bytes: Option<u64>,
162 pub ipc_bytes: Option<u64>,
163 pub other_bytes: Option<u64>,
164 #[doc(hidden)]
165 pub __source_breaking: fidl::marker::SourceBreaking,
166}
167
168impl fidl::Persistable for MemoryStatsExtended {}
169
170#[derive(Clone, Debug, Default, PartialEq)]
171pub struct PerCpuStats {
172 pub cpu_number: Option<u32>,
173 pub flags: Option<u32>,
174 pub idle_time: Option<i64>,
175 pub reschedules: Option<u64>,
176 pub context_switches: Option<u64>,
177 pub irq_preempts: Option<u64>,
178 pub yields: Option<u64>,
179 pub ints: Option<u64>,
180 pub timer_ints: Option<u64>,
181 pub timers: Option<u64>,
182 pub page_faults: Option<u64>,
183 pub exceptions: Option<u64>,
184 pub syscalls: Option<u64>,
185 pub reschedule_ipis: Option<u64>,
186 pub generic_ipis: Option<u64>,
187 pub normalized_busy_time: Option<i64>,
188 pub active_energy_consumption_nj: Option<u64>,
189 pub idle_energy_consumption_nj: Option<u64>,
190 #[doc(hidden)]
191 pub __source_breaking: fidl::marker::SourceBreaking,
192}
193
194impl fidl::Persistable for PerCpuStats {}
195
196pub mod counter_ordinals {
197 pub const GET_INSPECT_VMO: u64 = 0x6ea9b2e6b2791b81;
198 pub const UPDATE_INSPECT_VMO: u64 = 0x1d25eb7995a0539f;
199}
200
201pub mod cpu_resource_ordinals {
202 pub const GET: u64 = 0x41e1103acf4215e4;
203}
204
205pub mod debug_broker_ordinals {
206 pub const SEND_DEBUG_COMMAND: u64 = 0x1ee270f83b5d6ff6;
207 pub const SET_TRACING_ENABLED: u64 = 0x12e368d05329b30e;
208}
209
210pub mod debug_resource_ordinals {
211 pub const GET: u64 = 0x1d79d77ea12a6474;
212}
213
214pub mod debuglog_resource_ordinals {
215 pub const GET: u64 = 0x6e78c1ff74765225;
216}
217
218pub mod energy_info_resource_ordinals {
219 pub const GET: u64 = 0x5f5cc9f0745f61d0;
220}
221
222pub mod hypervisor_resource_ordinals {
223 pub const GET: u64 = 0x1c312131d3b824a2;
224}
225
226pub mod info_resource_ordinals {
227 pub const GET: u64 = 0x1de8edcb4abc2067;
228}
229
230pub mod iommu_resource_ordinals {
231 pub const GET: u64 = 0x5af309b619aa7c5b;
232}
233
234pub mod ioport_resource_ordinals {
235 pub const GET: u64 = 0x4db20876b537c52b;
236}
237
238pub mod irq_resource_ordinals {
239 pub const GET: u64 = 0x491be54504b041e9;
240}
241
242pub mod mexec_resource_ordinals {
243 pub const GET: u64 = 0xff93e6722900f54;
244}
245
246pub mod mmio_resource_ordinals {
247 pub const GET: u64 = 0x66747b9c5a6dfe7b;
248}
249
250pub mod msi_resource_ordinals {
251 pub const GET: u64 = 0x360a97e47e8c4f1f;
252}
253
254pub mod power_resource_ordinals {
255 pub const GET: u64 = 0x2b8df8ca24d1e866;
256}
257
258pub mod profile_resource_ordinals {
259 pub const GET: u64 = 0x3003a0c14de1fa86;
260}
261
262pub mod root_job_ordinals {
263 pub const GET: u64 = 0x73acb63f93d53eac;
264}
265
266pub mod root_job_for_inspect_ordinals {
267 pub const GET: u64 = 0x73acb63f93d53eac;
268}
269
270pub mod sampling_resource_ordinals {
271 pub const GET: u64 = 0x51c41ab037e99824;
272}
273
274pub mod smc_resource_ordinals {
275 pub const GET: u64 = 0x392cbd495b84ede7;
276}
277
278pub mod stall_resource_ordinals {
279 pub const GET: u64 = 0x5edf4c8629a9781a;
280}
281
282pub mod stats_ordinals {
283 pub const GET_MEMORY_STATS: u64 = 0x686677932ae41074;
284 pub const GET_MEMORY_STATS_EXTENDED: u64 = 0x60faa0f8aa38c29f;
285 pub const GET_MEMORY_STATS_COMPRESSION: u64 = 0x544a09995befb531;
286 pub const GET_CPU_STATS: u64 = 0x470e2684ca1ca19e;
287 pub const GET_CPU_LOAD: u64 = 0x4c8f0f05e7034666;
288}
289
290pub mod tracing_resource_ordinals {
291 pub const GET: u64 = 0x299bc179aa54c6aa;
292}
293
294pub mod vmex_resource_ordinals {
295 pub const GET: u64 = 0x33db32deed650699;
296}
297
298mod internal {
299 use super::*;
300
301 impl fidl::encoding::ValueTypeMarker for CounterUpdateInspectVmoResponse {
302 type Borrowed<'a> = &'a Self;
303 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
304 value
305 }
306 }
307
308 unsafe impl fidl::encoding::TypeMarker for CounterUpdateInspectVmoResponse {
309 type Owned = Self;
310
311 #[inline(always)]
312 fn inline_align(_context: fidl::encoding::Context) -> usize {
313 4
314 }
315
316 #[inline(always)]
317 fn inline_size(_context: fidl::encoding::Context) -> usize {
318 4
319 }
320 #[inline(always)]
321 fn encode_is_copy() -> bool {
322 true
323 }
324
325 #[inline(always)]
326 fn decode_is_copy() -> bool {
327 true
328 }
329 }
330
331 unsafe impl<D: fidl::encoding::ResourceDialect>
332 fidl::encoding::Encode<CounterUpdateInspectVmoResponse, D>
333 for &CounterUpdateInspectVmoResponse
334 {
335 #[inline]
336 unsafe fn encode(
337 self,
338 encoder: &mut fidl::encoding::Encoder<'_, D>,
339 offset: usize,
340 _depth: fidl::encoding::Depth,
341 ) -> fidl::Result<()> {
342 encoder.debug_check_bounds::<CounterUpdateInspectVmoResponse>(offset);
343 unsafe {
344 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
346 (buf_ptr as *mut CounterUpdateInspectVmoResponse)
347 .write_unaligned((self as *const CounterUpdateInspectVmoResponse).read());
348 }
351 Ok(())
352 }
353 }
354 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
355 fidl::encoding::Encode<CounterUpdateInspectVmoResponse, D> for (T0,)
356 {
357 #[inline]
358 unsafe fn encode(
359 self,
360 encoder: &mut fidl::encoding::Encoder<'_, D>,
361 offset: usize,
362 depth: fidl::encoding::Depth,
363 ) -> fidl::Result<()> {
364 encoder.debug_check_bounds::<CounterUpdateInspectVmoResponse>(offset);
365 self.0.encode(encoder, offset + 0, depth)?;
369 Ok(())
370 }
371 }
372
373 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
374 for CounterUpdateInspectVmoResponse
375 {
376 #[inline(always)]
377 fn new_empty() -> Self {
378 Self { status: fidl::new_empty!(i32, D) }
379 }
380
381 #[inline]
382 unsafe fn decode(
383 &mut self,
384 decoder: &mut fidl::encoding::Decoder<'_, D>,
385 offset: usize,
386 _depth: fidl::encoding::Depth,
387 ) -> fidl::Result<()> {
388 decoder.debug_check_bounds::<Self>(offset);
389 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
390 unsafe {
393 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
394 }
395 Ok(())
396 }
397 }
398
399 impl fidl::encoding::ValueTypeMarker for CpuStats {
400 type Borrowed<'a> = &'a Self;
401 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
402 value
403 }
404 }
405
406 unsafe impl fidl::encoding::TypeMarker for CpuStats {
407 type Owned = Self;
408
409 #[inline(always)]
410 fn inline_align(_context: fidl::encoding::Context) -> usize {
411 8
412 }
413
414 #[inline(always)]
415 fn inline_size(_context: fidl::encoding::Context) -> usize {
416 24
417 }
418 }
419
420 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CpuStats, D> for &CpuStats {
421 #[inline]
422 unsafe fn encode(
423 self,
424 encoder: &mut fidl::encoding::Encoder<'_, D>,
425 offset: usize,
426 _depth: fidl::encoding::Depth,
427 ) -> fidl::Result<()> {
428 encoder.debug_check_bounds::<CpuStats>(offset);
429 fidl::encoding::Encode::<CpuStats, D>::encode(
431 (
432 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.actual_num_cpus),
433 <fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>> as fidl::encoding::ValueTypeMarker>::borrow(&self.per_cpu_stats),
434 ),
435 encoder, offset, _depth
436 )
437 }
438 }
439 unsafe impl<
440 D: fidl::encoding::ResourceDialect,
441 T0: fidl::encoding::Encode<u64, D>,
442 T1: fidl::encoding::Encode<
443 fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>>,
444 D,
445 >,
446 > fidl::encoding::Encode<CpuStats, D> for (T0, T1)
447 {
448 #[inline]
449 unsafe fn encode(
450 self,
451 encoder: &mut fidl::encoding::Encoder<'_, D>,
452 offset: usize,
453 depth: fidl::encoding::Depth,
454 ) -> fidl::Result<()> {
455 encoder.debug_check_bounds::<CpuStats>(offset);
456 self.0.encode(encoder, offset + 0, depth)?;
460 self.1.encode(encoder, offset + 8, depth)?;
461 Ok(())
462 }
463 }
464
465 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CpuStats {
466 #[inline(always)]
467 fn new_empty() -> Self {
468 Self {
469 actual_num_cpus: fidl::new_empty!(u64, D),
470 per_cpu_stats: fidl::new_empty!(
471 fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>>,
472 D
473 ),
474 }
475 }
476
477 #[inline]
478 unsafe fn decode(
479 &mut self,
480 decoder: &mut fidl::encoding::Decoder<'_, D>,
481 offset: usize,
482 _depth: fidl::encoding::Depth,
483 ) -> fidl::Result<()> {
484 decoder.debug_check_bounds::<Self>(offset);
485 fidl::decode!(u64, D, &mut self.actual_num_cpus, decoder, offset + 0, _depth)?;
487 fidl::decode!(
488 fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>>,
489 D,
490 &mut self.per_cpu_stats,
491 decoder,
492 offset + 8,
493 _depth
494 )?;
495 Ok(())
496 }
497 }
498
499 impl fidl::encoding::ValueTypeMarker for DebugBrokerSendDebugCommandRequest {
500 type Borrowed<'a> = &'a Self;
501 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
502 value
503 }
504 }
505
506 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSendDebugCommandRequest {
507 type Owned = Self;
508
509 #[inline(always)]
510 fn inline_align(_context: fidl::encoding::Context) -> usize {
511 8
512 }
513
514 #[inline(always)]
515 fn inline_size(_context: fidl::encoding::Context) -> usize {
516 16
517 }
518 }
519
520 unsafe impl<D: fidl::encoding::ResourceDialect>
521 fidl::encoding::Encode<DebugBrokerSendDebugCommandRequest, D>
522 for &DebugBrokerSendDebugCommandRequest
523 {
524 #[inline]
525 unsafe fn encode(
526 self,
527 encoder: &mut fidl::encoding::Encoder<'_, D>,
528 offset: usize,
529 _depth: fidl::encoding::Depth,
530 ) -> fidl::Result<()> {
531 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandRequest>(offset);
532 fidl::encoding::Encode::<DebugBrokerSendDebugCommandRequest, D>::encode(
534 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
535 &self.command,
536 ),),
537 encoder,
538 offset,
539 _depth,
540 )
541 }
542 }
543 unsafe impl<
544 D: fidl::encoding::ResourceDialect,
545 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
546 > fidl::encoding::Encode<DebugBrokerSendDebugCommandRequest, D> for (T0,)
547 {
548 #[inline]
549 unsafe fn encode(
550 self,
551 encoder: &mut fidl::encoding::Encoder<'_, D>,
552 offset: usize,
553 depth: fidl::encoding::Depth,
554 ) -> fidl::Result<()> {
555 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandRequest>(offset);
556 self.0.encode(encoder, offset + 0, depth)?;
560 Ok(())
561 }
562 }
563
564 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
565 for DebugBrokerSendDebugCommandRequest
566 {
567 #[inline(always)]
568 fn new_empty() -> Self {
569 Self { command: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
570 }
571
572 #[inline]
573 unsafe fn decode(
574 &mut self,
575 decoder: &mut fidl::encoding::Decoder<'_, D>,
576 offset: usize,
577 _depth: fidl::encoding::Depth,
578 ) -> fidl::Result<()> {
579 decoder.debug_check_bounds::<Self>(offset);
580 fidl::decode!(
582 fidl::encoding::BoundedString<1024>,
583 D,
584 &mut self.command,
585 decoder,
586 offset + 0,
587 _depth
588 )?;
589 Ok(())
590 }
591 }
592
593 impl fidl::encoding::ValueTypeMarker for DebugBrokerSendDebugCommandResponse {
594 type Borrowed<'a> = &'a Self;
595 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
596 value
597 }
598 }
599
600 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSendDebugCommandResponse {
601 type Owned = Self;
602
603 #[inline(always)]
604 fn inline_align(_context: fidl::encoding::Context) -> usize {
605 4
606 }
607
608 #[inline(always)]
609 fn inline_size(_context: fidl::encoding::Context) -> usize {
610 4
611 }
612 #[inline(always)]
613 fn encode_is_copy() -> bool {
614 true
615 }
616
617 #[inline(always)]
618 fn decode_is_copy() -> bool {
619 true
620 }
621 }
622
623 unsafe impl<D: fidl::encoding::ResourceDialect>
624 fidl::encoding::Encode<DebugBrokerSendDebugCommandResponse, D>
625 for &DebugBrokerSendDebugCommandResponse
626 {
627 #[inline]
628 unsafe fn encode(
629 self,
630 encoder: &mut fidl::encoding::Encoder<'_, D>,
631 offset: usize,
632 _depth: fidl::encoding::Depth,
633 ) -> fidl::Result<()> {
634 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandResponse>(offset);
635 unsafe {
636 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
638 (buf_ptr as *mut DebugBrokerSendDebugCommandResponse)
639 .write_unaligned((self as *const DebugBrokerSendDebugCommandResponse).read());
640 }
643 Ok(())
644 }
645 }
646 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
647 fidl::encoding::Encode<DebugBrokerSendDebugCommandResponse, D> for (T0,)
648 {
649 #[inline]
650 unsafe fn encode(
651 self,
652 encoder: &mut fidl::encoding::Encoder<'_, D>,
653 offset: usize,
654 depth: fidl::encoding::Depth,
655 ) -> fidl::Result<()> {
656 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandResponse>(offset);
657 self.0.encode(encoder, offset + 0, depth)?;
661 Ok(())
662 }
663 }
664
665 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
666 for DebugBrokerSendDebugCommandResponse
667 {
668 #[inline(always)]
669 fn new_empty() -> Self {
670 Self { status: fidl::new_empty!(i32, D) }
671 }
672
673 #[inline]
674 unsafe fn decode(
675 &mut self,
676 decoder: &mut fidl::encoding::Decoder<'_, D>,
677 offset: usize,
678 _depth: fidl::encoding::Depth,
679 ) -> fidl::Result<()> {
680 decoder.debug_check_bounds::<Self>(offset);
681 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
682 unsafe {
685 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
686 }
687 Ok(())
688 }
689 }
690
691 impl fidl::encoding::ValueTypeMarker for DebugBrokerSetTracingEnabledRequest {
692 type Borrowed<'a> = &'a Self;
693 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
694 value
695 }
696 }
697
698 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSetTracingEnabledRequest {
699 type Owned = Self;
700
701 #[inline(always)]
702 fn inline_align(_context: fidl::encoding::Context) -> usize {
703 1
704 }
705
706 #[inline(always)]
707 fn inline_size(_context: fidl::encoding::Context) -> usize {
708 1
709 }
710 }
711
712 unsafe impl<D: fidl::encoding::ResourceDialect>
713 fidl::encoding::Encode<DebugBrokerSetTracingEnabledRequest, D>
714 for &DebugBrokerSetTracingEnabledRequest
715 {
716 #[inline]
717 unsafe fn encode(
718 self,
719 encoder: &mut fidl::encoding::Encoder<'_, D>,
720 offset: usize,
721 _depth: fidl::encoding::Depth,
722 ) -> fidl::Result<()> {
723 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledRequest>(offset);
724 fidl::encoding::Encode::<DebugBrokerSetTracingEnabledRequest, D>::encode(
726 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
727 encoder,
728 offset,
729 _depth,
730 )
731 }
732 }
733 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
734 fidl::encoding::Encode<DebugBrokerSetTracingEnabledRequest, D> for (T0,)
735 {
736 #[inline]
737 unsafe fn encode(
738 self,
739 encoder: &mut fidl::encoding::Encoder<'_, D>,
740 offset: usize,
741 depth: fidl::encoding::Depth,
742 ) -> fidl::Result<()> {
743 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledRequest>(offset);
744 self.0.encode(encoder, offset + 0, depth)?;
748 Ok(())
749 }
750 }
751
752 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
753 for DebugBrokerSetTracingEnabledRequest
754 {
755 #[inline(always)]
756 fn new_empty() -> Self {
757 Self { enabled: fidl::new_empty!(bool, D) }
758 }
759
760 #[inline]
761 unsafe fn decode(
762 &mut self,
763 decoder: &mut fidl::encoding::Decoder<'_, D>,
764 offset: usize,
765 _depth: fidl::encoding::Depth,
766 ) -> fidl::Result<()> {
767 decoder.debug_check_bounds::<Self>(offset);
768 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
770 Ok(())
771 }
772 }
773
774 impl fidl::encoding::ValueTypeMarker for DebugBrokerSetTracingEnabledResponse {
775 type Borrowed<'a> = &'a Self;
776 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
777 value
778 }
779 }
780
781 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSetTracingEnabledResponse {
782 type Owned = Self;
783
784 #[inline(always)]
785 fn inline_align(_context: fidl::encoding::Context) -> usize {
786 4
787 }
788
789 #[inline(always)]
790 fn inline_size(_context: fidl::encoding::Context) -> usize {
791 4
792 }
793 #[inline(always)]
794 fn encode_is_copy() -> bool {
795 true
796 }
797
798 #[inline(always)]
799 fn decode_is_copy() -> bool {
800 true
801 }
802 }
803
804 unsafe impl<D: fidl::encoding::ResourceDialect>
805 fidl::encoding::Encode<DebugBrokerSetTracingEnabledResponse, D>
806 for &DebugBrokerSetTracingEnabledResponse
807 {
808 #[inline]
809 unsafe fn encode(
810 self,
811 encoder: &mut fidl::encoding::Encoder<'_, D>,
812 offset: usize,
813 _depth: fidl::encoding::Depth,
814 ) -> fidl::Result<()> {
815 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledResponse>(offset);
816 unsafe {
817 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
819 (buf_ptr as *mut DebugBrokerSetTracingEnabledResponse)
820 .write_unaligned((self as *const DebugBrokerSetTracingEnabledResponse).read());
821 }
824 Ok(())
825 }
826 }
827 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
828 fidl::encoding::Encode<DebugBrokerSetTracingEnabledResponse, D> for (T0,)
829 {
830 #[inline]
831 unsafe fn encode(
832 self,
833 encoder: &mut fidl::encoding::Encoder<'_, D>,
834 offset: usize,
835 depth: fidl::encoding::Depth,
836 ) -> fidl::Result<()> {
837 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledResponse>(offset);
838 self.0.encode(encoder, offset + 0, depth)?;
842 Ok(())
843 }
844 }
845
846 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
847 for DebugBrokerSetTracingEnabledResponse
848 {
849 #[inline(always)]
850 fn new_empty() -> Self {
851 Self { status: fidl::new_empty!(i32, D) }
852 }
853
854 #[inline]
855 unsafe fn decode(
856 &mut self,
857 decoder: &mut fidl::encoding::Decoder<'_, D>,
858 offset: usize,
859 _depth: fidl::encoding::Depth,
860 ) -> fidl::Result<()> {
861 decoder.debug_check_bounds::<Self>(offset);
862 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
863 unsafe {
866 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
867 }
868 Ok(())
869 }
870 }
871
872 impl fidl::encoding::ValueTypeMarker for StatsGetCpuLoadRequest {
873 type Borrowed<'a> = &'a Self;
874 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
875 value
876 }
877 }
878
879 unsafe impl fidl::encoding::TypeMarker for StatsGetCpuLoadRequest {
880 type Owned = Self;
881
882 #[inline(always)]
883 fn inline_align(_context: fidl::encoding::Context) -> usize {
884 8
885 }
886
887 #[inline(always)]
888 fn inline_size(_context: fidl::encoding::Context) -> usize {
889 8
890 }
891 #[inline(always)]
892 fn encode_is_copy() -> bool {
893 true
894 }
895
896 #[inline(always)]
897 fn decode_is_copy() -> bool {
898 true
899 }
900 }
901
902 unsafe impl<D: fidl::encoding::ResourceDialect>
903 fidl::encoding::Encode<StatsGetCpuLoadRequest, D> for &StatsGetCpuLoadRequest
904 {
905 #[inline]
906 unsafe fn encode(
907 self,
908 encoder: &mut fidl::encoding::Encoder<'_, D>,
909 offset: usize,
910 _depth: fidl::encoding::Depth,
911 ) -> fidl::Result<()> {
912 encoder.debug_check_bounds::<StatsGetCpuLoadRequest>(offset);
913 unsafe {
914 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
916 (buf_ptr as *mut StatsGetCpuLoadRequest)
917 .write_unaligned((self as *const StatsGetCpuLoadRequest).read());
918 }
921 Ok(())
922 }
923 }
924 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
925 fidl::encoding::Encode<StatsGetCpuLoadRequest, D> for (T0,)
926 {
927 #[inline]
928 unsafe fn encode(
929 self,
930 encoder: &mut fidl::encoding::Encoder<'_, D>,
931 offset: usize,
932 depth: fidl::encoding::Depth,
933 ) -> fidl::Result<()> {
934 encoder.debug_check_bounds::<StatsGetCpuLoadRequest>(offset);
935 self.0.encode(encoder, offset + 0, depth)?;
939 Ok(())
940 }
941 }
942
943 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
944 for StatsGetCpuLoadRequest
945 {
946 #[inline(always)]
947 fn new_empty() -> Self {
948 Self { duration: fidl::new_empty!(i64, D) }
949 }
950
951 #[inline]
952 unsafe fn decode(
953 &mut self,
954 decoder: &mut fidl::encoding::Decoder<'_, D>,
955 offset: usize,
956 _depth: fidl::encoding::Depth,
957 ) -> fidl::Result<()> {
958 decoder.debug_check_bounds::<Self>(offset);
959 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
960 unsafe {
963 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
964 }
965 Ok(())
966 }
967 }
968
969 impl fidl::encoding::ValueTypeMarker for StatsGetCpuLoadResponse {
970 type Borrowed<'a> = &'a Self;
971 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
972 value
973 }
974 }
975
976 unsafe impl fidl::encoding::TypeMarker for StatsGetCpuLoadResponse {
977 type Owned = Self;
978
979 #[inline(always)]
980 fn inline_align(_context: fidl::encoding::Context) -> usize {
981 8
982 }
983
984 #[inline(always)]
985 fn inline_size(_context: fidl::encoding::Context) -> usize {
986 16
987 }
988 }
989
990 unsafe impl<D: fidl::encoding::ResourceDialect>
991 fidl::encoding::Encode<StatsGetCpuLoadResponse, D> for &StatsGetCpuLoadResponse
992 {
993 #[inline]
994 unsafe fn encode(
995 self,
996 encoder: &mut fidl::encoding::Encoder<'_, D>,
997 offset: usize,
998 _depth: fidl::encoding::Depth,
999 ) -> fidl::Result<()> {
1000 encoder.debug_check_bounds::<StatsGetCpuLoadResponse>(offset);
1001 fidl::encoding::Encode::<StatsGetCpuLoadResponse, D>::encode(
1003 (<fidl::encoding::Vector<f32, 512> as fidl::encoding::ValueTypeMarker>::borrow(
1004 &self.per_cpu_load,
1005 ),),
1006 encoder,
1007 offset,
1008 _depth,
1009 )
1010 }
1011 }
1012 unsafe impl<
1013 D: fidl::encoding::ResourceDialect,
1014 T0: fidl::encoding::Encode<fidl::encoding::Vector<f32, 512>, D>,
1015 > fidl::encoding::Encode<StatsGetCpuLoadResponse, D> for (T0,)
1016 {
1017 #[inline]
1018 unsafe fn encode(
1019 self,
1020 encoder: &mut fidl::encoding::Encoder<'_, D>,
1021 offset: usize,
1022 depth: fidl::encoding::Depth,
1023 ) -> fidl::Result<()> {
1024 encoder.debug_check_bounds::<StatsGetCpuLoadResponse>(offset);
1025 self.0.encode(encoder, offset + 0, depth)?;
1029 Ok(())
1030 }
1031 }
1032
1033 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1034 for StatsGetCpuLoadResponse
1035 {
1036 #[inline(always)]
1037 fn new_empty() -> Self {
1038 Self { per_cpu_load: fidl::new_empty!(fidl::encoding::Vector<f32, 512>, D) }
1039 }
1040
1041 #[inline]
1042 unsafe fn decode(
1043 &mut self,
1044 decoder: &mut fidl::encoding::Decoder<'_, D>,
1045 offset: usize,
1046 _depth: fidl::encoding::Depth,
1047 ) -> fidl::Result<()> {
1048 decoder.debug_check_bounds::<Self>(offset);
1049 fidl::decode!(fidl::encoding::Vector<f32, 512>, D, &mut self.per_cpu_load, decoder, offset + 0, _depth)?;
1051 Ok(())
1052 }
1053 }
1054
1055 impl fidl::encoding::ValueTypeMarker for StatsGetCpuStatsResponse {
1056 type Borrowed<'a> = &'a Self;
1057 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1058 value
1059 }
1060 }
1061
1062 unsafe impl fidl::encoding::TypeMarker for StatsGetCpuStatsResponse {
1063 type Owned = Self;
1064
1065 #[inline(always)]
1066 fn inline_align(_context: fidl::encoding::Context) -> usize {
1067 8
1068 }
1069
1070 #[inline(always)]
1071 fn inline_size(_context: fidl::encoding::Context) -> usize {
1072 24
1073 }
1074 }
1075
1076 unsafe impl<D: fidl::encoding::ResourceDialect>
1077 fidl::encoding::Encode<StatsGetCpuStatsResponse, D> for &StatsGetCpuStatsResponse
1078 {
1079 #[inline]
1080 unsafe fn encode(
1081 self,
1082 encoder: &mut fidl::encoding::Encoder<'_, D>,
1083 offset: usize,
1084 _depth: fidl::encoding::Depth,
1085 ) -> fidl::Result<()> {
1086 encoder.debug_check_bounds::<StatsGetCpuStatsResponse>(offset);
1087 fidl::encoding::Encode::<StatsGetCpuStatsResponse, D>::encode(
1089 (<CpuStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),),
1090 encoder,
1091 offset,
1092 _depth,
1093 )
1094 }
1095 }
1096 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<CpuStats, D>>
1097 fidl::encoding::Encode<StatsGetCpuStatsResponse, D> for (T0,)
1098 {
1099 #[inline]
1100 unsafe fn encode(
1101 self,
1102 encoder: &mut fidl::encoding::Encoder<'_, D>,
1103 offset: usize,
1104 depth: fidl::encoding::Depth,
1105 ) -> fidl::Result<()> {
1106 encoder.debug_check_bounds::<StatsGetCpuStatsResponse>(offset);
1107 self.0.encode(encoder, offset + 0, depth)?;
1111 Ok(())
1112 }
1113 }
1114
1115 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1116 for StatsGetCpuStatsResponse
1117 {
1118 #[inline(always)]
1119 fn new_empty() -> Self {
1120 Self { stats: fidl::new_empty!(CpuStats, D) }
1121 }
1122
1123 #[inline]
1124 unsafe fn decode(
1125 &mut self,
1126 decoder: &mut fidl::encoding::Decoder<'_, D>,
1127 offset: usize,
1128 _depth: fidl::encoding::Depth,
1129 ) -> fidl::Result<()> {
1130 decoder.debug_check_bounds::<Self>(offset);
1131 fidl::decode!(CpuStats, D, &mut self.stats, decoder, offset + 0, _depth)?;
1133 Ok(())
1134 }
1135 }
1136
1137 impl fidl::encoding::ValueTypeMarker for StatsGetMemoryStatsExtendedResponse {
1138 type Borrowed<'a> = &'a Self;
1139 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1140 value
1141 }
1142 }
1143
1144 unsafe impl fidl::encoding::TypeMarker for StatsGetMemoryStatsExtendedResponse {
1145 type Owned = Self;
1146
1147 #[inline(always)]
1148 fn inline_align(_context: fidl::encoding::Context) -> usize {
1149 8
1150 }
1151
1152 #[inline(always)]
1153 fn inline_size(_context: fidl::encoding::Context) -> usize {
1154 16
1155 }
1156 }
1157
1158 unsafe impl<D: fidl::encoding::ResourceDialect>
1159 fidl::encoding::Encode<StatsGetMemoryStatsExtendedResponse, D>
1160 for &StatsGetMemoryStatsExtendedResponse
1161 {
1162 #[inline]
1163 unsafe fn encode(
1164 self,
1165 encoder: &mut fidl::encoding::Encoder<'_, D>,
1166 offset: usize,
1167 _depth: fidl::encoding::Depth,
1168 ) -> fidl::Result<()> {
1169 encoder.debug_check_bounds::<StatsGetMemoryStatsExtendedResponse>(offset);
1170 fidl::encoding::Encode::<StatsGetMemoryStatsExtendedResponse, D>::encode(
1172 (<MemoryStatsExtended as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),),
1173 encoder,
1174 offset,
1175 _depth,
1176 )
1177 }
1178 }
1179 unsafe impl<
1180 D: fidl::encoding::ResourceDialect,
1181 T0: fidl::encoding::Encode<MemoryStatsExtended, D>,
1182 > fidl::encoding::Encode<StatsGetMemoryStatsExtendedResponse, D> for (T0,)
1183 {
1184 #[inline]
1185 unsafe fn encode(
1186 self,
1187 encoder: &mut fidl::encoding::Encoder<'_, D>,
1188 offset: usize,
1189 depth: fidl::encoding::Depth,
1190 ) -> fidl::Result<()> {
1191 encoder.debug_check_bounds::<StatsGetMemoryStatsExtendedResponse>(offset);
1192 self.0.encode(encoder, offset + 0, depth)?;
1196 Ok(())
1197 }
1198 }
1199
1200 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1201 for StatsGetMemoryStatsExtendedResponse
1202 {
1203 #[inline(always)]
1204 fn new_empty() -> Self {
1205 Self { stats: fidl::new_empty!(MemoryStatsExtended, D) }
1206 }
1207
1208 #[inline]
1209 unsafe fn decode(
1210 &mut self,
1211 decoder: &mut fidl::encoding::Decoder<'_, D>,
1212 offset: usize,
1213 _depth: fidl::encoding::Depth,
1214 ) -> fidl::Result<()> {
1215 decoder.debug_check_bounds::<Self>(offset);
1216 fidl::decode!(MemoryStatsExtended, D, &mut self.stats, decoder, offset + 0, _depth)?;
1218 Ok(())
1219 }
1220 }
1221
1222 impl fidl::encoding::ValueTypeMarker for StatsGetMemoryStatsResponse {
1223 type Borrowed<'a> = &'a Self;
1224 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1225 value
1226 }
1227 }
1228
1229 unsafe impl fidl::encoding::TypeMarker for StatsGetMemoryStatsResponse {
1230 type Owned = Self;
1231
1232 #[inline(always)]
1233 fn inline_align(_context: fidl::encoding::Context) -> usize {
1234 8
1235 }
1236
1237 #[inline(always)]
1238 fn inline_size(_context: fidl::encoding::Context) -> usize {
1239 16
1240 }
1241 }
1242
1243 unsafe impl<D: fidl::encoding::ResourceDialect>
1244 fidl::encoding::Encode<StatsGetMemoryStatsResponse, D> for &StatsGetMemoryStatsResponse
1245 {
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::<StatsGetMemoryStatsResponse>(offset);
1254 fidl::encoding::Encode::<StatsGetMemoryStatsResponse, D>::encode(
1256 (<MemoryStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),),
1257 encoder,
1258 offset,
1259 _depth,
1260 )
1261 }
1262 }
1263 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<MemoryStats, D>>
1264 fidl::encoding::Encode<StatsGetMemoryStatsResponse, D> for (T0,)
1265 {
1266 #[inline]
1267 unsafe fn encode(
1268 self,
1269 encoder: &mut fidl::encoding::Encoder<'_, D>,
1270 offset: usize,
1271 depth: fidl::encoding::Depth,
1272 ) -> fidl::Result<()> {
1273 encoder.debug_check_bounds::<StatsGetMemoryStatsResponse>(offset);
1274 self.0.encode(encoder, offset + 0, depth)?;
1278 Ok(())
1279 }
1280 }
1281
1282 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1283 for StatsGetMemoryStatsResponse
1284 {
1285 #[inline(always)]
1286 fn new_empty() -> Self {
1287 Self { stats: fidl::new_empty!(MemoryStats, D) }
1288 }
1289
1290 #[inline]
1291 unsafe fn decode(
1292 &mut self,
1293 decoder: &mut fidl::encoding::Decoder<'_, D>,
1294 offset: usize,
1295 _depth: fidl::encoding::Depth,
1296 ) -> fidl::Result<()> {
1297 decoder.debug_check_bounds::<Self>(offset);
1298 fidl::decode!(MemoryStats, D, &mut self.stats, decoder, offset + 0, _depth)?;
1300 Ok(())
1301 }
1302 }
1303
1304 impl MemoryStats {
1305 #[inline(always)]
1306 fn max_ordinal_present(&self) -> u64 {
1307 if let Some(_) = self.vmo_discardable_unlocked_bytes {
1308 return 19;
1309 }
1310 if let Some(_) = self.vmo_discardable_locked_bytes {
1311 return 18;
1312 }
1313 if let Some(_) = self.vmo_reclaim_disabled_bytes {
1314 return 17;
1315 }
1316 if let Some(_) = self.vmo_reclaim_oldest_bytes {
1317 return 16;
1318 }
1319 if let Some(_) = self.vmo_reclaim_newest_bytes {
1320 return 15;
1321 }
1322 if let Some(_) = self.vmo_reclaim_total_bytes {
1323 return 14;
1324 }
1325 if let Some(_) = self.zram_bytes {
1326 return 13;
1327 }
1328 if let Some(_) = self.slab_bytes {
1329 return 12;
1330 }
1331 if let Some(_) = self.cache_bytes {
1332 return 11;
1333 }
1334 if let Some(_) = self.free_loaned_bytes {
1335 return 10;
1336 }
1337 if let Some(_) = self.other_bytes {
1338 return 9;
1339 }
1340 if let Some(_) = self.ipc_bytes {
1341 return 8;
1342 }
1343 if let Some(_) = self.mmu_overhead_bytes {
1344 return 7;
1345 }
1346 if let Some(_) = self.vmo_bytes {
1347 return 6;
1348 }
1349 if let Some(_) = self.free_heap_bytes {
1350 return 5;
1351 }
1352 if let Some(_) = self.total_heap_bytes {
1353 return 4;
1354 }
1355 if let Some(_) = self.wired_bytes {
1356 return 3;
1357 }
1358 if let Some(_) = self.free_bytes {
1359 return 2;
1360 }
1361 if let Some(_) = self.total_bytes {
1362 return 1;
1363 }
1364 0
1365 }
1366 }
1367
1368 impl fidl::encoding::ValueTypeMarker for MemoryStats {
1369 type Borrowed<'a> = &'a Self;
1370 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1371 value
1372 }
1373 }
1374
1375 unsafe impl fidl::encoding::TypeMarker for MemoryStats {
1376 type Owned = Self;
1377
1378 #[inline(always)]
1379 fn inline_align(_context: fidl::encoding::Context) -> usize {
1380 8
1381 }
1382
1383 #[inline(always)]
1384 fn inline_size(_context: fidl::encoding::Context) -> usize {
1385 16
1386 }
1387 }
1388
1389 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MemoryStats, D>
1390 for &MemoryStats
1391 {
1392 unsafe fn encode(
1393 self,
1394 encoder: &mut fidl::encoding::Encoder<'_, D>,
1395 offset: usize,
1396 mut depth: fidl::encoding::Depth,
1397 ) -> fidl::Result<()> {
1398 encoder.debug_check_bounds::<MemoryStats>(offset);
1399 let max_ordinal: u64 = self.max_ordinal_present();
1401 encoder.write_num(max_ordinal, offset);
1402 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1403 if max_ordinal == 0 {
1405 return Ok(());
1406 }
1407 depth.increment()?;
1408 let envelope_size = 8;
1409 let bytes_len = max_ordinal as usize * envelope_size;
1410 #[allow(unused_variables)]
1411 let offset = encoder.out_of_line_offset(bytes_len);
1412 let mut _prev_end_offset: usize = 0;
1413 if 1 > max_ordinal {
1414 return Ok(());
1415 }
1416
1417 let cur_offset: usize = (1 - 1) * envelope_size;
1420
1421 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1423
1424 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1429 self.total_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1430 encoder,
1431 offset + cur_offset,
1432 depth,
1433 )?;
1434
1435 _prev_end_offset = cur_offset + envelope_size;
1436 if 2 > max_ordinal {
1437 return Ok(());
1438 }
1439
1440 let cur_offset: usize = (2 - 1) * envelope_size;
1443
1444 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1446
1447 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1452 self.free_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1453 encoder,
1454 offset + cur_offset,
1455 depth,
1456 )?;
1457
1458 _prev_end_offset = cur_offset + envelope_size;
1459 if 3 > max_ordinal {
1460 return Ok(());
1461 }
1462
1463 let cur_offset: usize = (3 - 1) * envelope_size;
1466
1467 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1469
1470 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1475 self.wired_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1476 encoder,
1477 offset + cur_offset,
1478 depth,
1479 )?;
1480
1481 _prev_end_offset = cur_offset + envelope_size;
1482 if 4 > max_ordinal {
1483 return Ok(());
1484 }
1485
1486 let cur_offset: usize = (4 - 1) * envelope_size;
1489
1490 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1492
1493 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1498 self.total_heap_bytes
1499 .as_ref()
1500 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1501 encoder,
1502 offset + cur_offset,
1503 depth,
1504 )?;
1505
1506 _prev_end_offset = cur_offset + envelope_size;
1507 if 5 > max_ordinal {
1508 return Ok(());
1509 }
1510
1511 let cur_offset: usize = (5 - 1) * envelope_size;
1514
1515 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1517
1518 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1523 self.free_heap_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1524 encoder,
1525 offset + cur_offset,
1526 depth,
1527 )?;
1528
1529 _prev_end_offset = cur_offset + envelope_size;
1530 if 6 > max_ordinal {
1531 return Ok(());
1532 }
1533
1534 let cur_offset: usize = (6 - 1) * envelope_size;
1537
1538 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1540
1541 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1546 self.vmo_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1547 encoder,
1548 offset + cur_offset,
1549 depth,
1550 )?;
1551
1552 _prev_end_offset = cur_offset + envelope_size;
1553 if 7 > max_ordinal {
1554 return Ok(());
1555 }
1556
1557 let cur_offset: usize = (7 - 1) * envelope_size;
1560
1561 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1563
1564 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1569 self.mmu_overhead_bytes
1570 .as_ref()
1571 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1572 encoder,
1573 offset + cur_offset,
1574 depth,
1575 )?;
1576
1577 _prev_end_offset = cur_offset + envelope_size;
1578 if 8 > max_ordinal {
1579 return Ok(());
1580 }
1581
1582 let cur_offset: usize = (8 - 1) * envelope_size;
1585
1586 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1588
1589 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1594 self.ipc_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1595 encoder,
1596 offset + cur_offset,
1597 depth,
1598 )?;
1599
1600 _prev_end_offset = cur_offset + envelope_size;
1601 if 9 > max_ordinal {
1602 return Ok(());
1603 }
1604
1605 let cur_offset: usize = (9 - 1) * envelope_size;
1608
1609 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1611
1612 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1617 self.other_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1618 encoder,
1619 offset + cur_offset,
1620 depth,
1621 )?;
1622
1623 _prev_end_offset = cur_offset + envelope_size;
1624 if 10 > max_ordinal {
1625 return Ok(());
1626 }
1627
1628 let cur_offset: usize = (10 - 1) * envelope_size;
1631
1632 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1634
1635 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1640 self.free_loaned_bytes
1641 .as_ref()
1642 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1643 encoder,
1644 offset + cur_offset,
1645 depth,
1646 )?;
1647
1648 _prev_end_offset = cur_offset + envelope_size;
1649 if 11 > max_ordinal {
1650 return Ok(());
1651 }
1652
1653 let cur_offset: usize = (11 - 1) * envelope_size;
1656
1657 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1659
1660 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1665 self.cache_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1666 encoder,
1667 offset + cur_offset,
1668 depth,
1669 )?;
1670
1671 _prev_end_offset = cur_offset + envelope_size;
1672 if 12 > max_ordinal {
1673 return Ok(());
1674 }
1675
1676 let cur_offset: usize = (12 - 1) * envelope_size;
1679
1680 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1682
1683 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1688 self.slab_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1689 encoder,
1690 offset + cur_offset,
1691 depth,
1692 )?;
1693
1694 _prev_end_offset = cur_offset + envelope_size;
1695 if 13 > max_ordinal {
1696 return Ok(());
1697 }
1698
1699 let cur_offset: usize = (13 - 1) * envelope_size;
1702
1703 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1705
1706 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1711 self.zram_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1712 encoder,
1713 offset + cur_offset,
1714 depth,
1715 )?;
1716
1717 _prev_end_offset = cur_offset + envelope_size;
1718 if 14 > max_ordinal {
1719 return Ok(());
1720 }
1721
1722 let cur_offset: usize = (14 - 1) * envelope_size;
1725
1726 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1728
1729 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1734 self.vmo_reclaim_total_bytes
1735 .as_ref()
1736 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1737 encoder,
1738 offset + cur_offset,
1739 depth,
1740 )?;
1741
1742 _prev_end_offset = cur_offset + envelope_size;
1743 if 15 > max_ordinal {
1744 return Ok(());
1745 }
1746
1747 let cur_offset: usize = (15 - 1) * envelope_size;
1750
1751 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1753
1754 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1759 self.vmo_reclaim_newest_bytes
1760 .as_ref()
1761 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1762 encoder,
1763 offset + cur_offset,
1764 depth,
1765 )?;
1766
1767 _prev_end_offset = cur_offset + envelope_size;
1768 if 16 > max_ordinal {
1769 return Ok(());
1770 }
1771
1772 let cur_offset: usize = (16 - 1) * envelope_size;
1775
1776 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1778
1779 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1784 self.vmo_reclaim_oldest_bytes
1785 .as_ref()
1786 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1787 encoder,
1788 offset + cur_offset,
1789 depth,
1790 )?;
1791
1792 _prev_end_offset = cur_offset + envelope_size;
1793 if 17 > max_ordinal {
1794 return Ok(());
1795 }
1796
1797 let cur_offset: usize = (17 - 1) * envelope_size;
1800
1801 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1803
1804 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1809 self.vmo_reclaim_disabled_bytes
1810 .as_ref()
1811 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1812 encoder,
1813 offset + cur_offset,
1814 depth,
1815 )?;
1816
1817 _prev_end_offset = cur_offset + envelope_size;
1818 if 18 > max_ordinal {
1819 return Ok(());
1820 }
1821
1822 let cur_offset: usize = (18 - 1) * envelope_size;
1825
1826 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1828
1829 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1834 self.vmo_discardable_locked_bytes
1835 .as_ref()
1836 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1837 encoder,
1838 offset + cur_offset,
1839 depth,
1840 )?;
1841
1842 _prev_end_offset = cur_offset + envelope_size;
1843 if 19 > max_ordinal {
1844 return Ok(());
1845 }
1846
1847 let cur_offset: usize = (19 - 1) * envelope_size;
1850
1851 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1853
1854 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1859 self.vmo_discardable_unlocked_bytes
1860 .as_ref()
1861 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1862 encoder,
1863 offset + cur_offset,
1864 depth,
1865 )?;
1866
1867 _prev_end_offset = cur_offset + envelope_size;
1868
1869 Ok(())
1870 }
1871 }
1872
1873 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MemoryStats {
1874 #[inline(always)]
1875 fn new_empty() -> Self {
1876 Self::default()
1877 }
1878
1879 unsafe fn decode(
1880 &mut self,
1881 decoder: &mut fidl::encoding::Decoder<'_, D>,
1882 offset: usize,
1883 mut depth: fidl::encoding::Depth,
1884 ) -> fidl::Result<()> {
1885 decoder.debug_check_bounds::<Self>(offset);
1886 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1887 None => return Err(fidl::Error::NotNullable),
1888 Some(len) => len,
1889 };
1890 if len == 0 {
1892 return Ok(());
1893 };
1894 depth.increment()?;
1895 let envelope_size = 8;
1896 let bytes_len = len * envelope_size;
1897 let offset = decoder.out_of_line_offset(bytes_len)?;
1898 let mut _next_ordinal_to_read = 0;
1900 let mut next_offset = offset;
1901 let end_offset = offset + bytes_len;
1902 _next_ordinal_to_read += 1;
1903 if next_offset >= end_offset {
1904 return Ok(());
1905 }
1906
1907 while _next_ordinal_to_read < 1 {
1909 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1910 _next_ordinal_to_read += 1;
1911 next_offset += envelope_size;
1912 }
1913
1914 let next_out_of_line = decoder.next_out_of_line();
1915 let handles_before = decoder.remaining_handles();
1916 if let Some((inlined, num_bytes, num_handles)) =
1917 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1918 {
1919 let member_inline_size =
1920 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1921 if inlined != (member_inline_size <= 4) {
1922 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1923 }
1924 let inner_offset;
1925 let mut inner_depth = depth.clone();
1926 if inlined {
1927 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1928 inner_offset = next_offset;
1929 } else {
1930 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1931 inner_depth.increment()?;
1932 }
1933 let val_ref = self.total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
1934 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1935 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1936 {
1937 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1938 }
1939 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1940 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1941 }
1942 }
1943
1944 next_offset += envelope_size;
1945 _next_ordinal_to_read += 1;
1946 if next_offset >= end_offset {
1947 return Ok(());
1948 }
1949
1950 while _next_ordinal_to_read < 2 {
1952 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1953 _next_ordinal_to_read += 1;
1954 next_offset += envelope_size;
1955 }
1956
1957 let next_out_of_line = decoder.next_out_of_line();
1958 let handles_before = decoder.remaining_handles();
1959 if let Some((inlined, num_bytes, num_handles)) =
1960 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1961 {
1962 let member_inline_size =
1963 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1964 if inlined != (member_inline_size <= 4) {
1965 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1966 }
1967 let inner_offset;
1968 let mut inner_depth = depth.clone();
1969 if inlined {
1970 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1971 inner_offset = next_offset;
1972 } else {
1973 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1974 inner_depth.increment()?;
1975 }
1976 let val_ref = self.free_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
1977 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1978 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1979 {
1980 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1981 }
1982 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1983 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1984 }
1985 }
1986
1987 next_offset += envelope_size;
1988 _next_ordinal_to_read += 1;
1989 if next_offset >= end_offset {
1990 return Ok(());
1991 }
1992
1993 while _next_ordinal_to_read < 3 {
1995 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1996 _next_ordinal_to_read += 1;
1997 next_offset += envelope_size;
1998 }
1999
2000 let next_out_of_line = decoder.next_out_of_line();
2001 let handles_before = decoder.remaining_handles();
2002 if let Some((inlined, num_bytes, num_handles)) =
2003 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2004 {
2005 let member_inline_size =
2006 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2007 if inlined != (member_inline_size <= 4) {
2008 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2009 }
2010 let inner_offset;
2011 let mut inner_depth = depth.clone();
2012 if inlined {
2013 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2014 inner_offset = next_offset;
2015 } else {
2016 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2017 inner_depth.increment()?;
2018 }
2019 let val_ref = self.wired_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2020 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2021 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2022 {
2023 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2024 }
2025 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2026 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2027 }
2028 }
2029
2030 next_offset += envelope_size;
2031 _next_ordinal_to_read += 1;
2032 if next_offset >= end_offset {
2033 return Ok(());
2034 }
2035
2036 while _next_ordinal_to_read < 4 {
2038 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2039 _next_ordinal_to_read += 1;
2040 next_offset += envelope_size;
2041 }
2042
2043 let next_out_of_line = decoder.next_out_of_line();
2044 let handles_before = decoder.remaining_handles();
2045 if let Some((inlined, num_bytes, num_handles)) =
2046 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2047 {
2048 let member_inline_size =
2049 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2050 if inlined != (member_inline_size <= 4) {
2051 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2052 }
2053 let inner_offset;
2054 let mut inner_depth = depth.clone();
2055 if inlined {
2056 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2057 inner_offset = next_offset;
2058 } else {
2059 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2060 inner_depth.increment()?;
2061 }
2062 let val_ref = self.total_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2063 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2064 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2065 {
2066 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2067 }
2068 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2069 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2070 }
2071 }
2072
2073 next_offset += envelope_size;
2074 _next_ordinal_to_read += 1;
2075 if next_offset >= end_offset {
2076 return Ok(());
2077 }
2078
2079 while _next_ordinal_to_read < 5 {
2081 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2082 _next_ordinal_to_read += 1;
2083 next_offset += envelope_size;
2084 }
2085
2086 let next_out_of_line = decoder.next_out_of_line();
2087 let handles_before = decoder.remaining_handles();
2088 if let Some((inlined, num_bytes, num_handles)) =
2089 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2090 {
2091 let member_inline_size =
2092 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2093 if inlined != (member_inline_size <= 4) {
2094 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2095 }
2096 let inner_offset;
2097 let mut inner_depth = depth.clone();
2098 if inlined {
2099 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2100 inner_offset = next_offset;
2101 } else {
2102 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2103 inner_depth.increment()?;
2104 }
2105 let val_ref = self.free_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2106 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2107 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2108 {
2109 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2110 }
2111 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2112 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2113 }
2114 }
2115
2116 next_offset += envelope_size;
2117 _next_ordinal_to_read += 1;
2118 if next_offset >= end_offset {
2119 return Ok(());
2120 }
2121
2122 while _next_ordinal_to_read < 6 {
2124 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2125 _next_ordinal_to_read += 1;
2126 next_offset += envelope_size;
2127 }
2128
2129 let next_out_of_line = decoder.next_out_of_line();
2130 let handles_before = decoder.remaining_handles();
2131 if let Some((inlined, num_bytes, num_handles)) =
2132 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2133 {
2134 let member_inline_size =
2135 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2136 if inlined != (member_inline_size <= 4) {
2137 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2138 }
2139 let inner_offset;
2140 let mut inner_depth = depth.clone();
2141 if inlined {
2142 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2143 inner_offset = next_offset;
2144 } else {
2145 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2146 inner_depth.increment()?;
2147 }
2148 let val_ref = self.vmo_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2149 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2150 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2151 {
2152 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2153 }
2154 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2155 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2156 }
2157 }
2158
2159 next_offset += envelope_size;
2160 _next_ordinal_to_read += 1;
2161 if next_offset >= end_offset {
2162 return Ok(());
2163 }
2164
2165 while _next_ordinal_to_read < 7 {
2167 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2168 _next_ordinal_to_read += 1;
2169 next_offset += envelope_size;
2170 }
2171
2172 let next_out_of_line = decoder.next_out_of_line();
2173 let handles_before = decoder.remaining_handles();
2174 if let Some((inlined, num_bytes, num_handles)) =
2175 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2176 {
2177 let member_inline_size =
2178 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2179 if inlined != (member_inline_size <= 4) {
2180 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2181 }
2182 let inner_offset;
2183 let mut inner_depth = depth.clone();
2184 if inlined {
2185 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2186 inner_offset = next_offset;
2187 } else {
2188 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2189 inner_depth.increment()?;
2190 }
2191 let val_ref =
2192 self.mmu_overhead_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2193 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2194 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2195 {
2196 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2197 }
2198 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2199 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2200 }
2201 }
2202
2203 next_offset += envelope_size;
2204 _next_ordinal_to_read += 1;
2205 if next_offset >= end_offset {
2206 return Ok(());
2207 }
2208
2209 while _next_ordinal_to_read < 8 {
2211 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2212 _next_ordinal_to_read += 1;
2213 next_offset += envelope_size;
2214 }
2215
2216 let next_out_of_line = decoder.next_out_of_line();
2217 let handles_before = decoder.remaining_handles();
2218 if let Some((inlined, num_bytes, num_handles)) =
2219 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2220 {
2221 let member_inline_size =
2222 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2223 if inlined != (member_inline_size <= 4) {
2224 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2225 }
2226 let inner_offset;
2227 let mut inner_depth = depth.clone();
2228 if inlined {
2229 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2230 inner_offset = next_offset;
2231 } else {
2232 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2233 inner_depth.increment()?;
2234 }
2235 let val_ref = self.ipc_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2236 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2237 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2238 {
2239 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2240 }
2241 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2242 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2243 }
2244 }
2245
2246 next_offset += envelope_size;
2247 _next_ordinal_to_read += 1;
2248 if next_offset >= end_offset {
2249 return Ok(());
2250 }
2251
2252 while _next_ordinal_to_read < 9 {
2254 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2255 _next_ordinal_to_read += 1;
2256 next_offset += envelope_size;
2257 }
2258
2259 let next_out_of_line = decoder.next_out_of_line();
2260 let handles_before = decoder.remaining_handles();
2261 if let Some((inlined, num_bytes, num_handles)) =
2262 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2263 {
2264 let member_inline_size =
2265 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2266 if inlined != (member_inline_size <= 4) {
2267 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2268 }
2269 let inner_offset;
2270 let mut inner_depth = depth.clone();
2271 if inlined {
2272 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2273 inner_offset = next_offset;
2274 } else {
2275 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2276 inner_depth.increment()?;
2277 }
2278 let val_ref = self.other_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2279 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2280 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2281 {
2282 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2283 }
2284 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2285 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2286 }
2287 }
2288
2289 next_offset += envelope_size;
2290 _next_ordinal_to_read += 1;
2291 if next_offset >= end_offset {
2292 return Ok(());
2293 }
2294
2295 while _next_ordinal_to_read < 10 {
2297 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2298 _next_ordinal_to_read += 1;
2299 next_offset += envelope_size;
2300 }
2301
2302 let next_out_of_line = decoder.next_out_of_line();
2303 let handles_before = decoder.remaining_handles();
2304 if let Some((inlined, num_bytes, num_handles)) =
2305 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2306 {
2307 let member_inline_size =
2308 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2309 if inlined != (member_inline_size <= 4) {
2310 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2311 }
2312 let inner_offset;
2313 let mut inner_depth = depth.clone();
2314 if inlined {
2315 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2316 inner_offset = next_offset;
2317 } else {
2318 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2319 inner_depth.increment()?;
2320 }
2321 let val_ref =
2322 self.free_loaned_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2323 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2324 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2325 {
2326 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2327 }
2328 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2329 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2330 }
2331 }
2332
2333 next_offset += envelope_size;
2334 _next_ordinal_to_read += 1;
2335 if next_offset >= end_offset {
2336 return Ok(());
2337 }
2338
2339 while _next_ordinal_to_read < 11 {
2341 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2342 _next_ordinal_to_read += 1;
2343 next_offset += envelope_size;
2344 }
2345
2346 let next_out_of_line = decoder.next_out_of_line();
2347 let handles_before = decoder.remaining_handles();
2348 if let Some((inlined, num_bytes, num_handles)) =
2349 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2350 {
2351 let member_inline_size =
2352 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2353 if inlined != (member_inline_size <= 4) {
2354 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2355 }
2356 let inner_offset;
2357 let mut inner_depth = depth.clone();
2358 if inlined {
2359 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2360 inner_offset = next_offset;
2361 } else {
2362 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2363 inner_depth.increment()?;
2364 }
2365 let val_ref = self.cache_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2366 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2367 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2368 {
2369 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2370 }
2371 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2372 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2373 }
2374 }
2375
2376 next_offset += envelope_size;
2377 _next_ordinal_to_read += 1;
2378 if next_offset >= end_offset {
2379 return Ok(());
2380 }
2381
2382 while _next_ordinal_to_read < 12 {
2384 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2385 _next_ordinal_to_read += 1;
2386 next_offset += envelope_size;
2387 }
2388
2389 let next_out_of_line = decoder.next_out_of_line();
2390 let handles_before = decoder.remaining_handles();
2391 if let Some((inlined, num_bytes, num_handles)) =
2392 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2393 {
2394 let member_inline_size =
2395 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2396 if inlined != (member_inline_size <= 4) {
2397 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2398 }
2399 let inner_offset;
2400 let mut inner_depth = depth.clone();
2401 if inlined {
2402 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2403 inner_offset = next_offset;
2404 } else {
2405 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2406 inner_depth.increment()?;
2407 }
2408 let val_ref = self.slab_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2409 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2410 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2411 {
2412 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2413 }
2414 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2415 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2416 }
2417 }
2418
2419 next_offset += envelope_size;
2420 _next_ordinal_to_read += 1;
2421 if next_offset >= end_offset {
2422 return Ok(());
2423 }
2424
2425 while _next_ordinal_to_read < 13 {
2427 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2428 _next_ordinal_to_read += 1;
2429 next_offset += envelope_size;
2430 }
2431
2432 let next_out_of_line = decoder.next_out_of_line();
2433 let handles_before = decoder.remaining_handles();
2434 if let Some((inlined, num_bytes, num_handles)) =
2435 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2436 {
2437 let member_inline_size =
2438 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2439 if inlined != (member_inline_size <= 4) {
2440 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2441 }
2442 let inner_offset;
2443 let mut inner_depth = depth.clone();
2444 if inlined {
2445 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2446 inner_offset = next_offset;
2447 } else {
2448 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2449 inner_depth.increment()?;
2450 }
2451 let val_ref = self.zram_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2452 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2453 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2454 {
2455 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2456 }
2457 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2458 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2459 }
2460 }
2461
2462 next_offset += envelope_size;
2463 _next_ordinal_to_read += 1;
2464 if next_offset >= end_offset {
2465 return Ok(());
2466 }
2467
2468 while _next_ordinal_to_read < 14 {
2470 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2471 _next_ordinal_to_read += 1;
2472 next_offset += envelope_size;
2473 }
2474
2475 let next_out_of_line = decoder.next_out_of_line();
2476 let handles_before = decoder.remaining_handles();
2477 if let Some((inlined, num_bytes, num_handles)) =
2478 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2479 {
2480 let member_inline_size =
2481 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2482 if inlined != (member_inline_size <= 4) {
2483 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2484 }
2485 let inner_offset;
2486 let mut inner_depth = depth.clone();
2487 if inlined {
2488 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2489 inner_offset = next_offset;
2490 } else {
2491 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2492 inner_depth.increment()?;
2493 }
2494 let val_ref =
2495 self.vmo_reclaim_total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2496 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2497 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2498 {
2499 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2500 }
2501 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2502 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2503 }
2504 }
2505
2506 next_offset += envelope_size;
2507 _next_ordinal_to_read += 1;
2508 if next_offset >= end_offset {
2509 return Ok(());
2510 }
2511
2512 while _next_ordinal_to_read < 15 {
2514 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2515 _next_ordinal_to_read += 1;
2516 next_offset += envelope_size;
2517 }
2518
2519 let next_out_of_line = decoder.next_out_of_line();
2520 let handles_before = decoder.remaining_handles();
2521 if let Some((inlined, num_bytes, num_handles)) =
2522 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2523 {
2524 let member_inline_size =
2525 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2526 if inlined != (member_inline_size <= 4) {
2527 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2528 }
2529 let inner_offset;
2530 let mut inner_depth = depth.clone();
2531 if inlined {
2532 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2533 inner_offset = next_offset;
2534 } else {
2535 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2536 inner_depth.increment()?;
2537 }
2538 let val_ref =
2539 self.vmo_reclaim_newest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2540 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2541 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2542 {
2543 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2544 }
2545 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2546 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2547 }
2548 }
2549
2550 next_offset += envelope_size;
2551 _next_ordinal_to_read += 1;
2552 if next_offset >= end_offset {
2553 return Ok(());
2554 }
2555
2556 while _next_ordinal_to_read < 16 {
2558 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2559 _next_ordinal_to_read += 1;
2560 next_offset += envelope_size;
2561 }
2562
2563 let next_out_of_line = decoder.next_out_of_line();
2564 let handles_before = decoder.remaining_handles();
2565 if let Some((inlined, num_bytes, num_handles)) =
2566 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2567 {
2568 let member_inline_size =
2569 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2570 if inlined != (member_inline_size <= 4) {
2571 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2572 }
2573 let inner_offset;
2574 let mut inner_depth = depth.clone();
2575 if inlined {
2576 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2577 inner_offset = next_offset;
2578 } else {
2579 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2580 inner_depth.increment()?;
2581 }
2582 let val_ref =
2583 self.vmo_reclaim_oldest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2584 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2585 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2586 {
2587 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2588 }
2589 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2590 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2591 }
2592 }
2593
2594 next_offset += envelope_size;
2595 _next_ordinal_to_read += 1;
2596 if next_offset >= end_offset {
2597 return Ok(());
2598 }
2599
2600 while _next_ordinal_to_read < 17 {
2602 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2603 _next_ordinal_to_read += 1;
2604 next_offset += envelope_size;
2605 }
2606
2607 let next_out_of_line = decoder.next_out_of_line();
2608 let handles_before = decoder.remaining_handles();
2609 if let Some((inlined, num_bytes, num_handles)) =
2610 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2611 {
2612 let member_inline_size =
2613 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2614 if inlined != (member_inline_size <= 4) {
2615 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2616 }
2617 let inner_offset;
2618 let mut inner_depth = depth.clone();
2619 if inlined {
2620 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2621 inner_offset = next_offset;
2622 } else {
2623 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2624 inner_depth.increment()?;
2625 }
2626 let val_ref =
2627 self.vmo_reclaim_disabled_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2628 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2629 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2630 {
2631 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2632 }
2633 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2634 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2635 }
2636 }
2637
2638 next_offset += envelope_size;
2639 _next_ordinal_to_read += 1;
2640 if next_offset >= end_offset {
2641 return Ok(());
2642 }
2643
2644 while _next_ordinal_to_read < 18 {
2646 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2647 _next_ordinal_to_read += 1;
2648 next_offset += envelope_size;
2649 }
2650
2651 let next_out_of_line = decoder.next_out_of_line();
2652 let handles_before = decoder.remaining_handles();
2653 if let Some((inlined, num_bytes, num_handles)) =
2654 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2655 {
2656 let member_inline_size =
2657 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2658 if inlined != (member_inline_size <= 4) {
2659 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2660 }
2661 let inner_offset;
2662 let mut inner_depth = depth.clone();
2663 if inlined {
2664 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2665 inner_offset = next_offset;
2666 } else {
2667 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2668 inner_depth.increment()?;
2669 }
2670 let val_ref = self
2671 .vmo_discardable_locked_bytes
2672 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2673 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2674 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2675 {
2676 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2677 }
2678 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2679 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2680 }
2681 }
2682
2683 next_offset += envelope_size;
2684 _next_ordinal_to_read += 1;
2685 if next_offset >= end_offset {
2686 return Ok(());
2687 }
2688
2689 while _next_ordinal_to_read < 19 {
2691 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2692 _next_ordinal_to_read += 1;
2693 next_offset += envelope_size;
2694 }
2695
2696 let next_out_of_line = decoder.next_out_of_line();
2697 let handles_before = decoder.remaining_handles();
2698 if let Some((inlined, num_bytes, num_handles)) =
2699 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2700 {
2701 let member_inline_size =
2702 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2703 if inlined != (member_inline_size <= 4) {
2704 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2705 }
2706 let inner_offset;
2707 let mut inner_depth = depth.clone();
2708 if inlined {
2709 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2710 inner_offset = next_offset;
2711 } else {
2712 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2713 inner_depth.increment()?;
2714 }
2715 let val_ref = self
2716 .vmo_discardable_unlocked_bytes
2717 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2718 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2719 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2720 {
2721 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2722 }
2723 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2724 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2725 }
2726 }
2727
2728 next_offset += envelope_size;
2729
2730 while next_offset < end_offset {
2732 _next_ordinal_to_read += 1;
2733 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2734 next_offset += envelope_size;
2735 }
2736
2737 Ok(())
2738 }
2739 }
2740
2741 impl MemoryStatsCompression {
2742 #[inline(always)]
2743 fn max_ordinal_present(&self) -> u64 {
2744 if let Some(_) = self.pages_decompressed_within_log_time {
2745 return 14;
2746 }
2747 if let Some(_) = self.pages_decompressed_unit_ns {
2748 return 13;
2749 }
2750 if let Some(_) = self.critical_memory_page_compressions {
2751 return 12;
2752 }
2753 if let Some(_) = self.memory_pressure_page_compressions {
2754 return 11;
2755 }
2756 if let Some(_) = self.eager_page_compressions {
2757 return 10;
2758 }
2759 if let Some(_) = self.compressed_page_evictions {
2760 return 9;
2761 }
2762 if let Some(_) = self.total_page_decompressions {
2763 return 8;
2764 }
2765 if let Some(_) = self.failed_page_compression_attempts {
2766 return 7;
2767 }
2768 if let Some(_) = self.total_page_compression_attempts {
2769 return 6;
2770 }
2771 if let Some(_) = self.decompression_time {
2772 return 5;
2773 }
2774 if let Some(_) = self.compression_time {
2775 return 4;
2776 }
2777 if let Some(_) = self.compressed_fragmentation_bytes {
2778 return 3;
2779 }
2780 if let Some(_) = self.compressed_storage_bytes {
2781 return 2;
2782 }
2783 if let Some(_) = self.uncompressed_storage_bytes {
2784 return 1;
2785 }
2786 0
2787 }
2788 }
2789
2790 impl fidl::encoding::ValueTypeMarker for MemoryStatsCompression {
2791 type Borrowed<'a> = &'a Self;
2792 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2793 value
2794 }
2795 }
2796
2797 unsafe impl fidl::encoding::TypeMarker for MemoryStatsCompression {
2798 type Owned = Self;
2799
2800 #[inline(always)]
2801 fn inline_align(_context: fidl::encoding::Context) -> usize {
2802 8
2803 }
2804
2805 #[inline(always)]
2806 fn inline_size(_context: fidl::encoding::Context) -> usize {
2807 16
2808 }
2809 }
2810
2811 unsafe impl<D: fidl::encoding::ResourceDialect>
2812 fidl::encoding::Encode<MemoryStatsCompression, D> for &MemoryStatsCompression
2813 {
2814 unsafe fn encode(
2815 self,
2816 encoder: &mut fidl::encoding::Encoder<'_, D>,
2817 offset: usize,
2818 mut depth: fidl::encoding::Depth,
2819 ) -> fidl::Result<()> {
2820 encoder.debug_check_bounds::<MemoryStatsCompression>(offset);
2821 let max_ordinal: u64 = self.max_ordinal_present();
2823 encoder.write_num(max_ordinal, offset);
2824 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2825 if max_ordinal == 0 {
2827 return Ok(());
2828 }
2829 depth.increment()?;
2830 let envelope_size = 8;
2831 let bytes_len = max_ordinal as usize * envelope_size;
2832 #[allow(unused_variables)]
2833 let offset = encoder.out_of_line_offset(bytes_len);
2834 let mut _prev_end_offset: usize = 0;
2835 if 1 > max_ordinal {
2836 return Ok(());
2837 }
2838
2839 let cur_offset: usize = (1 - 1) * envelope_size;
2842
2843 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2845
2846 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2851 self.uncompressed_storage_bytes
2852 .as_ref()
2853 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2854 encoder,
2855 offset + cur_offset,
2856 depth,
2857 )?;
2858
2859 _prev_end_offset = cur_offset + envelope_size;
2860 if 2 > max_ordinal {
2861 return Ok(());
2862 }
2863
2864 let cur_offset: usize = (2 - 1) * envelope_size;
2867
2868 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2870
2871 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2876 self.compressed_storage_bytes
2877 .as_ref()
2878 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2879 encoder,
2880 offset + cur_offset,
2881 depth,
2882 )?;
2883
2884 _prev_end_offset = cur_offset + envelope_size;
2885 if 3 > max_ordinal {
2886 return Ok(());
2887 }
2888
2889 let cur_offset: usize = (3 - 1) * envelope_size;
2892
2893 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2895
2896 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2901 self.compressed_fragmentation_bytes
2902 .as_ref()
2903 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2904 encoder,
2905 offset + cur_offset,
2906 depth,
2907 )?;
2908
2909 _prev_end_offset = cur_offset + envelope_size;
2910 if 4 > max_ordinal {
2911 return Ok(());
2912 }
2913
2914 let cur_offset: usize = (4 - 1) * envelope_size;
2917
2918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2920
2921 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2926 self.compression_time
2927 .as_ref()
2928 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2929 encoder,
2930 offset + cur_offset,
2931 depth,
2932 )?;
2933
2934 _prev_end_offset = cur_offset + envelope_size;
2935 if 5 > max_ordinal {
2936 return Ok(());
2937 }
2938
2939 let cur_offset: usize = (5 - 1) * envelope_size;
2942
2943 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2945
2946 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2951 self.decompression_time
2952 .as_ref()
2953 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2954 encoder,
2955 offset + cur_offset,
2956 depth,
2957 )?;
2958
2959 _prev_end_offset = cur_offset + envelope_size;
2960 if 6 > max_ordinal {
2961 return Ok(());
2962 }
2963
2964 let cur_offset: usize = (6 - 1) * envelope_size;
2967
2968 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2970
2971 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2976 self.total_page_compression_attempts
2977 .as_ref()
2978 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2979 encoder,
2980 offset + cur_offset,
2981 depth,
2982 )?;
2983
2984 _prev_end_offset = cur_offset + envelope_size;
2985 if 7 > max_ordinal {
2986 return Ok(());
2987 }
2988
2989 let cur_offset: usize = (7 - 1) * envelope_size;
2992
2993 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2995
2996 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3001 self.failed_page_compression_attempts
3002 .as_ref()
3003 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3004 encoder,
3005 offset + cur_offset,
3006 depth,
3007 )?;
3008
3009 _prev_end_offset = cur_offset + envelope_size;
3010 if 8 > max_ordinal {
3011 return Ok(());
3012 }
3013
3014 let cur_offset: usize = (8 - 1) * envelope_size;
3017
3018 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3020
3021 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3026 self.total_page_decompressions
3027 .as_ref()
3028 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3029 encoder,
3030 offset + cur_offset,
3031 depth,
3032 )?;
3033
3034 _prev_end_offset = cur_offset + envelope_size;
3035 if 9 > max_ordinal {
3036 return Ok(());
3037 }
3038
3039 let cur_offset: usize = (9 - 1) * envelope_size;
3042
3043 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3045
3046 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3051 self.compressed_page_evictions
3052 .as_ref()
3053 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3054 encoder,
3055 offset + cur_offset,
3056 depth,
3057 )?;
3058
3059 _prev_end_offset = cur_offset + envelope_size;
3060 if 10 > max_ordinal {
3061 return Ok(());
3062 }
3063
3064 let cur_offset: usize = (10 - 1) * envelope_size;
3067
3068 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3070
3071 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3076 self.eager_page_compressions
3077 .as_ref()
3078 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3079 encoder,
3080 offset + cur_offset,
3081 depth,
3082 )?;
3083
3084 _prev_end_offset = cur_offset + envelope_size;
3085 if 11 > max_ordinal {
3086 return Ok(());
3087 }
3088
3089 let cur_offset: usize = (11 - 1) * envelope_size;
3092
3093 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3095
3096 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3101 self.memory_pressure_page_compressions
3102 .as_ref()
3103 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3104 encoder,
3105 offset + cur_offset,
3106 depth,
3107 )?;
3108
3109 _prev_end_offset = cur_offset + envelope_size;
3110 if 12 > max_ordinal {
3111 return Ok(());
3112 }
3113
3114 let cur_offset: usize = (12 - 1) * envelope_size;
3117
3118 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3120
3121 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3126 self.critical_memory_page_compressions
3127 .as_ref()
3128 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3129 encoder,
3130 offset + cur_offset,
3131 depth,
3132 )?;
3133
3134 _prev_end_offset = cur_offset + envelope_size;
3135 if 13 > max_ordinal {
3136 return Ok(());
3137 }
3138
3139 let cur_offset: usize = (13 - 1) * envelope_size;
3142
3143 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3145
3146 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3151 self.pages_decompressed_unit_ns
3152 .as_ref()
3153 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3154 encoder,
3155 offset + cur_offset,
3156 depth,
3157 )?;
3158
3159 _prev_end_offset = cur_offset + envelope_size;
3160 if 14 > max_ordinal {
3161 return Ok(());
3162 }
3163
3164 let cur_offset: usize = (14 - 1) * envelope_size;
3167
3168 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3170
3171 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u64, 8>, D>(
3176 self.pages_decompressed_within_log_time.as_ref().map(
3177 <fidl::encoding::Array<u64, 8> as fidl::encoding::ValueTypeMarker>::borrow,
3178 ),
3179 encoder,
3180 offset + cur_offset,
3181 depth,
3182 )?;
3183
3184 _prev_end_offset = cur_offset + envelope_size;
3185
3186 Ok(())
3187 }
3188 }
3189
3190 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3191 for MemoryStatsCompression
3192 {
3193 #[inline(always)]
3194 fn new_empty() -> Self {
3195 Self::default()
3196 }
3197
3198 unsafe fn decode(
3199 &mut self,
3200 decoder: &mut fidl::encoding::Decoder<'_, D>,
3201 offset: usize,
3202 mut depth: fidl::encoding::Depth,
3203 ) -> fidl::Result<()> {
3204 decoder.debug_check_bounds::<Self>(offset);
3205 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3206 None => return Err(fidl::Error::NotNullable),
3207 Some(len) => len,
3208 };
3209 if len == 0 {
3211 return Ok(());
3212 };
3213 depth.increment()?;
3214 let envelope_size = 8;
3215 let bytes_len = len * envelope_size;
3216 let offset = decoder.out_of_line_offset(bytes_len)?;
3217 let mut _next_ordinal_to_read = 0;
3219 let mut next_offset = offset;
3220 let end_offset = offset + bytes_len;
3221 _next_ordinal_to_read += 1;
3222 if next_offset >= end_offset {
3223 return Ok(());
3224 }
3225
3226 while _next_ordinal_to_read < 1 {
3228 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3229 _next_ordinal_to_read += 1;
3230 next_offset += envelope_size;
3231 }
3232
3233 let next_out_of_line = decoder.next_out_of_line();
3234 let handles_before = decoder.remaining_handles();
3235 if let Some((inlined, num_bytes, num_handles)) =
3236 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3237 {
3238 let member_inline_size =
3239 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3240 if inlined != (member_inline_size <= 4) {
3241 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3242 }
3243 let inner_offset;
3244 let mut inner_depth = depth.clone();
3245 if inlined {
3246 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3247 inner_offset = next_offset;
3248 } else {
3249 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3250 inner_depth.increment()?;
3251 }
3252 let val_ref =
3253 self.uncompressed_storage_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
3254 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3255 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3256 {
3257 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3258 }
3259 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3260 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3261 }
3262 }
3263
3264 next_offset += envelope_size;
3265 _next_ordinal_to_read += 1;
3266 if next_offset >= end_offset {
3267 return Ok(());
3268 }
3269
3270 while _next_ordinal_to_read < 2 {
3272 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3273 _next_ordinal_to_read += 1;
3274 next_offset += envelope_size;
3275 }
3276
3277 let next_out_of_line = decoder.next_out_of_line();
3278 let handles_before = decoder.remaining_handles();
3279 if let Some((inlined, num_bytes, num_handles)) =
3280 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3281 {
3282 let member_inline_size =
3283 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3284 if inlined != (member_inline_size <= 4) {
3285 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3286 }
3287 let inner_offset;
3288 let mut inner_depth = depth.clone();
3289 if inlined {
3290 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3291 inner_offset = next_offset;
3292 } else {
3293 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3294 inner_depth.increment()?;
3295 }
3296 let val_ref =
3297 self.compressed_storage_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
3298 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3299 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3300 {
3301 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3302 }
3303 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3304 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3305 }
3306 }
3307
3308 next_offset += envelope_size;
3309 _next_ordinal_to_read += 1;
3310 if next_offset >= end_offset {
3311 return Ok(());
3312 }
3313
3314 while _next_ordinal_to_read < 3 {
3316 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3317 _next_ordinal_to_read += 1;
3318 next_offset += envelope_size;
3319 }
3320
3321 let next_out_of_line = decoder.next_out_of_line();
3322 let handles_before = decoder.remaining_handles();
3323 if let Some((inlined, num_bytes, num_handles)) =
3324 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3325 {
3326 let member_inline_size =
3327 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3328 if inlined != (member_inline_size <= 4) {
3329 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3330 }
3331 let inner_offset;
3332 let mut inner_depth = depth.clone();
3333 if inlined {
3334 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3335 inner_offset = next_offset;
3336 } else {
3337 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3338 inner_depth.increment()?;
3339 }
3340 let val_ref = self
3341 .compressed_fragmentation_bytes
3342 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3343 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3344 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3345 {
3346 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3347 }
3348 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3349 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3350 }
3351 }
3352
3353 next_offset += envelope_size;
3354 _next_ordinal_to_read += 1;
3355 if next_offset >= end_offset {
3356 return Ok(());
3357 }
3358
3359 while _next_ordinal_to_read < 4 {
3361 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3362 _next_ordinal_to_read += 1;
3363 next_offset += envelope_size;
3364 }
3365
3366 let next_out_of_line = decoder.next_out_of_line();
3367 let handles_before = decoder.remaining_handles();
3368 if let Some((inlined, num_bytes, num_handles)) =
3369 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3370 {
3371 let member_inline_size =
3372 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3373 if inlined != (member_inline_size <= 4) {
3374 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3375 }
3376 let inner_offset;
3377 let mut inner_depth = depth.clone();
3378 if inlined {
3379 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3380 inner_offset = next_offset;
3381 } else {
3382 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3383 inner_depth.increment()?;
3384 }
3385 let val_ref = self.compression_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
3386 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3387 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3388 {
3389 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3390 }
3391 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3392 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3393 }
3394 }
3395
3396 next_offset += envelope_size;
3397 _next_ordinal_to_read += 1;
3398 if next_offset >= end_offset {
3399 return Ok(());
3400 }
3401
3402 while _next_ordinal_to_read < 5 {
3404 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3405 _next_ordinal_to_read += 1;
3406 next_offset += envelope_size;
3407 }
3408
3409 let next_out_of_line = decoder.next_out_of_line();
3410 let handles_before = decoder.remaining_handles();
3411 if let Some((inlined, num_bytes, num_handles)) =
3412 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3413 {
3414 let member_inline_size =
3415 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3416 if inlined != (member_inline_size <= 4) {
3417 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3418 }
3419 let inner_offset;
3420 let mut inner_depth = depth.clone();
3421 if inlined {
3422 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3423 inner_offset = next_offset;
3424 } else {
3425 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3426 inner_depth.increment()?;
3427 }
3428 let val_ref =
3429 self.decompression_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
3430 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3431 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3432 {
3433 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3434 }
3435 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3436 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3437 }
3438 }
3439
3440 next_offset += envelope_size;
3441 _next_ordinal_to_read += 1;
3442 if next_offset >= end_offset {
3443 return Ok(());
3444 }
3445
3446 while _next_ordinal_to_read < 6 {
3448 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3449 _next_ordinal_to_read += 1;
3450 next_offset += envelope_size;
3451 }
3452
3453 let next_out_of_line = decoder.next_out_of_line();
3454 let handles_before = decoder.remaining_handles();
3455 if let Some((inlined, num_bytes, num_handles)) =
3456 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3457 {
3458 let member_inline_size =
3459 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3460 if inlined != (member_inline_size <= 4) {
3461 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3462 }
3463 let inner_offset;
3464 let mut inner_depth = depth.clone();
3465 if inlined {
3466 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3467 inner_offset = next_offset;
3468 } else {
3469 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3470 inner_depth.increment()?;
3471 }
3472 let val_ref = self
3473 .total_page_compression_attempts
3474 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3475 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3476 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3477 {
3478 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3479 }
3480 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3481 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3482 }
3483 }
3484
3485 next_offset += envelope_size;
3486 _next_ordinal_to_read += 1;
3487 if next_offset >= end_offset {
3488 return Ok(());
3489 }
3490
3491 while _next_ordinal_to_read < 7 {
3493 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3494 _next_ordinal_to_read += 1;
3495 next_offset += envelope_size;
3496 }
3497
3498 let next_out_of_line = decoder.next_out_of_line();
3499 let handles_before = decoder.remaining_handles();
3500 if let Some((inlined, num_bytes, num_handles)) =
3501 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3502 {
3503 let member_inline_size =
3504 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3505 if inlined != (member_inline_size <= 4) {
3506 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3507 }
3508 let inner_offset;
3509 let mut inner_depth = depth.clone();
3510 if inlined {
3511 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3512 inner_offset = next_offset;
3513 } else {
3514 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3515 inner_depth.increment()?;
3516 }
3517 let val_ref = self
3518 .failed_page_compression_attempts
3519 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3520 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3521 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3522 {
3523 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3524 }
3525 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3526 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3527 }
3528 }
3529
3530 next_offset += envelope_size;
3531 _next_ordinal_to_read += 1;
3532 if next_offset >= end_offset {
3533 return Ok(());
3534 }
3535
3536 while _next_ordinal_to_read < 8 {
3538 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3539 _next_ordinal_to_read += 1;
3540 next_offset += envelope_size;
3541 }
3542
3543 let next_out_of_line = decoder.next_out_of_line();
3544 let handles_before = decoder.remaining_handles();
3545 if let Some((inlined, num_bytes, num_handles)) =
3546 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3547 {
3548 let member_inline_size =
3549 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3550 if inlined != (member_inline_size <= 4) {
3551 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3552 }
3553 let inner_offset;
3554 let mut inner_depth = depth.clone();
3555 if inlined {
3556 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3557 inner_offset = next_offset;
3558 } else {
3559 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3560 inner_depth.increment()?;
3561 }
3562 let val_ref =
3563 self.total_page_decompressions.get_or_insert_with(|| fidl::new_empty!(u64, D));
3564 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3565 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3566 {
3567 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3568 }
3569 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3570 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3571 }
3572 }
3573
3574 next_offset += envelope_size;
3575 _next_ordinal_to_read += 1;
3576 if next_offset >= end_offset {
3577 return Ok(());
3578 }
3579
3580 while _next_ordinal_to_read < 9 {
3582 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3583 _next_ordinal_to_read += 1;
3584 next_offset += envelope_size;
3585 }
3586
3587 let next_out_of_line = decoder.next_out_of_line();
3588 let handles_before = decoder.remaining_handles();
3589 if let Some((inlined, num_bytes, num_handles)) =
3590 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3591 {
3592 let member_inline_size =
3593 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3594 if inlined != (member_inline_size <= 4) {
3595 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3596 }
3597 let inner_offset;
3598 let mut inner_depth = depth.clone();
3599 if inlined {
3600 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3601 inner_offset = next_offset;
3602 } else {
3603 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3604 inner_depth.increment()?;
3605 }
3606 let val_ref =
3607 self.compressed_page_evictions.get_or_insert_with(|| fidl::new_empty!(u64, D));
3608 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3609 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3610 {
3611 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3612 }
3613 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3614 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3615 }
3616 }
3617
3618 next_offset += envelope_size;
3619 _next_ordinal_to_read += 1;
3620 if next_offset >= end_offset {
3621 return Ok(());
3622 }
3623
3624 while _next_ordinal_to_read < 10 {
3626 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3627 _next_ordinal_to_read += 1;
3628 next_offset += envelope_size;
3629 }
3630
3631 let next_out_of_line = decoder.next_out_of_line();
3632 let handles_before = decoder.remaining_handles();
3633 if let Some((inlined, num_bytes, num_handles)) =
3634 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3635 {
3636 let member_inline_size =
3637 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3638 if inlined != (member_inline_size <= 4) {
3639 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3640 }
3641 let inner_offset;
3642 let mut inner_depth = depth.clone();
3643 if inlined {
3644 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3645 inner_offset = next_offset;
3646 } else {
3647 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3648 inner_depth.increment()?;
3649 }
3650 let val_ref =
3651 self.eager_page_compressions.get_or_insert_with(|| fidl::new_empty!(u64, D));
3652 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3653 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3654 {
3655 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3656 }
3657 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3658 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3659 }
3660 }
3661
3662 next_offset += envelope_size;
3663 _next_ordinal_to_read += 1;
3664 if next_offset >= end_offset {
3665 return Ok(());
3666 }
3667
3668 while _next_ordinal_to_read < 11 {
3670 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3671 _next_ordinal_to_read += 1;
3672 next_offset += envelope_size;
3673 }
3674
3675 let next_out_of_line = decoder.next_out_of_line();
3676 let handles_before = decoder.remaining_handles();
3677 if let Some((inlined, num_bytes, num_handles)) =
3678 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3679 {
3680 let member_inline_size =
3681 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3682 if inlined != (member_inline_size <= 4) {
3683 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3684 }
3685 let inner_offset;
3686 let mut inner_depth = depth.clone();
3687 if inlined {
3688 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3689 inner_offset = next_offset;
3690 } else {
3691 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3692 inner_depth.increment()?;
3693 }
3694 let val_ref = self
3695 .memory_pressure_page_compressions
3696 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3697 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3698 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3699 {
3700 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3701 }
3702 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3703 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3704 }
3705 }
3706
3707 next_offset += envelope_size;
3708 _next_ordinal_to_read += 1;
3709 if next_offset >= end_offset {
3710 return Ok(());
3711 }
3712
3713 while _next_ordinal_to_read < 12 {
3715 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3716 _next_ordinal_to_read += 1;
3717 next_offset += envelope_size;
3718 }
3719
3720 let next_out_of_line = decoder.next_out_of_line();
3721 let handles_before = decoder.remaining_handles();
3722 if let Some((inlined, num_bytes, num_handles)) =
3723 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3724 {
3725 let member_inline_size =
3726 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3727 if inlined != (member_inline_size <= 4) {
3728 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3729 }
3730 let inner_offset;
3731 let mut inner_depth = depth.clone();
3732 if inlined {
3733 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3734 inner_offset = next_offset;
3735 } else {
3736 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3737 inner_depth.increment()?;
3738 }
3739 let val_ref = self
3740 .critical_memory_page_compressions
3741 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3742 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3743 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3744 {
3745 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3746 }
3747 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3748 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3749 }
3750 }
3751
3752 next_offset += envelope_size;
3753 _next_ordinal_to_read += 1;
3754 if next_offset >= end_offset {
3755 return Ok(());
3756 }
3757
3758 while _next_ordinal_to_read < 13 {
3760 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3761 _next_ordinal_to_read += 1;
3762 next_offset += envelope_size;
3763 }
3764
3765 let next_out_of_line = decoder.next_out_of_line();
3766 let handles_before = decoder.remaining_handles();
3767 if let Some((inlined, num_bytes, num_handles)) =
3768 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3769 {
3770 let member_inline_size =
3771 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3772 if inlined != (member_inline_size <= 4) {
3773 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3774 }
3775 let inner_offset;
3776 let mut inner_depth = depth.clone();
3777 if inlined {
3778 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3779 inner_offset = next_offset;
3780 } else {
3781 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3782 inner_depth.increment()?;
3783 }
3784 let val_ref =
3785 self.pages_decompressed_unit_ns.get_or_insert_with(|| fidl::new_empty!(u64, D));
3786 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3787 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3788 {
3789 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3790 }
3791 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3792 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3793 }
3794 }
3795
3796 next_offset += envelope_size;
3797 _next_ordinal_to_read += 1;
3798 if next_offset >= end_offset {
3799 return Ok(());
3800 }
3801
3802 while _next_ordinal_to_read < 14 {
3804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3805 _next_ordinal_to_read += 1;
3806 next_offset += envelope_size;
3807 }
3808
3809 let next_out_of_line = decoder.next_out_of_line();
3810 let handles_before = decoder.remaining_handles();
3811 if let Some((inlined, num_bytes, num_handles)) =
3812 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3813 {
3814 let member_inline_size =
3815 <fidl::encoding::Array<u64, 8> as fidl::encoding::TypeMarker>::inline_size(
3816 decoder.context,
3817 );
3818 if inlined != (member_inline_size <= 4) {
3819 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3820 }
3821 let inner_offset;
3822 let mut inner_depth = depth.clone();
3823 if inlined {
3824 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3825 inner_offset = next_offset;
3826 } else {
3827 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3828 inner_depth.increment()?;
3829 }
3830 let val_ref = self
3831 .pages_decompressed_within_log_time
3832 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u64, 8>, D));
3833 fidl::decode!(fidl::encoding::Array<u64, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
3834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3835 {
3836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3837 }
3838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3840 }
3841 }
3842
3843 next_offset += envelope_size;
3844
3845 while next_offset < end_offset {
3847 _next_ordinal_to_read += 1;
3848 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3849 next_offset += envelope_size;
3850 }
3851
3852 Ok(())
3853 }
3854 }
3855
3856 impl MemoryStatsExtended {
3857 #[inline(always)]
3858 fn max_ordinal_present(&self) -> u64 {
3859 if let Some(_) = self.other_bytes {
3860 return 14;
3861 }
3862 if let Some(_) = self.ipc_bytes {
3863 return 13;
3864 }
3865 if let Some(_) = self.mmu_overhead_bytes {
3866 return 12;
3867 }
3868 if let Some(_) = self.vmo_discardable_unlocked_bytes {
3869 return 11;
3870 }
3871 if let Some(_) = self.vmo_discardable_locked_bytes {
3872 return 10;
3873 }
3874 if let Some(_) = self.vmo_pager_oldest_bytes {
3875 return 9;
3876 }
3877 if let Some(_) = self.vmo_pager_newest_bytes {
3878 return 8;
3879 }
3880 if let Some(_) = self.vmo_pager_total_bytes {
3881 return 7;
3882 }
3883 if let Some(_) = self.vmo_bytes {
3884 return 6;
3885 }
3886 if let Some(_) = self.free_heap_bytes {
3887 return 5;
3888 }
3889 if let Some(_) = self.total_heap_bytes {
3890 return 4;
3891 }
3892 if let Some(_) = self.wired_bytes {
3893 return 3;
3894 }
3895 if let Some(_) = self.free_bytes {
3896 return 2;
3897 }
3898 if let Some(_) = self.total_bytes {
3899 return 1;
3900 }
3901 0
3902 }
3903 }
3904
3905 impl fidl::encoding::ValueTypeMarker for MemoryStatsExtended {
3906 type Borrowed<'a> = &'a Self;
3907 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3908 value
3909 }
3910 }
3911
3912 unsafe impl fidl::encoding::TypeMarker for MemoryStatsExtended {
3913 type Owned = Self;
3914
3915 #[inline(always)]
3916 fn inline_align(_context: fidl::encoding::Context) -> usize {
3917 8
3918 }
3919
3920 #[inline(always)]
3921 fn inline_size(_context: fidl::encoding::Context) -> usize {
3922 16
3923 }
3924 }
3925
3926 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MemoryStatsExtended, D>
3927 for &MemoryStatsExtended
3928 {
3929 unsafe fn encode(
3930 self,
3931 encoder: &mut fidl::encoding::Encoder<'_, D>,
3932 offset: usize,
3933 mut depth: fidl::encoding::Depth,
3934 ) -> fidl::Result<()> {
3935 encoder.debug_check_bounds::<MemoryStatsExtended>(offset);
3936 let max_ordinal: u64 = self.max_ordinal_present();
3938 encoder.write_num(max_ordinal, offset);
3939 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3940 if max_ordinal == 0 {
3942 return Ok(());
3943 }
3944 depth.increment()?;
3945 let envelope_size = 8;
3946 let bytes_len = max_ordinal as usize * envelope_size;
3947 #[allow(unused_variables)]
3948 let offset = encoder.out_of_line_offset(bytes_len);
3949 let mut _prev_end_offset: usize = 0;
3950 if 1 > max_ordinal {
3951 return Ok(());
3952 }
3953
3954 let cur_offset: usize = (1 - 1) * envelope_size;
3957
3958 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3960
3961 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3966 self.total_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3967 encoder,
3968 offset + cur_offset,
3969 depth,
3970 )?;
3971
3972 _prev_end_offset = cur_offset + envelope_size;
3973 if 2 > max_ordinal {
3974 return Ok(());
3975 }
3976
3977 let cur_offset: usize = (2 - 1) * envelope_size;
3980
3981 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3983
3984 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3989 self.free_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3990 encoder,
3991 offset + cur_offset,
3992 depth,
3993 )?;
3994
3995 _prev_end_offset = cur_offset + envelope_size;
3996 if 3 > max_ordinal {
3997 return Ok(());
3998 }
3999
4000 let cur_offset: usize = (3 - 1) * envelope_size;
4003
4004 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4006
4007 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4012 self.wired_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4013 encoder,
4014 offset + cur_offset,
4015 depth,
4016 )?;
4017
4018 _prev_end_offset = cur_offset + envelope_size;
4019 if 4 > max_ordinal {
4020 return Ok(());
4021 }
4022
4023 let cur_offset: usize = (4 - 1) * envelope_size;
4026
4027 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4029
4030 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4035 self.total_heap_bytes
4036 .as_ref()
4037 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4038 encoder,
4039 offset + cur_offset,
4040 depth,
4041 )?;
4042
4043 _prev_end_offset = cur_offset + envelope_size;
4044 if 5 > max_ordinal {
4045 return Ok(());
4046 }
4047
4048 let cur_offset: usize = (5 - 1) * envelope_size;
4051
4052 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4054
4055 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4060 self.free_heap_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4061 encoder,
4062 offset + cur_offset,
4063 depth,
4064 )?;
4065
4066 _prev_end_offset = cur_offset + envelope_size;
4067 if 6 > max_ordinal {
4068 return Ok(());
4069 }
4070
4071 let cur_offset: usize = (6 - 1) * envelope_size;
4074
4075 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4077
4078 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4083 self.vmo_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4084 encoder,
4085 offset + cur_offset,
4086 depth,
4087 )?;
4088
4089 _prev_end_offset = cur_offset + envelope_size;
4090 if 7 > max_ordinal {
4091 return Ok(());
4092 }
4093
4094 let cur_offset: usize = (7 - 1) * envelope_size;
4097
4098 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4100
4101 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4106 self.vmo_pager_total_bytes
4107 .as_ref()
4108 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4109 encoder,
4110 offset + cur_offset,
4111 depth,
4112 )?;
4113
4114 _prev_end_offset = cur_offset + envelope_size;
4115 if 8 > max_ordinal {
4116 return Ok(());
4117 }
4118
4119 let cur_offset: usize = (8 - 1) * envelope_size;
4122
4123 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4125
4126 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4131 self.vmo_pager_newest_bytes
4132 .as_ref()
4133 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4134 encoder,
4135 offset + cur_offset,
4136 depth,
4137 )?;
4138
4139 _prev_end_offset = cur_offset + envelope_size;
4140 if 9 > max_ordinal {
4141 return Ok(());
4142 }
4143
4144 let cur_offset: usize = (9 - 1) * envelope_size;
4147
4148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4150
4151 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4156 self.vmo_pager_oldest_bytes
4157 .as_ref()
4158 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4159 encoder,
4160 offset + cur_offset,
4161 depth,
4162 )?;
4163
4164 _prev_end_offset = cur_offset + envelope_size;
4165 if 10 > max_ordinal {
4166 return Ok(());
4167 }
4168
4169 let cur_offset: usize = (10 - 1) * envelope_size;
4172
4173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4175
4176 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4181 self.vmo_discardable_locked_bytes
4182 .as_ref()
4183 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4184 encoder,
4185 offset + cur_offset,
4186 depth,
4187 )?;
4188
4189 _prev_end_offset = cur_offset + envelope_size;
4190 if 11 > max_ordinal {
4191 return Ok(());
4192 }
4193
4194 let cur_offset: usize = (11 - 1) * envelope_size;
4197
4198 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4200
4201 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4206 self.vmo_discardable_unlocked_bytes
4207 .as_ref()
4208 .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 12 > max_ordinal {
4216 return Ok(());
4217 }
4218
4219 let cur_offset: usize = (12 - 1) * envelope_size;
4222
4223 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4225
4226 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4231 self.mmu_overhead_bytes
4232 .as_ref()
4233 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4234 encoder,
4235 offset + cur_offset,
4236 depth,
4237 )?;
4238
4239 _prev_end_offset = cur_offset + envelope_size;
4240 if 13 > max_ordinal {
4241 return Ok(());
4242 }
4243
4244 let cur_offset: usize = (13 - 1) * envelope_size;
4247
4248 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4250
4251 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4256 self.ipc_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4257 encoder,
4258 offset + cur_offset,
4259 depth,
4260 )?;
4261
4262 _prev_end_offset = cur_offset + envelope_size;
4263 if 14 > max_ordinal {
4264 return Ok(());
4265 }
4266
4267 let cur_offset: usize = (14 - 1) * envelope_size;
4270
4271 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4273
4274 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4279 self.other_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4280 encoder,
4281 offset + cur_offset,
4282 depth,
4283 )?;
4284
4285 _prev_end_offset = cur_offset + envelope_size;
4286
4287 Ok(())
4288 }
4289 }
4290
4291 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MemoryStatsExtended {
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 <u64 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.total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4352 fidl::decode!(u64, 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.free_bytes.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 <u64 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.wired_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4438 fidl::decode!(u64, 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 <u64 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.total_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4481 fidl::decode!(u64, 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 <u64 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.free_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4524 fidl::decode!(u64, 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 _next_ordinal_to_read += 1;
4536 if next_offset >= end_offset {
4537 return Ok(());
4538 }
4539
4540 while _next_ordinal_to_read < 6 {
4542 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4543 _next_ordinal_to_read += 1;
4544 next_offset += envelope_size;
4545 }
4546
4547 let next_out_of_line = decoder.next_out_of_line();
4548 let handles_before = decoder.remaining_handles();
4549 if let Some((inlined, num_bytes, num_handles)) =
4550 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4551 {
4552 let member_inline_size =
4553 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4554 if inlined != (member_inline_size <= 4) {
4555 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4556 }
4557 let inner_offset;
4558 let mut inner_depth = depth.clone();
4559 if inlined {
4560 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4561 inner_offset = next_offset;
4562 } else {
4563 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4564 inner_depth.increment()?;
4565 }
4566 let val_ref = self.vmo_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4567 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4568 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4569 {
4570 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4571 }
4572 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4573 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4574 }
4575 }
4576
4577 next_offset += envelope_size;
4578 _next_ordinal_to_read += 1;
4579 if next_offset >= end_offset {
4580 return Ok(());
4581 }
4582
4583 while _next_ordinal_to_read < 7 {
4585 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4586 _next_ordinal_to_read += 1;
4587 next_offset += envelope_size;
4588 }
4589
4590 let next_out_of_line = decoder.next_out_of_line();
4591 let handles_before = decoder.remaining_handles();
4592 if let Some((inlined, num_bytes, num_handles)) =
4593 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4594 {
4595 let member_inline_size =
4596 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4597 if inlined != (member_inline_size <= 4) {
4598 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4599 }
4600 let inner_offset;
4601 let mut inner_depth = depth.clone();
4602 if inlined {
4603 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4604 inner_offset = next_offset;
4605 } else {
4606 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4607 inner_depth.increment()?;
4608 }
4609 let val_ref =
4610 self.vmo_pager_total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4611 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4612 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4613 {
4614 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4615 }
4616 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4617 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4618 }
4619 }
4620
4621 next_offset += envelope_size;
4622 _next_ordinal_to_read += 1;
4623 if next_offset >= end_offset {
4624 return Ok(());
4625 }
4626
4627 while _next_ordinal_to_read < 8 {
4629 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4630 _next_ordinal_to_read += 1;
4631 next_offset += envelope_size;
4632 }
4633
4634 let next_out_of_line = decoder.next_out_of_line();
4635 let handles_before = decoder.remaining_handles();
4636 if let Some((inlined, num_bytes, num_handles)) =
4637 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4638 {
4639 let member_inline_size =
4640 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4641 if inlined != (member_inline_size <= 4) {
4642 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4643 }
4644 let inner_offset;
4645 let mut inner_depth = depth.clone();
4646 if inlined {
4647 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4648 inner_offset = next_offset;
4649 } else {
4650 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4651 inner_depth.increment()?;
4652 }
4653 let val_ref =
4654 self.vmo_pager_newest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4655 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4656 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4657 {
4658 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4659 }
4660 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4661 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4662 }
4663 }
4664
4665 next_offset += envelope_size;
4666 _next_ordinal_to_read += 1;
4667 if next_offset >= end_offset {
4668 return Ok(());
4669 }
4670
4671 while _next_ordinal_to_read < 9 {
4673 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4674 _next_ordinal_to_read += 1;
4675 next_offset += envelope_size;
4676 }
4677
4678 let next_out_of_line = decoder.next_out_of_line();
4679 let handles_before = decoder.remaining_handles();
4680 if let Some((inlined, num_bytes, num_handles)) =
4681 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4682 {
4683 let member_inline_size =
4684 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4685 if inlined != (member_inline_size <= 4) {
4686 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4687 }
4688 let inner_offset;
4689 let mut inner_depth = depth.clone();
4690 if inlined {
4691 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4692 inner_offset = next_offset;
4693 } else {
4694 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4695 inner_depth.increment()?;
4696 }
4697 let val_ref =
4698 self.vmo_pager_oldest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4699 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4700 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4701 {
4702 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4703 }
4704 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4705 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4706 }
4707 }
4708
4709 next_offset += envelope_size;
4710 _next_ordinal_to_read += 1;
4711 if next_offset >= end_offset {
4712 return Ok(());
4713 }
4714
4715 while _next_ordinal_to_read < 10 {
4717 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4718 _next_ordinal_to_read += 1;
4719 next_offset += envelope_size;
4720 }
4721
4722 let next_out_of_line = decoder.next_out_of_line();
4723 let handles_before = decoder.remaining_handles();
4724 if let Some((inlined, num_bytes, num_handles)) =
4725 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4726 {
4727 let member_inline_size =
4728 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4729 if inlined != (member_inline_size <= 4) {
4730 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4731 }
4732 let inner_offset;
4733 let mut inner_depth = depth.clone();
4734 if inlined {
4735 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4736 inner_offset = next_offset;
4737 } else {
4738 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4739 inner_depth.increment()?;
4740 }
4741 let val_ref = self
4742 .vmo_discardable_locked_bytes
4743 .get_or_insert_with(|| fidl::new_empty!(u64, D));
4744 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4745 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4746 {
4747 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4748 }
4749 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4750 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4751 }
4752 }
4753
4754 next_offset += envelope_size;
4755 _next_ordinal_to_read += 1;
4756 if next_offset >= end_offset {
4757 return Ok(());
4758 }
4759
4760 while _next_ordinal_to_read < 11 {
4762 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4763 _next_ordinal_to_read += 1;
4764 next_offset += envelope_size;
4765 }
4766
4767 let next_out_of_line = decoder.next_out_of_line();
4768 let handles_before = decoder.remaining_handles();
4769 if let Some((inlined, num_bytes, num_handles)) =
4770 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4771 {
4772 let member_inline_size =
4773 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4774 if inlined != (member_inline_size <= 4) {
4775 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4776 }
4777 let inner_offset;
4778 let mut inner_depth = depth.clone();
4779 if inlined {
4780 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4781 inner_offset = next_offset;
4782 } else {
4783 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4784 inner_depth.increment()?;
4785 }
4786 let val_ref = self
4787 .vmo_discardable_unlocked_bytes
4788 .get_or_insert_with(|| fidl::new_empty!(u64, D));
4789 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4790 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4791 {
4792 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4793 }
4794 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4795 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4796 }
4797 }
4798
4799 next_offset += envelope_size;
4800 _next_ordinal_to_read += 1;
4801 if next_offset >= end_offset {
4802 return Ok(());
4803 }
4804
4805 while _next_ordinal_to_read < 12 {
4807 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4808 _next_ordinal_to_read += 1;
4809 next_offset += envelope_size;
4810 }
4811
4812 let next_out_of_line = decoder.next_out_of_line();
4813 let handles_before = decoder.remaining_handles();
4814 if let Some((inlined, num_bytes, num_handles)) =
4815 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4816 {
4817 let member_inline_size =
4818 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4819 if inlined != (member_inline_size <= 4) {
4820 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4821 }
4822 let inner_offset;
4823 let mut inner_depth = depth.clone();
4824 if inlined {
4825 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4826 inner_offset = next_offset;
4827 } else {
4828 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4829 inner_depth.increment()?;
4830 }
4831 let val_ref =
4832 self.mmu_overhead_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4833 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4835 {
4836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4837 }
4838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4840 }
4841 }
4842
4843 next_offset += envelope_size;
4844 _next_ordinal_to_read += 1;
4845 if next_offset >= end_offset {
4846 return Ok(());
4847 }
4848
4849 while _next_ordinal_to_read < 13 {
4851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4852 _next_ordinal_to_read += 1;
4853 next_offset += envelope_size;
4854 }
4855
4856 let next_out_of_line = decoder.next_out_of_line();
4857 let handles_before = decoder.remaining_handles();
4858 if let Some((inlined, num_bytes, num_handles)) =
4859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4860 {
4861 let member_inline_size =
4862 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4863 if inlined != (member_inline_size <= 4) {
4864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4865 }
4866 let inner_offset;
4867 let mut inner_depth = depth.clone();
4868 if inlined {
4869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4870 inner_offset = next_offset;
4871 } else {
4872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4873 inner_depth.increment()?;
4874 }
4875 let val_ref = self.ipc_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4876 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4878 {
4879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4880 }
4881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4883 }
4884 }
4885
4886 next_offset += envelope_size;
4887 _next_ordinal_to_read += 1;
4888 if next_offset >= end_offset {
4889 return Ok(());
4890 }
4891
4892 while _next_ordinal_to_read < 14 {
4894 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4895 _next_ordinal_to_read += 1;
4896 next_offset += envelope_size;
4897 }
4898
4899 let next_out_of_line = decoder.next_out_of_line();
4900 let handles_before = decoder.remaining_handles();
4901 if let Some((inlined, num_bytes, num_handles)) =
4902 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4903 {
4904 let member_inline_size =
4905 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4906 if inlined != (member_inline_size <= 4) {
4907 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4908 }
4909 let inner_offset;
4910 let mut inner_depth = depth.clone();
4911 if inlined {
4912 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4913 inner_offset = next_offset;
4914 } else {
4915 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4916 inner_depth.increment()?;
4917 }
4918 let val_ref = self.other_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4919 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4920 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4921 {
4922 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4923 }
4924 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4925 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4926 }
4927 }
4928
4929 next_offset += envelope_size;
4930
4931 while next_offset < end_offset {
4933 _next_ordinal_to_read += 1;
4934 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4935 next_offset += envelope_size;
4936 }
4937
4938 Ok(())
4939 }
4940 }
4941
4942 impl PerCpuStats {
4943 #[inline(always)]
4944 fn max_ordinal_present(&self) -> u64 {
4945 if let Some(_) = self.idle_energy_consumption_nj {
4946 return 18;
4947 }
4948 if let Some(_) = self.active_energy_consumption_nj {
4949 return 17;
4950 }
4951 if let Some(_) = self.normalized_busy_time {
4952 return 16;
4953 }
4954 if let Some(_) = self.generic_ipis {
4955 return 15;
4956 }
4957 if let Some(_) = self.reschedule_ipis {
4958 return 14;
4959 }
4960 if let Some(_) = self.syscalls {
4961 return 13;
4962 }
4963 if let Some(_) = self.exceptions {
4964 return 12;
4965 }
4966 if let Some(_) = self.page_faults {
4967 return 11;
4968 }
4969 if let Some(_) = self.timers {
4970 return 10;
4971 }
4972 if let Some(_) = self.timer_ints {
4973 return 9;
4974 }
4975 if let Some(_) = self.ints {
4976 return 8;
4977 }
4978 if let Some(_) = self.yields {
4979 return 7;
4980 }
4981 if let Some(_) = self.irq_preempts {
4982 return 6;
4983 }
4984 if let Some(_) = self.context_switches {
4985 return 5;
4986 }
4987 if let Some(_) = self.reschedules {
4988 return 4;
4989 }
4990 if let Some(_) = self.idle_time {
4991 return 3;
4992 }
4993 if let Some(_) = self.flags {
4994 return 2;
4995 }
4996 if let Some(_) = self.cpu_number {
4997 return 1;
4998 }
4999 0
5000 }
5001 }
5002
5003 impl fidl::encoding::ValueTypeMarker for PerCpuStats {
5004 type Borrowed<'a> = &'a Self;
5005 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5006 value
5007 }
5008 }
5009
5010 unsafe impl fidl::encoding::TypeMarker for PerCpuStats {
5011 type Owned = Self;
5012
5013 #[inline(always)]
5014 fn inline_align(_context: fidl::encoding::Context) -> usize {
5015 8
5016 }
5017
5018 #[inline(always)]
5019 fn inline_size(_context: fidl::encoding::Context) -> usize {
5020 16
5021 }
5022 }
5023
5024 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PerCpuStats, D>
5025 for &PerCpuStats
5026 {
5027 unsafe fn encode(
5028 self,
5029 encoder: &mut fidl::encoding::Encoder<'_, D>,
5030 offset: usize,
5031 mut depth: fidl::encoding::Depth,
5032 ) -> fidl::Result<()> {
5033 encoder.debug_check_bounds::<PerCpuStats>(offset);
5034 let max_ordinal: u64 = self.max_ordinal_present();
5036 encoder.write_num(max_ordinal, offset);
5037 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5038 if max_ordinal == 0 {
5040 return Ok(());
5041 }
5042 depth.increment()?;
5043 let envelope_size = 8;
5044 let bytes_len = max_ordinal as usize * envelope_size;
5045 #[allow(unused_variables)]
5046 let offset = encoder.out_of_line_offset(bytes_len);
5047 let mut _prev_end_offset: usize = 0;
5048 if 1 > max_ordinal {
5049 return Ok(());
5050 }
5051
5052 let cur_offset: usize = (1 - 1) * envelope_size;
5055
5056 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5058
5059 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5064 self.cpu_number.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5065 encoder,
5066 offset + cur_offset,
5067 depth,
5068 )?;
5069
5070 _prev_end_offset = cur_offset + envelope_size;
5071 if 2 > max_ordinal {
5072 return Ok(());
5073 }
5074
5075 let cur_offset: usize = (2 - 1) * envelope_size;
5078
5079 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5081
5082 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5087 self.flags.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5088 encoder,
5089 offset + cur_offset,
5090 depth,
5091 )?;
5092
5093 _prev_end_offset = cur_offset + envelope_size;
5094 if 3 > max_ordinal {
5095 return Ok(());
5096 }
5097
5098 let cur_offset: usize = (3 - 1) * envelope_size;
5101
5102 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5104
5105 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5110 self.idle_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5111 encoder,
5112 offset + cur_offset,
5113 depth,
5114 )?;
5115
5116 _prev_end_offset = cur_offset + envelope_size;
5117 if 4 > max_ordinal {
5118 return Ok(());
5119 }
5120
5121 let cur_offset: usize = (4 - 1) * envelope_size;
5124
5125 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5127
5128 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5133 self.reschedules.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5134 encoder,
5135 offset + cur_offset,
5136 depth,
5137 )?;
5138
5139 _prev_end_offset = cur_offset + envelope_size;
5140 if 5 > max_ordinal {
5141 return Ok(());
5142 }
5143
5144 let cur_offset: usize = (5 - 1) * envelope_size;
5147
5148 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5150
5151 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5156 self.context_switches
5157 .as_ref()
5158 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5159 encoder,
5160 offset + cur_offset,
5161 depth,
5162 )?;
5163
5164 _prev_end_offset = cur_offset + envelope_size;
5165 if 6 > max_ordinal {
5166 return Ok(());
5167 }
5168
5169 let cur_offset: usize = (6 - 1) * envelope_size;
5172
5173 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5175
5176 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5181 self.irq_preempts.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5182 encoder,
5183 offset + cur_offset,
5184 depth,
5185 )?;
5186
5187 _prev_end_offset = cur_offset + envelope_size;
5188 if 7 > max_ordinal {
5189 return Ok(());
5190 }
5191
5192 let cur_offset: usize = (7 - 1) * envelope_size;
5195
5196 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5198
5199 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5204 self.yields.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5205 encoder,
5206 offset + cur_offset,
5207 depth,
5208 )?;
5209
5210 _prev_end_offset = cur_offset + envelope_size;
5211 if 8 > max_ordinal {
5212 return Ok(());
5213 }
5214
5215 let cur_offset: usize = (8 - 1) * envelope_size;
5218
5219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5221
5222 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5227 self.ints.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5228 encoder,
5229 offset + cur_offset,
5230 depth,
5231 )?;
5232
5233 _prev_end_offset = cur_offset + envelope_size;
5234 if 9 > max_ordinal {
5235 return Ok(());
5236 }
5237
5238 let cur_offset: usize = (9 - 1) * envelope_size;
5241
5242 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5244
5245 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5250 self.timer_ints.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5251 encoder,
5252 offset + cur_offset,
5253 depth,
5254 )?;
5255
5256 _prev_end_offset = cur_offset + envelope_size;
5257 if 10 > max_ordinal {
5258 return Ok(());
5259 }
5260
5261 let cur_offset: usize = (10 - 1) * envelope_size;
5264
5265 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5267
5268 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5273 self.timers.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5274 encoder,
5275 offset + cur_offset,
5276 depth,
5277 )?;
5278
5279 _prev_end_offset = cur_offset + envelope_size;
5280 if 11 > max_ordinal {
5281 return Ok(());
5282 }
5283
5284 let cur_offset: usize = (11 - 1) * envelope_size;
5287
5288 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5290
5291 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5296 self.page_faults.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5297 encoder,
5298 offset + cur_offset,
5299 depth,
5300 )?;
5301
5302 _prev_end_offset = cur_offset + envelope_size;
5303 if 12 > max_ordinal {
5304 return Ok(());
5305 }
5306
5307 let cur_offset: usize = (12 - 1) * envelope_size;
5310
5311 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5313
5314 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5319 self.exceptions.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5320 encoder,
5321 offset + cur_offset,
5322 depth,
5323 )?;
5324
5325 _prev_end_offset = cur_offset + envelope_size;
5326 if 13 > max_ordinal {
5327 return Ok(());
5328 }
5329
5330 let cur_offset: usize = (13 - 1) * envelope_size;
5333
5334 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5336
5337 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5342 self.syscalls.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5343 encoder,
5344 offset + cur_offset,
5345 depth,
5346 )?;
5347
5348 _prev_end_offset = cur_offset + envelope_size;
5349 if 14 > max_ordinal {
5350 return Ok(());
5351 }
5352
5353 let cur_offset: usize = (14 - 1) * envelope_size;
5356
5357 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5359
5360 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5365 self.reschedule_ipis.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5366 encoder,
5367 offset + cur_offset,
5368 depth,
5369 )?;
5370
5371 _prev_end_offset = cur_offset + envelope_size;
5372 if 15 > max_ordinal {
5373 return Ok(());
5374 }
5375
5376 let cur_offset: usize = (15 - 1) * envelope_size;
5379
5380 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5382
5383 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5388 self.generic_ipis.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5389 encoder,
5390 offset + cur_offset,
5391 depth,
5392 )?;
5393
5394 _prev_end_offset = cur_offset + envelope_size;
5395 if 16 > max_ordinal {
5396 return Ok(());
5397 }
5398
5399 let cur_offset: usize = (16 - 1) * envelope_size;
5402
5403 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5405
5406 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5411 self.normalized_busy_time
5412 .as_ref()
5413 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5414 encoder,
5415 offset + cur_offset,
5416 depth,
5417 )?;
5418
5419 _prev_end_offset = cur_offset + envelope_size;
5420 if 17 > max_ordinal {
5421 return Ok(());
5422 }
5423
5424 let cur_offset: usize = (17 - 1) * envelope_size;
5427
5428 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5430
5431 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5436 self.active_energy_consumption_nj
5437 .as_ref()
5438 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5439 encoder,
5440 offset + cur_offset,
5441 depth,
5442 )?;
5443
5444 _prev_end_offset = cur_offset + envelope_size;
5445 if 18 > max_ordinal {
5446 return Ok(());
5447 }
5448
5449 let cur_offset: usize = (18 - 1) * envelope_size;
5452
5453 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5455
5456 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5461 self.idle_energy_consumption_nj
5462 .as_ref()
5463 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5464 encoder,
5465 offset + cur_offset,
5466 depth,
5467 )?;
5468
5469 _prev_end_offset = cur_offset + envelope_size;
5470
5471 Ok(())
5472 }
5473 }
5474
5475 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PerCpuStats {
5476 #[inline(always)]
5477 fn new_empty() -> Self {
5478 Self::default()
5479 }
5480
5481 unsafe fn decode(
5482 &mut self,
5483 decoder: &mut fidl::encoding::Decoder<'_, D>,
5484 offset: usize,
5485 mut depth: fidl::encoding::Depth,
5486 ) -> fidl::Result<()> {
5487 decoder.debug_check_bounds::<Self>(offset);
5488 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5489 None => return Err(fidl::Error::NotNullable),
5490 Some(len) => len,
5491 };
5492 if len == 0 {
5494 return Ok(());
5495 };
5496 depth.increment()?;
5497 let envelope_size = 8;
5498 let bytes_len = len * envelope_size;
5499 let offset = decoder.out_of_line_offset(bytes_len)?;
5500 let mut _next_ordinal_to_read = 0;
5502 let mut next_offset = offset;
5503 let end_offset = offset + bytes_len;
5504 _next_ordinal_to_read += 1;
5505 if next_offset >= end_offset {
5506 return Ok(());
5507 }
5508
5509 while _next_ordinal_to_read < 1 {
5511 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5512 _next_ordinal_to_read += 1;
5513 next_offset += envelope_size;
5514 }
5515
5516 let next_out_of_line = decoder.next_out_of_line();
5517 let handles_before = decoder.remaining_handles();
5518 if let Some((inlined, num_bytes, num_handles)) =
5519 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5520 {
5521 let member_inline_size =
5522 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5523 if inlined != (member_inline_size <= 4) {
5524 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5525 }
5526 let inner_offset;
5527 let mut inner_depth = depth.clone();
5528 if inlined {
5529 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5530 inner_offset = next_offset;
5531 } else {
5532 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5533 inner_depth.increment()?;
5534 }
5535 let val_ref = self.cpu_number.get_or_insert_with(|| fidl::new_empty!(u32, D));
5536 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5537 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5538 {
5539 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5540 }
5541 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5542 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5543 }
5544 }
5545
5546 next_offset += envelope_size;
5547 _next_ordinal_to_read += 1;
5548 if next_offset >= end_offset {
5549 return Ok(());
5550 }
5551
5552 while _next_ordinal_to_read < 2 {
5554 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5555 _next_ordinal_to_read += 1;
5556 next_offset += envelope_size;
5557 }
5558
5559 let next_out_of_line = decoder.next_out_of_line();
5560 let handles_before = decoder.remaining_handles();
5561 if let Some((inlined, num_bytes, num_handles)) =
5562 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5563 {
5564 let member_inline_size =
5565 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5566 if inlined != (member_inline_size <= 4) {
5567 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5568 }
5569 let inner_offset;
5570 let mut inner_depth = depth.clone();
5571 if inlined {
5572 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5573 inner_offset = next_offset;
5574 } else {
5575 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5576 inner_depth.increment()?;
5577 }
5578 let val_ref = self.flags.get_or_insert_with(|| fidl::new_empty!(u32, D));
5579 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5580 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5581 {
5582 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5583 }
5584 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5585 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5586 }
5587 }
5588
5589 next_offset += envelope_size;
5590 _next_ordinal_to_read += 1;
5591 if next_offset >= end_offset {
5592 return Ok(());
5593 }
5594
5595 while _next_ordinal_to_read < 3 {
5597 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5598 _next_ordinal_to_read += 1;
5599 next_offset += envelope_size;
5600 }
5601
5602 let next_out_of_line = decoder.next_out_of_line();
5603 let handles_before = decoder.remaining_handles();
5604 if let Some((inlined, num_bytes, num_handles)) =
5605 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5606 {
5607 let member_inline_size =
5608 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5609 if inlined != (member_inline_size <= 4) {
5610 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5611 }
5612 let inner_offset;
5613 let mut inner_depth = depth.clone();
5614 if inlined {
5615 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5616 inner_offset = next_offset;
5617 } else {
5618 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5619 inner_depth.increment()?;
5620 }
5621 let val_ref = self.idle_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
5622 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5623 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5624 {
5625 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5626 }
5627 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5628 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5629 }
5630 }
5631
5632 next_offset += envelope_size;
5633 _next_ordinal_to_read += 1;
5634 if next_offset >= end_offset {
5635 return Ok(());
5636 }
5637
5638 while _next_ordinal_to_read < 4 {
5640 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5641 _next_ordinal_to_read += 1;
5642 next_offset += envelope_size;
5643 }
5644
5645 let next_out_of_line = decoder.next_out_of_line();
5646 let handles_before = decoder.remaining_handles();
5647 if let Some((inlined, num_bytes, num_handles)) =
5648 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5649 {
5650 let member_inline_size =
5651 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5652 if inlined != (member_inline_size <= 4) {
5653 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5654 }
5655 let inner_offset;
5656 let mut inner_depth = depth.clone();
5657 if inlined {
5658 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5659 inner_offset = next_offset;
5660 } else {
5661 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5662 inner_depth.increment()?;
5663 }
5664 let val_ref = self.reschedules.get_or_insert_with(|| fidl::new_empty!(u64, D));
5665 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5666 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5667 {
5668 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5669 }
5670 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5671 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5672 }
5673 }
5674
5675 next_offset += envelope_size;
5676 _next_ordinal_to_read += 1;
5677 if next_offset >= end_offset {
5678 return Ok(());
5679 }
5680
5681 while _next_ordinal_to_read < 5 {
5683 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5684 _next_ordinal_to_read += 1;
5685 next_offset += envelope_size;
5686 }
5687
5688 let next_out_of_line = decoder.next_out_of_line();
5689 let handles_before = decoder.remaining_handles();
5690 if let Some((inlined, num_bytes, num_handles)) =
5691 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5692 {
5693 let member_inline_size =
5694 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5695 if inlined != (member_inline_size <= 4) {
5696 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5697 }
5698 let inner_offset;
5699 let mut inner_depth = depth.clone();
5700 if inlined {
5701 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5702 inner_offset = next_offset;
5703 } else {
5704 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5705 inner_depth.increment()?;
5706 }
5707 let val_ref = self.context_switches.get_or_insert_with(|| fidl::new_empty!(u64, D));
5708 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5709 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5710 {
5711 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5712 }
5713 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5714 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5715 }
5716 }
5717
5718 next_offset += envelope_size;
5719 _next_ordinal_to_read += 1;
5720 if next_offset >= end_offset {
5721 return Ok(());
5722 }
5723
5724 while _next_ordinal_to_read < 6 {
5726 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5727 _next_ordinal_to_read += 1;
5728 next_offset += envelope_size;
5729 }
5730
5731 let next_out_of_line = decoder.next_out_of_line();
5732 let handles_before = decoder.remaining_handles();
5733 if let Some((inlined, num_bytes, num_handles)) =
5734 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5735 {
5736 let member_inline_size =
5737 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5738 if inlined != (member_inline_size <= 4) {
5739 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5740 }
5741 let inner_offset;
5742 let mut inner_depth = depth.clone();
5743 if inlined {
5744 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5745 inner_offset = next_offset;
5746 } else {
5747 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5748 inner_depth.increment()?;
5749 }
5750 let val_ref = self.irq_preempts.get_or_insert_with(|| fidl::new_empty!(u64, D));
5751 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5752 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5753 {
5754 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5755 }
5756 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5757 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5758 }
5759 }
5760
5761 next_offset += envelope_size;
5762 _next_ordinal_to_read += 1;
5763 if next_offset >= end_offset {
5764 return Ok(());
5765 }
5766
5767 while _next_ordinal_to_read < 7 {
5769 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5770 _next_ordinal_to_read += 1;
5771 next_offset += envelope_size;
5772 }
5773
5774 let next_out_of_line = decoder.next_out_of_line();
5775 let handles_before = decoder.remaining_handles();
5776 if let Some((inlined, num_bytes, num_handles)) =
5777 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5778 {
5779 let member_inline_size =
5780 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5781 if inlined != (member_inline_size <= 4) {
5782 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5783 }
5784 let inner_offset;
5785 let mut inner_depth = depth.clone();
5786 if inlined {
5787 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5788 inner_offset = next_offset;
5789 } else {
5790 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5791 inner_depth.increment()?;
5792 }
5793 let val_ref = self.yields.get_or_insert_with(|| fidl::new_empty!(u64, D));
5794 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5795 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5796 {
5797 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5798 }
5799 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5800 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5801 }
5802 }
5803
5804 next_offset += envelope_size;
5805 _next_ordinal_to_read += 1;
5806 if next_offset >= end_offset {
5807 return Ok(());
5808 }
5809
5810 while _next_ordinal_to_read < 8 {
5812 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5813 _next_ordinal_to_read += 1;
5814 next_offset += envelope_size;
5815 }
5816
5817 let next_out_of_line = decoder.next_out_of_line();
5818 let handles_before = decoder.remaining_handles();
5819 if let Some((inlined, num_bytes, num_handles)) =
5820 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5821 {
5822 let member_inline_size =
5823 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5824 if inlined != (member_inline_size <= 4) {
5825 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5826 }
5827 let inner_offset;
5828 let mut inner_depth = depth.clone();
5829 if inlined {
5830 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5831 inner_offset = next_offset;
5832 } else {
5833 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5834 inner_depth.increment()?;
5835 }
5836 let val_ref = self.ints.get_or_insert_with(|| fidl::new_empty!(u64, D));
5837 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5838 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5839 {
5840 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5841 }
5842 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5843 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5844 }
5845 }
5846
5847 next_offset += envelope_size;
5848 _next_ordinal_to_read += 1;
5849 if next_offset >= end_offset {
5850 return Ok(());
5851 }
5852
5853 while _next_ordinal_to_read < 9 {
5855 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5856 _next_ordinal_to_read += 1;
5857 next_offset += envelope_size;
5858 }
5859
5860 let next_out_of_line = decoder.next_out_of_line();
5861 let handles_before = decoder.remaining_handles();
5862 if let Some((inlined, num_bytes, num_handles)) =
5863 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5864 {
5865 let member_inline_size =
5866 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5867 if inlined != (member_inline_size <= 4) {
5868 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5869 }
5870 let inner_offset;
5871 let mut inner_depth = depth.clone();
5872 if inlined {
5873 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5874 inner_offset = next_offset;
5875 } else {
5876 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5877 inner_depth.increment()?;
5878 }
5879 let val_ref = self.timer_ints.get_or_insert_with(|| fidl::new_empty!(u64, D));
5880 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5881 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5882 {
5883 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5884 }
5885 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5886 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5887 }
5888 }
5889
5890 next_offset += envelope_size;
5891 _next_ordinal_to_read += 1;
5892 if next_offset >= end_offset {
5893 return Ok(());
5894 }
5895
5896 while _next_ordinal_to_read < 10 {
5898 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5899 _next_ordinal_to_read += 1;
5900 next_offset += envelope_size;
5901 }
5902
5903 let next_out_of_line = decoder.next_out_of_line();
5904 let handles_before = decoder.remaining_handles();
5905 if let Some((inlined, num_bytes, num_handles)) =
5906 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5907 {
5908 let member_inline_size =
5909 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5910 if inlined != (member_inline_size <= 4) {
5911 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5912 }
5913 let inner_offset;
5914 let mut inner_depth = depth.clone();
5915 if inlined {
5916 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5917 inner_offset = next_offset;
5918 } else {
5919 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5920 inner_depth.increment()?;
5921 }
5922 let val_ref = self.timers.get_or_insert_with(|| fidl::new_empty!(u64, D));
5923 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5924 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5925 {
5926 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5927 }
5928 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5929 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5930 }
5931 }
5932
5933 next_offset += envelope_size;
5934 _next_ordinal_to_read += 1;
5935 if next_offset >= end_offset {
5936 return Ok(());
5937 }
5938
5939 while _next_ordinal_to_read < 11 {
5941 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5942 _next_ordinal_to_read += 1;
5943 next_offset += envelope_size;
5944 }
5945
5946 let next_out_of_line = decoder.next_out_of_line();
5947 let handles_before = decoder.remaining_handles();
5948 if let Some((inlined, num_bytes, num_handles)) =
5949 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5950 {
5951 let member_inline_size =
5952 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5953 if inlined != (member_inline_size <= 4) {
5954 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5955 }
5956 let inner_offset;
5957 let mut inner_depth = depth.clone();
5958 if inlined {
5959 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5960 inner_offset = next_offset;
5961 } else {
5962 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5963 inner_depth.increment()?;
5964 }
5965 let val_ref = self.page_faults.get_or_insert_with(|| fidl::new_empty!(u64, D));
5966 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5967 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5968 {
5969 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5970 }
5971 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5972 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5973 }
5974 }
5975
5976 next_offset += envelope_size;
5977 _next_ordinal_to_read += 1;
5978 if next_offset >= end_offset {
5979 return Ok(());
5980 }
5981
5982 while _next_ordinal_to_read < 12 {
5984 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5985 _next_ordinal_to_read += 1;
5986 next_offset += envelope_size;
5987 }
5988
5989 let next_out_of_line = decoder.next_out_of_line();
5990 let handles_before = decoder.remaining_handles();
5991 if let Some((inlined, num_bytes, num_handles)) =
5992 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5993 {
5994 let member_inline_size =
5995 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5996 if inlined != (member_inline_size <= 4) {
5997 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5998 }
5999 let inner_offset;
6000 let mut inner_depth = depth.clone();
6001 if inlined {
6002 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6003 inner_offset = next_offset;
6004 } else {
6005 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6006 inner_depth.increment()?;
6007 }
6008 let val_ref = self.exceptions.get_or_insert_with(|| fidl::new_empty!(u64, D));
6009 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6010 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6011 {
6012 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6013 }
6014 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6015 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6016 }
6017 }
6018
6019 next_offset += envelope_size;
6020 _next_ordinal_to_read += 1;
6021 if next_offset >= end_offset {
6022 return Ok(());
6023 }
6024
6025 while _next_ordinal_to_read < 13 {
6027 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6028 _next_ordinal_to_read += 1;
6029 next_offset += envelope_size;
6030 }
6031
6032 let next_out_of_line = decoder.next_out_of_line();
6033 let handles_before = decoder.remaining_handles();
6034 if let Some((inlined, num_bytes, num_handles)) =
6035 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6036 {
6037 let member_inline_size =
6038 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6039 if inlined != (member_inline_size <= 4) {
6040 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6041 }
6042 let inner_offset;
6043 let mut inner_depth = depth.clone();
6044 if inlined {
6045 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6046 inner_offset = next_offset;
6047 } else {
6048 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6049 inner_depth.increment()?;
6050 }
6051 let val_ref = self.syscalls.get_or_insert_with(|| fidl::new_empty!(u64, D));
6052 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6053 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6054 {
6055 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6056 }
6057 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6058 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6059 }
6060 }
6061
6062 next_offset += envelope_size;
6063 _next_ordinal_to_read += 1;
6064 if next_offset >= end_offset {
6065 return Ok(());
6066 }
6067
6068 while _next_ordinal_to_read < 14 {
6070 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6071 _next_ordinal_to_read += 1;
6072 next_offset += envelope_size;
6073 }
6074
6075 let next_out_of_line = decoder.next_out_of_line();
6076 let handles_before = decoder.remaining_handles();
6077 if let Some((inlined, num_bytes, num_handles)) =
6078 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6079 {
6080 let member_inline_size =
6081 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6082 if inlined != (member_inline_size <= 4) {
6083 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6084 }
6085 let inner_offset;
6086 let mut inner_depth = depth.clone();
6087 if inlined {
6088 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6089 inner_offset = next_offset;
6090 } else {
6091 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6092 inner_depth.increment()?;
6093 }
6094 let val_ref = self.reschedule_ipis.get_or_insert_with(|| fidl::new_empty!(u64, D));
6095 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6096 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6097 {
6098 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6099 }
6100 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6101 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6102 }
6103 }
6104
6105 next_offset += envelope_size;
6106 _next_ordinal_to_read += 1;
6107 if next_offset >= end_offset {
6108 return Ok(());
6109 }
6110
6111 while _next_ordinal_to_read < 15 {
6113 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6114 _next_ordinal_to_read += 1;
6115 next_offset += envelope_size;
6116 }
6117
6118 let next_out_of_line = decoder.next_out_of_line();
6119 let handles_before = decoder.remaining_handles();
6120 if let Some((inlined, num_bytes, num_handles)) =
6121 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6122 {
6123 let member_inline_size =
6124 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6125 if inlined != (member_inline_size <= 4) {
6126 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6127 }
6128 let inner_offset;
6129 let mut inner_depth = depth.clone();
6130 if inlined {
6131 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6132 inner_offset = next_offset;
6133 } else {
6134 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6135 inner_depth.increment()?;
6136 }
6137 let val_ref = self.generic_ipis.get_or_insert_with(|| fidl::new_empty!(u64, D));
6138 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6139 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6140 {
6141 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6142 }
6143 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6144 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6145 }
6146 }
6147
6148 next_offset += envelope_size;
6149 _next_ordinal_to_read += 1;
6150 if next_offset >= end_offset {
6151 return Ok(());
6152 }
6153
6154 while _next_ordinal_to_read < 16 {
6156 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6157 _next_ordinal_to_read += 1;
6158 next_offset += envelope_size;
6159 }
6160
6161 let next_out_of_line = decoder.next_out_of_line();
6162 let handles_before = decoder.remaining_handles();
6163 if let Some((inlined, num_bytes, num_handles)) =
6164 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6165 {
6166 let member_inline_size =
6167 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6168 if inlined != (member_inline_size <= 4) {
6169 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6170 }
6171 let inner_offset;
6172 let mut inner_depth = depth.clone();
6173 if inlined {
6174 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6175 inner_offset = next_offset;
6176 } else {
6177 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6178 inner_depth.increment()?;
6179 }
6180 let val_ref =
6181 self.normalized_busy_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
6182 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6183 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6184 {
6185 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6186 }
6187 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6188 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6189 }
6190 }
6191
6192 next_offset += envelope_size;
6193 _next_ordinal_to_read += 1;
6194 if next_offset >= end_offset {
6195 return Ok(());
6196 }
6197
6198 while _next_ordinal_to_read < 17 {
6200 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6201 _next_ordinal_to_read += 1;
6202 next_offset += envelope_size;
6203 }
6204
6205 let next_out_of_line = decoder.next_out_of_line();
6206 let handles_before = decoder.remaining_handles();
6207 if let Some((inlined, num_bytes, num_handles)) =
6208 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6209 {
6210 let member_inline_size =
6211 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6212 if inlined != (member_inline_size <= 4) {
6213 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6214 }
6215 let inner_offset;
6216 let mut inner_depth = depth.clone();
6217 if inlined {
6218 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6219 inner_offset = next_offset;
6220 } else {
6221 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6222 inner_depth.increment()?;
6223 }
6224 let val_ref = self
6225 .active_energy_consumption_nj
6226 .get_or_insert_with(|| fidl::new_empty!(u64, D));
6227 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6228 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6229 {
6230 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6231 }
6232 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6233 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6234 }
6235 }
6236
6237 next_offset += envelope_size;
6238 _next_ordinal_to_read += 1;
6239 if next_offset >= end_offset {
6240 return Ok(());
6241 }
6242
6243 while _next_ordinal_to_read < 18 {
6245 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6246 _next_ordinal_to_read += 1;
6247 next_offset += envelope_size;
6248 }
6249
6250 let next_out_of_line = decoder.next_out_of_line();
6251 let handles_before = decoder.remaining_handles();
6252 if let Some((inlined, num_bytes, num_handles)) =
6253 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6254 {
6255 let member_inline_size =
6256 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6257 if inlined != (member_inline_size <= 4) {
6258 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6259 }
6260 let inner_offset;
6261 let mut inner_depth = depth.clone();
6262 if inlined {
6263 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6264 inner_offset = next_offset;
6265 } else {
6266 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6267 inner_depth.increment()?;
6268 }
6269 let val_ref =
6270 self.idle_energy_consumption_nj.get_or_insert_with(|| fidl::new_empty!(u64, D));
6271 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6272 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6273 {
6274 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6275 }
6276 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6277 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6278 }
6279 }
6280
6281 next_offset += envelope_size;
6282
6283 while next_offset < end_offset {
6285 _next_ordinal_to_read += 1;
6286 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6287 next_offset += envelope_size;
6288 }
6289
6290 Ok(())
6291 }
6292 }
6293}