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 mmio_resource_ordinals {
243 pub const GET: u64 = 0x66747b9c5a6dfe7b;
244}
245
246pub mod msi_resource_ordinals {
247 pub const GET: u64 = 0x360a97e47e8c4f1f;
248}
249
250pub mod power_resource_ordinals {
251 pub const GET: u64 = 0x2b8df8ca24d1e866;
252}
253
254pub mod profile_resource_ordinals {
255 pub const GET: u64 = 0x3003a0c14de1fa86;
256}
257
258pub mod root_job_ordinals {
259 pub const GET: u64 = 0x73acb63f93d53eac;
260}
261
262pub mod root_job_for_inspect_ordinals {
263 pub const GET: u64 = 0x73acb63f93d53eac;
264}
265
266pub mod sampling_resource_ordinals {
267 pub const GET: u64 = 0x51c41ab037e99824;
268}
269
270pub mod smc_resource_ordinals {
271 pub const GET: u64 = 0x392cbd495b84ede7;
272}
273
274pub mod stall_resource_ordinals {
275 pub const GET: u64 = 0x5edf4c8629a9781a;
276}
277
278pub mod stats_ordinals {
279 pub const GET_MEMORY_STATS: u64 = 0x686677932ae41074;
280 pub const GET_MEMORY_STATS_EXTENDED: u64 = 0x60faa0f8aa38c29f;
281 pub const GET_MEMORY_STATS_COMPRESSION: u64 = 0x544a09995befb531;
282 pub const GET_CPU_STATS: u64 = 0x470e2684ca1ca19e;
283 pub const GET_CPU_LOAD: u64 = 0x4c8f0f05e7034666;
284}
285
286pub mod tracing_resource_ordinals {
287 pub const GET: u64 = 0x299bc179aa54c6aa;
288}
289
290pub mod vmex_resource_ordinals {
291 pub const GET: u64 = 0x33db32deed650699;
292}
293
294mod internal {
295 use super::*;
296
297 impl fidl::encoding::ValueTypeMarker for CounterUpdateInspectVmoResponse {
298 type Borrowed<'a> = &'a Self;
299 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
300 value
301 }
302 }
303
304 unsafe impl fidl::encoding::TypeMarker for CounterUpdateInspectVmoResponse {
305 type Owned = Self;
306
307 #[inline(always)]
308 fn inline_align(_context: fidl::encoding::Context) -> usize {
309 4
310 }
311
312 #[inline(always)]
313 fn inline_size(_context: fidl::encoding::Context) -> usize {
314 4
315 }
316 #[inline(always)]
317 fn encode_is_copy() -> bool {
318 true
319 }
320
321 #[inline(always)]
322 fn decode_is_copy() -> bool {
323 true
324 }
325 }
326
327 unsafe impl<D: fidl::encoding::ResourceDialect>
328 fidl::encoding::Encode<CounterUpdateInspectVmoResponse, D>
329 for &CounterUpdateInspectVmoResponse
330 {
331 #[inline]
332 unsafe fn encode(
333 self,
334 encoder: &mut fidl::encoding::Encoder<'_, D>,
335 offset: usize,
336 _depth: fidl::encoding::Depth,
337 ) -> fidl::Result<()> {
338 encoder.debug_check_bounds::<CounterUpdateInspectVmoResponse>(offset);
339 unsafe {
340 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
342 (buf_ptr as *mut CounterUpdateInspectVmoResponse)
343 .write_unaligned((self as *const CounterUpdateInspectVmoResponse).read());
344 }
347 Ok(())
348 }
349 }
350 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
351 fidl::encoding::Encode<CounterUpdateInspectVmoResponse, D> for (T0,)
352 {
353 #[inline]
354 unsafe fn encode(
355 self,
356 encoder: &mut fidl::encoding::Encoder<'_, D>,
357 offset: usize,
358 depth: fidl::encoding::Depth,
359 ) -> fidl::Result<()> {
360 encoder.debug_check_bounds::<CounterUpdateInspectVmoResponse>(offset);
361 self.0.encode(encoder, offset + 0, depth)?;
365 Ok(())
366 }
367 }
368
369 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
370 for CounterUpdateInspectVmoResponse
371 {
372 #[inline(always)]
373 fn new_empty() -> Self {
374 Self { status: fidl::new_empty!(i32, D) }
375 }
376
377 #[inline]
378 unsafe fn decode(
379 &mut self,
380 decoder: &mut fidl::encoding::Decoder<'_, D>,
381 offset: usize,
382 _depth: fidl::encoding::Depth,
383 ) -> fidl::Result<()> {
384 decoder.debug_check_bounds::<Self>(offset);
385 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
386 unsafe {
389 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
390 }
391 Ok(())
392 }
393 }
394
395 impl fidl::encoding::ValueTypeMarker for CpuStats {
396 type Borrowed<'a> = &'a Self;
397 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
398 value
399 }
400 }
401
402 unsafe impl fidl::encoding::TypeMarker for CpuStats {
403 type Owned = Self;
404
405 #[inline(always)]
406 fn inline_align(_context: fidl::encoding::Context) -> usize {
407 8
408 }
409
410 #[inline(always)]
411 fn inline_size(_context: fidl::encoding::Context) -> usize {
412 24
413 }
414 }
415
416 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CpuStats, D> for &CpuStats {
417 #[inline]
418 unsafe fn encode(
419 self,
420 encoder: &mut fidl::encoding::Encoder<'_, D>,
421 offset: usize,
422 _depth: fidl::encoding::Depth,
423 ) -> fidl::Result<()> {
424 encoder.debug_check_bounds::<CpuStats>(offset);
425 fidl::encoding::Encode::<CpuStats, D>::encode(
427 (
428 <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.actual_num_cpus),
429 <fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>> as fidl::encoding::ValueTypeMarker>::borrow(&self.per_cpu_stats),
430 ),
431 encoder, offset, _depth
432 )
433 }
434 }
435 unsafe impl<
436 D: fidl::encoding::ResourceDialect,
437 T0: fidl::encoding::Encode<u64, D>,
438 T1: fidl::encoding::Encode<
439 fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>>,
440 D,
441 >,
442 > fidl::encoding::Encode<CpuStats, D> for (T0, T1)
443 {
444 #[inline]
445 unsafe fn encode(
446 self,
447 encoder: &mut fidl::encoding::Encoder<'_, D>,
448 offset: usize,
449 depth: fidl::encoding::Depth,
450 ) -> fidl::Result<()> {
451 encoder.debug_check_bounds::<CpuStats>(offset);
452 self.0.encode(encoder, offset + 0, depth)?;
456 self.1.encode(encoder, offset + 8, depth)?;
457 Ok(())
458 }
459 }
460
461 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CpuStats {
462 #[inline(always)]
463 fn new_empty() -> Self {
464 Self {
465 actual_num_cpus: fidl::new_empty!(u64, D),
466 per_cpu_stats: fidl::new_empty!(
467 fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>>,
468 D
469 ),
470 }
471 }
472
473 #[inline]
474 unsafe fn decode(
475 &mut self,
476 decoder: &mut fidl::encoding::Decoder<'_, D>,
477 offset: usize,
478 _depth: fidl::encoding::Depth,
479 ) -> fidl::Result<()> {
480 decoder.debug_check_bounds::<Self>(offset);
481 fidl::decode!(u64, D, &mut self.actual_num_cpus, decoder, offset + 0, _depth)?;
483 fidl::decode!(
484 fidl::encoding::Optional<fidl::encoding::Vector<PerCpuStats, 512>>,
485 D,
486 &mut self.per_cpu_stats,
487 decoder,
488 offset + 8,
489 _depth
490 )?;
491 Ok(())
492 }
493 }
494
495 impl fidl::encoding::ValueTypeMarker for DebugBrokerSendDebugCommandRequest {
496 type Borrowed<'a> = &'a Self;
497 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
498 value
499 }
500 }
501
502 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSendDebugCommandRequest {
503 type Owned = Self;
504
505 #[inline(always)]
506 fn inline_align(_context: fidl::encoding::Context) -> usize {
507 8
508 }
509
510 #[inline(always)]
511 fn inline_size(_context: fidl::encoding::Context) -> usize {
512 16
513 }
514 }
515
516 unsafe impl<D: fidl::encoding::ResourceDialect>
517 fidl::encoding::Encode<DebugBrokerSendDebugCommandRequest, D>
518 for &DebugBrokerSendDebugCommandRequest
519 {
520 #[inline]
521 unsafe fn encode(
522 self,
523 encoder: &mut fidl::encoding::Encoder<'_, D>,
524 offset: usize,
525 _depth: fidl::encoding::Depth,
526 ) -> fidl::Result<()> {
527 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandRequest>(offset);
528 fidl::encoding::Encode::<DebugBrokerSendDebugCommandRequest, D>::encode(
530 (<fidl::encoding::BoundedString<1024> as fidl::encoding::ValueTypeMarker>::borrow(
531 &self.command,
532 ),),
533 encoder,
534 offset,
535 _depth,
536 )
537 }
538 }
539 unsafe impl<
540 D: fidl::encoding::ResourceDialect,
541 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<1024>, D>,
542 > fidl::encoding::Encode<DebugBrokerSendDebugCommandRequest, D> for (T0,)
543 {
544 #[inline]
545 unsafe fn encode(
546 self,
547 encoder: &mut fidl::encoding::Encoder<'_, D>,
548 offset: usize,
549 depth: fidl::encoding::Depth,
550 ) -> fidl::Result<()> {
551 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandRequest>(offset);
552 self.0.encode(encoder, offset + 0, depth)?;
556 Ok(())
557 }
558 }
559
560 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
561 for DebugBrokerSendDebugCommandRequest
562 {
563 #[inline(always)]
564 fn new_empty() -> Self {
565 Self { command: fidl::new_empty!(fidl::encoding::BoundedString<1024>, D) }
566 }
567
568 #[inline]
569 unsafe fn decode(
570 &mut self,
571 decoder: &mut fidl::encoding::Decoder<'_, D>,
572 offset: usize,
573 _depth: fidl::encoding::Depth,
574 ) -> fidl::Result<()> {
575 decoder.debug_check_bounds::<Self>(offset);
576 fidl::decode!(
578 fidl::encoding::BoundedString<1024>,
579 D,
580 &mut self.command,
581 decoder,
582 offset + 0,
583 _depth
584 )?;
585 Ok(())
586 }
587 }
588
589 impl fidl::encoding::ValueTypeMarker for DebugBrokerSendDebugCommandResponse {
590 type Borrowed<'a> = &'a Self;
591 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
592 value
593 }
594 }
595
596 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSendDebugCommandResponse {
597 type Owned = Self;
598
599 #[inline(always)]
600 fn inline_align(_context: fidl::encoding::Context) -> usize {
601 4
602 }
603
604 #[inline(always)]
605 fn inline_size(_context: fidl::encoding::Context) -> usize {
606 4
607 }
608 #[inline(always)]
609 fn encode_is_copy() -> bool {
610 true
611 }
612
613 #[inline(always)]
614 fn decode_is_copy() -> bool {
615 true
616 }
617 }
618
619 unsafe impl<D: fidl::encoding::ResourceDialect>
620 fidl::encoding::Encode<DebugBrokerSendDebugCommandResponse, D>
621 for &DebugBrokerSendDebugCommandResponse
622 {
623 #[inline]
624 unsafe fn encode(
625 self,
626 encoder: &mut fidl::encoding::Encoder<'_, D>,
627 offset: usize,
628 _depth: fidl::encoding::Depth,
629 ) -> fidl::Result<()> {
630 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandResponse>(offset);
631 unsafe {
632 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
634 (buf_ptr as *mut DebugBrokerSendDebugCommandResponse)
635 .write_unaligned((self as *const DebugBrokerSendDebugCommandResponse).read());
636 }
639 Ok(())
640 }
641 }
642 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
643 fidl::encoding::Encode<DebugBrokerSendDebugCommandResponse, D> for (T0,)
644 {
645 #[inline]
646 unsafe fn encode(
647 self,
648 encoder: &mut fidl::encoding::Encoder<'_, D>,
649 offset: usize,
650 depth: fidl::encoding::Depth,
651 ) -> fidl::Result<()> {
652 encoder.debug_check_bounds::<DebugBrokerSendDebugCommandResponse>(offset);
653 self.0.encode(encoder, offset + 0, depth)?;
657 Ok(())
658 }
659 }
660
661 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
662 for DebugBrokerSendDebugCommandResponse
663 {
664 #[inline(always)]
665 fn new_empty() -> Self {
666 Self { status: fidl::new_empty!(i32, D) }
667 }
668
669 #[inline]
670 unsafe fn decode(
671 &mut self,
672 decoder: &mut fidl::encoding::Decoder<'_, D>,
673 offset: usize,
674 _depth: fidl::encoding::Depth,
675 ) -> fidl::Result<()> {
676 decoder.debug_check_bounds::<Self>(offset);
677 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
678 unsafe {
681 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
682 }
683 Ok(())
684 }
685 }
686
687 impl fidl::encoding::ValueTypeMarker for DebugBrokerSetTracingEnabledRequest {
688 type Borrowed<'a> = &'a Self;
689 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
690 value
691 }
692 }
693
694 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSetTracingEnabledRequest {
695 type Owned = Self;
696
697 #[inline(always)]
698 fn inline_align(_context: fidl::encoding::Context) -> usize {
699 1
700 }
701
702 #[inline(always)]
703 fn inline_size(_context: fidl::encoding::Context) -> usize {
704 1
705 }
706 }
707
708 unsafe impl<D: fidl::encoding::ResourceDialect>
709 fidl::encoding::Encode<DebugBrokerSetTracingEnabledRequest, D>
710 for &DebugBrokerSetTracingEnabledRequest
711 {
712 #[inline]
713 unsafe fn encode(
714 self,
715 encoder: &mut fidl::encoding::Encoder<'_, D>,
716 offset: usize,
717 _depth: fidl::encoding::Depth,
718 ) -> fidl::Result<()> {
719 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledRequest>(offset);
720 fidl::encoding::Encode::<DebugBrokerSetTracingEnabledRequest, D>::encode(
722 (<bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enabled),),
723 encoder,
724 offset,
725 _depth,
726 )
727 }
728 }
729 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<bool, D>>
730 fidl::encoding::Encode<DebugBrokerSetTracingEnabledRequest, D> for (T0,)
731 {
732 #[inline]
733 unsafe fn encode(
734 self,
735 encoder: &mut fidl::encoding::Encoder<'_, D>,
736 offset: usize,
737 depth: fidl::encoding::Depth,
738 ) -> fidl::Result<()> {
739 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledRequest>(offset);
740 self.0.encode(encoder, offset + 0, depth)?;
744 Ok(())
745 }
746 }
747
748 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
749 for DebugBrokerSetTracingEnabledRequest
750 {
751 #[inline(always)]
752 fn new_empty() -> Self {
753 Self { enabled: fidl::new_empty!(bool, D) }
754 }
755
756 #[inline]
757 unsafe fn decode(
758 &mut self,
759 decoder: &mut fidl::encoding::Decoder<'_, D>,
760 offset: usize,
761 _depth: fidl::encoding::Depth,
762 ) -> fidl::Result<()> {
763 decoder.debug_check_bounds::<Self>(offset);
764 fidl::decode!(bool, D, &mut self.enabled, decoder, offset + 0, _depth)?;
766 Ok(())
767 }
768 }
769
770 impl fidl::encoding::ValueTypeMarker for DebugBrokerSetTracingEnabledResponse {
771 type Borrowed<'a> = &'a Self;
772 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
773 value
774 }
775 }
776
777 unsafe impl fidl::encoding::TypeMarker for DebugBrokerSetTracingEnabledResponse {
778 type Owned = Self;
779
780 #[inline(always)]
781 fn inline_align(_context: fidl::encoding::Context) -> usize {
782 4
783 }
784
785 #[inline(always)]
786 fn inline_size(_context: fidl::encoding::Context) -> usize {
787 4
788 }
789 #[inline(always)]
790 fn encode_is_copy() -> bool {
791 true
792 }
793
794 #[inline(always)]
795 fn decode_is_copy() -> bool {
796 true
797 }
798 }
799
800 unsafe impl<D: fidl::encoding::ResourceDialect>
801 fidl::encoding::Encode<DebugBrokerSetTracingEnabledResponse, D>
802 for &DebugBrokerSetTracingEnabledResponse
803 {
804 #[inline]
805 unsafe fn encode(
806 self,
807 encoder: &mut fidl::encoding::Encoder<'_, D>,
808 offset: usize,
809 _depth: fidl::encoding::Depth,
810 ) -> fidl::Result<()> {
811 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledResponse>(offset);
812 unsafe {
813 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
815 (buf_ptr as *mut DebugBrokerSetTracingEnabledResponse)
816 .write_unaligned((self as *const DebugBrokerSetTracingEnabledResponse).read());
817 }
820 Ok(())
821 }
822 }
823 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i32, D>>
824 fidl::encoding::Encode<DebugBrokerSetTracingEnabledResponse, D> for (T0,)
825 {
826 #[inline]
827 unsafe fn encode(
828 self,
829 encoder: &mut fidl::encoding::Encoder<'_, D>,
830 offset: usize,
831 depth: fidl::encoding::Depth,
832 ) -> fidl::Result<()> {
833 encoder.debug_check_bounds::<DebugBrokerSetTracingEnabledResponse>(offset);
834 self.0.encode(encoder, offset + 0, depth)?;
838 Ok(())
839 }
840 }
841
842 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
843 for DebugBrokerSetTracingEnabledResponse
844 {
845 #[inline(always)]
846 fn new_empty() -> Self {
847 Self { status: fidl::new_empty!(i32, D) }
848 }
849
850 #[inline]
851 unsafe fn decode(
852 &mut self,
853 decoder: &mut fidl::encoding::Decoder<'_, D>,
854 offset: usize,
855 _depth: fidl::encoding::Depth,
856 ) -> fidl::Result<()> {
857 decoder.debug_check_bounds::<Self>(offset);
858 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
859 unsafe {
862 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
863 }
864 Ok(())
865 }
866 }
867
868 impl fidl::encoding::ValueTypeMarker for StatsGetCpuLoadRequest {
869 type Borrowed<'a> = &'a Self;
870 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
871 value
872 }
873 }
874
875 unsafe impl fidl::encoding::TypeMarker for StatsGetCpuLoadRequest {
876 type Owned = Self;
877
878 #[inline(always)]
879 fn inline_align(_context: fidl::encoding::Context) -> usize {
880 8
881 }
882
883 #[inline(always)]
884 fn inline_size(_context: fidl::encoding::Context) -> usize {
885 8
886 }
887 #[inline(always)]
888 fn encode_is_copy() -> bool {
889 true
890 }
891
892 #[inline(always)]
893 fn decode_is_copy() -> bool {
894 true
895 }
896 }
897
898 unsafe impl<D: fidl::encoding::ResourceDialect>
899 fidl::encoding::Encode<StatsGetCpuLoadRequest, D> for &StatsGetCpuLoadRequest
900 {
901 #[inline]
902 unsafe fn encode(
903 self,
904 encoder: &mut fidl::encoding::Encoder<'_, D>,
905 offset: usize,
906 _depth: fidl::encoding::Depth,
907 ) -> fidl::Result<()> {
908 encoder.debug_check_bounds::<StatsGetCpuLoadRequest>(offset);
909 unsafe {
910 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
912 (buf_ptr as *mut StatsGetCpuLoadRequest)
913 .write_unaligned((self as *const StatsGetCpuLoadRequest).read());
914 }
917 Ok(())
918 }
919 }
920 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
921 fidl::encoding::Encode<StatsGetCpuLoadRequest, D> for (T0,)
922 {
923 #[inline]
924 unsafe fn encode(
925 self,
926 encoder: &mut fidl::encoding::Encoder<'_, D>,
927 offset: usize,
928 depth: fidl::encoding::Depth,
929 ) -> fidl::Result<()> {
930 encoder.debug_check_bounds::<StatsGetCpuLoadRequest>(offset);
931 self.0.encode(encoder, offset + 0, depth)?;
935 Ok(())
936 }
937 }
938
939 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
940 for StatsGetCpuLoadRequest
941 {
942 #[inline(always)]
943 fn new_empty() -> Self {
944 Self { duration: fidl::new_empty!(i64, D) }
945 }
946
947 #[inline]
948 unsafe fn decode(
949 &mut self,
950 decoder: &mut fidl::encoding::Decoder<'_, D>,
951 offset: usize,
952 _depth: fidl::encoding::Depth,
953 ) -> fidl::Result<()> {
954 decoder.debug_check_bounds::<Self>(offset);
955 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
956 unsafe {
959 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
960 }
961 Ok(())
962 }
963 }
964
965 impl fidl::encoding::ValueTypeMarker for StatsGetCpuLoadResponse {
966 type Borrowed<'a> = &'a Self;
967 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
968 value
969 }
970 }
971
972 unsafe impl fidl::encoding::TypeMarker for StatsGetCpuLoadResponse {
973 type Owned = Self;
974
975 #[inline(always)]
976 fn inline_align(_context: fidl::encoding::Context) -> usize {
977 8
978 }
979
980 #[inline(always)]
981 fn inline_size(_context: fidl::encoding::Context) -> usize {
982 16
983 }
984 }
985
986 unsafe impl<D: fidl::encoding::ResourceDialect>
987 fidl::encoding::Encode<StatsGetCpuLoadResponse, D> for &StatsGetCpuLoadResponse
988 {
989 #[inline]
990 unsafe fn encode(
991 self,
992 encoder: &mut fidl::encoding::Encoder<'_, D>,
993 offset: usize,
994 _depth: fidl::encoding::Depth,
995 ) -> fidl::Result<()> {
996 encoder.debug_check_bounds::<StatsGetCpuLoadResponse>(offset);
997 fidl::encoding::Encode::<StatsGetCpuLoadResponse, D>::encode(
999 (<fidl::encoding::Vector<f32, 512> as fidl::encoding::ValueTypeMarker>::borrow(
1000 &self.per_cpu_load,
1001 ),),
1002 encoder,
1003 offset,
1004 _depth,
1005 )
1006 }
1007 }
1008 unsafe impl<
1009 D: fidl::encoding::ResourceDialect,
1010 T0: fidl::encoding::Encode<fidl::encoding::Vector<f32, 512>, D>,
1011 > fidl::encoding::Encode<StatsGetCpuLoadResponse, D> for (T0,)
1012 {
1013 #[inline]
1014 unsafe fn encode(
1015 self,
1016 encoder: &mut fidl::encoding::Encoder<'_, D>,
1017 offset: usize,
1018 depth: fidl::encoding::Depth,
1019 ) -> fidl::Result<()> {
1020 encoder.debug_check_bounds::<StatsGetCpuLoadResponse>(offset);
1021 self.0.encode(encoder, offset + 0, depth)?;
1025 Ok(())
1026 }
1027 }
1028
1029 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1030 for StatsGetCpuLoadResponse
1031 {
1032 #[inline(always)]
1033 fn new_empty() -> Self {
1034 Self { per_cpu_load: fidl::new_empty!(fidl::encoding::Vector<f32, 512>, D) }
1035 }
1036
1037 #[inline]
1038 unsafe fn decode(
1039 &mut self,
1040 decoder: &mut fidl::encoding::Decoder<'_, D>,
1041 offset: usize,
1042 _depth: fidl::encoding::Depth,
1043 ) -> fidl::Result<()> {
1044 decoder.debug_check_bounds::<Self>(offset);
1045 fidl::decode!(fidl::encoding::Vector<f32, 512>, D, &mut self.per_cpu_load, decoder, offset + 0, _depth)?;
1047 Ok(())
1048 }
1049 }
1050
1051 impl fidl::encoding::ValueTypeMarker for StatsGetCpuStatsResponse {
1052 type Borrowed<'a> = &'a Self;
1053 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1054 value
1055 }
1056 }
1057
1058 unsafe impl fidl::encoding::TypeMarker for StatsGetCpuStatsResponse {
1059 type Owned = Self;
1060
1061 #[inline(always)]
1062 fn inline_align(_context: fidl::encoding::Context) -> usize {
1063 8
1064 }
1065
1066 #[inline(always)]
1067 fn inline_size(_context: fidl::encoding::Context) -> usize {
1068 24
1069 }
1070 }
1071
1072 unsafe impl<D: fidl::encoding::ResourceDialect>
1073 fidl::encoding::Encode<StatsGetCpuStatsResponse, D> for &StatsGetCpuStatsResponse
1074 {
1075 #[inline]
1076 unsafe fn encode(
1077 self,
1078 encoder: &mut fidl::encoding::Encoder<'_, D>,
1079 offset: usize,
1080 _depth: fidl::encoding::Depth,
1081 ) -> fidl::Result<()> {
1082 encoder.debug_check_bounds::<StatsGetCpuStatsResponse>(offset);
1083 fidl::encoding::Encode::<StatsGetCpuStatsResponse, D>::encode(
1085 (<CpuStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),),
1086 encoder,
1087 offset,
1088 _depth,
1089 )
1090 }
1091 }
1092 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<CpuStats, D>>
1093 fidl::encoding::Encode<StatsGetCpuStatsResponse, D> for (T0,)
1094 {
1095 #[inline]
1096 unsafe fn encode(
1097 self,
1098 encoder: &mut fidl::encoding::Encoder<'_, D>,
1099 offset: usize,
1100 depth: fidl::encoding::Depth,
1101 ) -> fidl::Result<()> {
1102 encoder.debug_check_bounds::<StatsGetCpuStatsResponse>(offset);
1103 self.0.encode(encoder, offset + 0, depth)?;
1107 Ok(())
1108 }
1109 }
1110
1111 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1112 for StatsGetCpuStatsResponse
1113 {
1114 #[inline(always)]
1115 fn new_empty() -> Self {
1116 Self { stats: fidl::new_empty!(CpuStats, D) }
1117 }
1118
1119 #[inline]
1120 unsafe fn decode(
1121 &mut self,
1122 decoder: &mut fidl::encoding::Decoder<'_, D>,
1123 offset: usize,
1124 _depth: fidl::encoding::Depth,
1125 ) -> fidl::Result<()> {
1126 decoder.debug_check_bounds::<Self>(offset);
1127 fidl::decode!(CpuStats, D, &mut self.stats, decoder, offset + 0, _depth)?;
1129 Ok(())
1130 }
1131 }
1132
1133 impl fidl::encoding::ValueTypeMarker for StatsGetMemoryStatsExtendedResponse {
1134 type Borrowed<'a> = &'a Self;
1135 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1136 value
1137 }
1138 }
1139
1140 unsafe impl fidl::encoding::TypeMarker for StatsGetMemoryStatsExtendedResponse {
1141 type Owned = Self;
1142
1143 #[inline(always)]
1144 fn inline_align(_context: fidl::encoding::Context) -> usize {
1145 8
1146 }
1147
1148 #[inline(always)]
1149 fn inline_size(_context: fidl::encoding::Context) -> usize {
1150 16
1151 }
1152 }
1153
1154 unsafe impl<D: fidl::encoding::ResourceDialect>
1155 fidl::encoding::Encode<StatsGetMemoryStatsExtendedResponse, D>
1156 for &StatsGetMemoryStatsExtendedResponse
1157 {
1158 #[inline]
1159 unsafe fn encode(
1160 self,
1161 encoder: &mut fidl::encoding::Encoder<'_, D>,
1162 offset: usize,
1163 _depth: fidl::encoding::Depth,
1164 ) -> fidl::Result<()> {
1165 encoder.debug_check_bounds::<StatsGetMemoryStatsExtendedResponse>(offset);
1166 fidl::encoding::Encode::<StatsGetMemoryStatsExtendedResponse, D>::encode(
1168 (<MemoryStatsExtended as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),),
1169 encoder,
1170 offset,
1171 _depth,
1172 )
1173 }
1174 }
1175 unsafe impl<
1176 D: fidl::encoding::ResourceDialect,
1177 T0: fidl::encoding::Encode<MemoryStatsExtended, D>,
1178 > fidl::encoding::Encode<StatsGetMemoryStatsExtendedResponse, D> for (T0,)
1179 {
1180 #[inline]
1181 unsafe fn encode(
1182 self,
1183 encoder: &mut fidl::encoding::Encoder<'_, D>,
1184 offset: usize,
1185 depth: fidl::encoding::Depth,
1186 ) -> fidl::Result<()> {
1187 encoder.debug_check_bounds::<StatsGetMemoryStatsExtendedResponse>(offset);
1188 self.0.encode(encoder, offset + 0, depth)?;
1192 Ok(())
1193 }
1194 }
1195
1196 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1197 for StatsGetMemoryStatsExtendedResponse
1198 {
1199 #[inline(always)]
1200 fn new_empty() -> Self {
1201 Self { stats: fidl::new_empty!(MemoryStatsExtended, D) }
1202 }
1203
1204 #[inline]
1205 unsafe fn decode(
1206 &mut self,
1207 decoder: &mut fidl::encoding::Decoder<'_, D>,
1208 offset: usize,
1209 _depth: fidl::encoding::Depth,
1210 ) -> fidl::Result<()> {
1211 decoder.debug_check_bounds::<Self>(offset);
1212 fidl::decode!(MemoryStatsExtended, D, &mut self.stats, decoder, offset + 0, _depth)?;
1214 Ok(())
1215 }
1216 }
1217
1218 impl fidl::encoding::ValueTypeMarker for StatsGetMemoryStatsResponse {
1219 type Borrowed<'a> = &'a Self;
1220 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1221 value
1222 }
1223 }
1224
1225 unsafe impl fidl::encoding::TypeMarker for StatsGetMemoryStatsResponse {
1226 type Owned = Self;
1227
1228 #[inline(always)]
1229 fn inline_align(_context: fidl::encoding::Context) -> usize {
1230 8
1231 }
1232
1233 #[inline(always)]
1234 fn inline_size(_context: fidl::encoding::Context) -> usize {
1235 16
1236 }
1237 }
1238
1239 unsafe impl<D: fidl::encoding::ResourceDialect>
1240 fidl::encoding::Encode<StatsGetMemoryStatsResponse, D> for &StatsGetMemoryStatsResponse
1241 {
1242 #[inline]
1243 unsafe fn encode(
1244 self,
1245 encoder: &mut fidl::encoding::Encoder<'_, D>,
1246 offset: usize,
1247 _depth: fidl::encoding::Depth,
1248 ) -> fidl::Result<()> {
1249 encoder.debug_check_bounds::<StatsGetMemoryStatsResponse>(offset);
1250 fidl::encoding::Encode::<StatsGetMemoryStatsResponse, D>::encode(
1252 (<MemoryStats as fidl::encoding::ValueTypeMarker>::borrow(&self.stats),),
1253 encoder,
1254 offset,
1255 _depth,
1256 )
1257 }
1258 }
1259 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<MemoryStats, D>>
1260 fidl::encoding::Encode<StatsGetMemoryStatsResponse, D> for (T0,)
1261 {
1262 #[inline]
1263 unsafe fn encode(
1264 self,
1265 encoder: &mut fidl::encoding::Encoder<'_, D>,
1266 offset: usize,
1267 depth: fidl::encoding::Depth,
1268 ) -> fidl::Result<()> {
1269 encoder.debug_check_bounds::<StatsGetMemoryStatsResponse>(offset);
1270 self.0.encode(encoder, offset + 0, depth)?;
1274 Ok(())
1275 }
1276 }
1277
1278 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1279 for StatsGetMemoryStatsResponse
1280 {
1281 #[inline(always)]
1282 fn new_empty() -> Self {
1283 Self { stats: fidl::new_empty!(MemoryStats, D) }
1284 }
1285
1286 #[inline]
1287 unsafe fn decode(
1288 &mut self,
1289 decoder: &mut fidl::encoding::Decoder<'_, D>,
1290 offset: usize,
1291 _depth: fidl::encoding::Depth,
1292 ) -> fidl::Result<()> {
1293 decoder.debug_check_bounds::<Self>(offset);
1294 fidl::decode!(MemoryStats, D, &mut self.stats, decoder, offset + 0, _depth)?;
1296 Ok(())
1297 }
1298 }
1299
1300 impl MemoryStats {
1301 #[inline(always)]
1302 fn max_ordinal_present(&self) -> u64 {
1303 if let Some(_) = self.vmo_discardable_unlocked_bytes {
1304 return 19;
1305 }
1306 if let Some(_) = self.vmo_discardable_locked_bytes {
1307 return 18;
1308 }
1309 if let Some(_) = self.vmo_reclaim_disabled_bytes {
1310 return 17;
1311 }
1312 if let Some(_) = self.vmo_reclaim_oldest_bytes {
1313 return 16;
1314 }
1315 if let Some(_) = self.vmo_reclaim_newest_bytes {
1316 return 15;
1317 }
1318 if let Some(_) = self.vmo_reclaim_total_bytes {
1319 return 14;
1320 }
1321 if let Some(_) = self.zram_bytes {
1322 return 13;
1323 }
1324 if let Some(_) = self.slab_bytes {
1325 return 12;
1326 }
1327 if let Some(_) = self.cache_bytes {
1328 return 11;
1329 }
1330 if let Some(_) = self.free_loaned_bytes {
1331 return 10;
1332 }
1333 if let Some(_) = self.other_bytes {
1334 return 9;
1335 }
1336 if let Some(_) = self.ipc_bytes {
1337 return 8;
1338 }
1339 if let Some(_) = self.mmu_overhead_bytes {
1340 return 7;
1341 }
1342 if let Some(_) = self.vmo_bytes {
1343 return 6;
1344 }
1345 if let Some(_) = self.free_heap_bytes {
1346 return 5;
1347 }
1348 if let Some(_) = self.total_heap_bytes {
1349 return 4;
1350 }
1351 if let Some(_) = self.wired_bytes {
1352 return 3;
1353 }
1354 if let Some(_) = self.free_bytes {
1355 return 2;
1356 }
1357 if let Some(_) = self.total_bytes {
1358 return 1;
1359 }
1360 0
1361 }
1362 }
1363
1364 impl fidl::encoding::ValueTypeMarker for MemoryStats {
1365 type Borrowed<'a> = &'a Self;
1366 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1367 value
1368 }
1369 }
1370
1371 unsafe impl fidl::encoding::TypeMarker for MemoryStats {
1372 type Owned = Self;
1373
1374 #[inline(always)]
1375 fn inline_align(_context: fidl::encoding::Context) -> usize {
1376 8
1377 }
1378
1379 #[inline(always)]
1380 fn inline_size(_context: fidl::encoding::Context) -> usize {
1381 16
1382 }
1383 }
1384
1385 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MemoryStats, D>
1386 for &MemoryStats
1387 {
1388 unsafe fn encode(
1389 self,
1390 encoder: &mut fidl::encoding::Encoder<'_, D>,
1391 offset: usize,
1392 mut depth: fidl::encoding::Depth,
1393 ) -> fidl::Result<()> {
1394 encoder.debug_check_bounds::<MemoryStats>(offset);
1395 let max_ordinal: u64 = self.max_ordinal_present();
1397 encoder.write_num(max_ordinal, offset);
1398 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1399 if max_ordinal == 0 {
1401 return Ok(());
1402 }
1403 depth.increment()?;
1404 let envelope_size = 8;
1405 let bytes_len = max_ordinal as usize * envelope_size;
1406 #[allow(unused_variables)]
1407 let offset = encoder.out_of_line_offset(bytes_len);
1408 let mut _prev_end_offset: usize = 0;
1409 if 1 > max_ordinal {
1410 return Ok(());
1411 }
1412
1413 let cur_offset: usize = (1 - 1) * envelope_size;
1416
1417 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1419
1420 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1425 self.total_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1426 encoder,
1427 offset + cur_offset,
1428 depth,
1429 )?;
1430
1431 _prev_end_offset = cur_offset + envelope_size;
1432 if 2 > max_ordinal {
1433 return Ok(());
1434 }
1435
1436 let cur_offset: usize = (2 - 1) * envelope_size;
1439
1440 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1442
1443 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1448 self.free_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1449 encoder,
1450 offset + cur_offset,
1451 depth,
1452 )?;
1453
1454 _prev_end_offset = cur_offset + envelope_size;
1455 if 3 > max_ordinal {
1456 return Ok(());
1457 }
1458
1459 let cur_offset: usize = (3 - 1) * envelope_size;
1462
1463 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1465
1466 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1471 self.wired_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1472 encoder,
1473 offset + cur_offset,
1474 depth,
1475 )?;
1476
1477 _prev_end_offset = cur_offset + envelope_size;
1478 if 4 > max_ordinal {
1479 return Ok(());
1480 }
1481
1482 let cur_offset: usize = (4 - 1) * envelope_size;
1485
1486 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1488
1489 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1494 self.total_heap_bytes
1495 .as_ref()
1496 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1497 encoder,
1498 offset + cur_offset,
1499 depth,
1500 )?;
1501
1502 _prev_end_offset = cur_offset + envelope_size;
1503 if 5 > max_ordinal {
1504 return Ok(());
1505 }
1506
1507 let cur_offset: usize = (5 - 1) * envelope_size;
1510
1511 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1513
1514 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1519 self.free_heap_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1520 encoder,
1521 offset + cur_offset,
1522 depth,
1523 )?;
1524
1525 _prev_end_offset = cur_offset + envelope_size;
1526 if 6 > max_ordinal {
1527 return Ok(());
1528 }
1529
1530 let cur_offset: usize = (6 - 1) * envelope_size;
1533
1534 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1536
1537 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1542 self.vmo_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1543 encoder,
1544 offset + cur_offset,
1545 depth,
1546 )?;
1547
1548 _prev_end_offset = cur_offset + envelope_size;
1549 if 7 > max_ordinal {
1550 return Ok(());
1551 }
1552
1553 let cur_offset: usize = (7 - 1) * envelope_size;
1556
1557 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1559
1560 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1565 self.mmu_overhead_bytes
1566 .as_ref()
1567 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1568 encoder,
1569 offset + cur_offset,
1570 depth,
1571 )?;
1572
1573 _prev_end_offset = cur_offset + envelope_size;
1574 if 8 > max_ordinal {
1575 return Ok(());
1576 }
1577
1578 let cur_offset: usize = (8 - 1) * envelope_size;
1581
1582 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1584
1585 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1590 self.ipc_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1591 encoder,
1592 offset + cur_offset,
1593 depth,
1594 )?;
1595
1596 _prev_end_offset = cur_offset + envelope_size;
1597 if 9 > max_ordinal {
1598 return Ok(());
1599 }
1600
1601 let cur_offset: usize = (9 - 1) * envelope_size;
1604
1605 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1607
1608 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1613 self.other_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1614 encoder,
1615 offset + cur_offset,
1616 depth,
1617 )?;
1618
1619 _prev_end_offset = cur_offset + envelope_size;
1620 if 10 > max_ordinal {
1621 return Ok(());
1622 }
1623
1624 let cur_offset: usize = (10 - 1) * envelope_size;
1627
1628 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1630
1631 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1636 self.free_loaned_bytes
1637 .as_ref()
1638 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1639 encoder,
1640 offset + cur_offset,
1641 depth,
1642 )?;
1643
1644 _prev_end_offset = cur_offset + envelope_size;
1645 if 11 > max_ordinal {
1646 return Ok(());
1647 }
1648
1649 let cur_offset: usize = (11 - 1) * envelope_size;
1652
1653 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1655
1656 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1661 self.cache_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1662 encoder,
1663 offset + cur_offset,
1664 depth,
1665 )?;
1666
1667 _prev_end_offset = cur_offset + envelope_size;
1668 if 12 > max_ordinal {
1669 return Ok(());
1670 }
1671
1672 let cur_offset: usize = (12 - 1) * envelope_size;
1675
1676 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1678
1679 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1684 self.slab_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1685 encoder,
1686 offset + cur_offset,
1687 depth,
1688 )?;
1689
1690 _prev_end_offset = cur_offset + envelope_size;
1691 if 13 > max_ordinal {
1692 return Ok(());
1693 }
1694
1695 let cur_offset: usize = (13 - 1) * envelope_size;
1698
1699 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1701
1702 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1707 self.zram_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1708 encoder,
1709 offset + cur_offset,
1710 depth,
1711 )?;
1712
1713 _prev_end_offset = cur_offset + envelope_size;
1714 if 14 > max_ordinal {
1715 return Ok(());
1716 }
1717
1718 let cur_offset: usize = (14 - 1) * envelope_size;
1721
1722 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1724
1725 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1730 self.vmo_reclaim_total_bytes
1731 .as_ref()
1732 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1733 encoder,
1734 offset + cur_offset,
1735 depth,
1736 )?;
1737
1738 _prev_end_offset = cur_offset + envelope_size;
1739 if 15 > max_ordinal {
1740 return Ok(());
1741 }
1742
1743 let cur_offset: usize = (15 - 1) * envelope_size;
1746
1747 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1749
1750 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1755 self.vmo_reclaim_newest_bytes
1756 .as_ref()
1757 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1758 encoder,
1759 offset + cur_offset,
1760 depth,
1761 )?;
1762
1763 _prev_end_offset = cur_offset + envelope_size;
1764 if 16 > max_ordinal {
1765 return Ok(());
1766 }
1767
1768 let cur_offset: usize = (16 - 1) * envelope_size;
1771
1772 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1774
1775 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1780 self.vmo_reclaim_oldest_bytes
1781 .as_ref()
1782 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1783 encoder,
1784 offset + cur_offset,
1785 depth,
1786 )?;
1787
1788 _prev_end_offset = cur_offset + envelope_size;
1789 if 17 > max_ordinal {
1790 return Ok(());
1791 }
1792
1793 let cur_offset: usize = (17 - 1) * envelope_size;
1796
1797 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1799
1800 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1805 self.vmo_reclaim_disabled_bytes
1806 .as_ref()
1807 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1808 encoder,
1809 offset + cur_offset,
1810 depth,
1811 )?;
1812
1813 _prev_end_offset = cur_offset + envelope_size;
1814 if 18 > max_ordinal {
1815 return Ok(());
1816 }
1817
1818 let cur_offset: usize = (18 - 1) * envelope_size;
1821
1822 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1824
1825 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1830 self.vmo_discardable_locked_bytes
1831 .as_ref()
1832 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1833 encoder,
1834 offset + cur_offset,
1835 depth,
1836 )?;
1837
1838 _prev_end_offset = cur_offset + envelope_size;
1839 if 19 > max_ordinal {
1840 return Ok(());
1841 }
1842
1843 let cur_offset: usize = (19 - 1) * envelope_size;
1846
1847 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1849
1850 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1855 self.vmo_discardable_unlocked_bytes
1856 .as_ref()
1857 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1858 encoder,
1859 offset + cur_offset,
1860 depth,
1861 )?;
1862
1863 _prev_end_offset = cur_offset + envelope_size;
1864
1865 Ok(())
1866 }
1867 }
1868
1869 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MemoryStats {
1870 #[inline(always)]
1871 fn new_empty() -> Self {
1872 Self::default()
1873 }
1874
1875 unsafe fn decode(
1876 &mut self,
1877 decoder: &mut fidl::encoding::Decoder<'_, D>,
1878 offset: usize,
1879 mut depth: fidl::encoding::Depth,
1880 ) -> fidl::Result<()> {
1881 decoder.debug_check_bounds::<Self>(offset);
1882 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1883 None => return Err(fidl::Error::NotNullable),
1884 Some(len) => len,
1885 };
1886 if len == 0 {
1888 return Ok(());
1889 };
1890 depth.increment()?;
1891 let envelope_size = 8;
1892 let bytes_len = len * envelope_size;
1893 let offset = decoder.out_of_line_offset(bytes_len)?;
1894 let mut _next_ordinal_to_read = 0;
1896 let mut next_offset = offset;
1897 let end_offset = offset + bytes_len;
1898 _next_ordinal_to_read += 1;
1899 if next_offset >= end_offset {
1900 return Ok(());
1901 }
1902
1903 while _next_ordinal_to_read < 1 {
1905 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1906 _next_ordinal_to_read += 1;
1907 next_offset += envelope_size;
1908 }
1909
1910 let next_out_of_line = decoder.next_out_of_line();
1911 let handles_before = decoder.remaining_handles();
1912 if let Some((inlined, num_bytes, num_handles)) =
1913 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1914 {
1915 let member_inline_size =
1916 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1917 if inlined != (member_inline_size <= 4) {
1918 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1919 }
1920 let inner_offset;
1921 let mut inner_depth = depth.clone();
1922 if inlined {
1923 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1924 inner_offset = next_offset;
1925 } else {
1926 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1927 inner_depth.increment()?;
1928 }
1929 let val_ref = self.total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
1930 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1931 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1932 {
1933 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1934 }
1935 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1936 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1937 }
1938 }
1939
1940 next_offset += envelope_size;
1941 _next_ordinal_to_read += 1;
1942 if next_offset >= end_offset {
1943 return Ok(());
1944 }
1945
1946 while _next_ordinal_to_read < 2 {
1948 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1949 _next_ordinal_to_read += 1;
1950 next_offset += envelope_size;
1951 }
1952
1953 let next_out_of_line = decoder.next_out_of_line();
1954 let handles_before = decoder.remaining_handles();
1955 if let Some((inlined, num_bytes, num_handles)) =
1956 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1957 {
1958 let member_inline_size =
1959 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1960 if inlined != (member_inline_size <= 4) {
1961 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1962 }
1963 let inner_offset;
1964 let mut inner_depth = depth.clone();
1965 if inlined {
1966 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1967 inner_offset = next_offset;
1968 } else {
1969 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1970 inner_depth.increment()?;
1971 }
1972 let val_ref = self.free_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
1973 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1974 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1975 {
1976 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1977 }
1978 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1979 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1980 }
1981 }
1982
1983 next_offset += envelope_size;
1984 _next_ordinal_to_read += 1;
1985 if next_offset >= end_offset {
1986 return Ok(());
1987 }
1988
1989 while _next_ordinal_to_read < 3 {
1991 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1992 _next_ordinal_to_read += 1;
1993 next_offset += envelope_size;
1994 }
1995
1996 let next_out_of_line = decoder.next_out_of_line();
1997 let handles_before = decoder.remaining_handles();
1998 if let Some((inlined, num_bytes, num_handles)) =
1999 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2000 {
2001 let member_inline_size =
2002 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2003 if inlined != (member_inline_size <= 4) {
2004 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2005 }
2006 let inner_offset;
2007 let mut inner_depth = depth.clone();
2008 if inlined {
2009 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2010 inner_offset = next_offset;
2011 } else {
2012 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2013 inner_depth.increment()?;
2014 }
2015 let val_ref = self.wired_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2016 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2017 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2018 {
2019 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2020 }
2021 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2022 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2023 }
2024 }
2025
2026 next_offset += envelope_size;
2027 _next_ordinal_to_read += 1;
2028 if next_offset >= end_offset {
2029 return Ok(());
2030 }
2031
2032 while _next_ordinal_to_read < 4 {
2034 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2035 _next_ordinal_to_read += 1;
2036 next_offset += envelope_size;
2037 }
2038
2039 let next_out_of_line = decoder.next_out_of_line();
2040 let handles_before = decoder.remaining_handles();
2041 if let Some((inlined, num_bytes, num_handles)) =
2042 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2043 {
2044 let member_inline_size =
2045 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2046 if inlined != (member_inline_size <= 4) {
2047 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2048 }
2049 let inner_offset;
2050 let mut inner_depth = depth.clone();
2051 if inlined {
2052 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2053 inner_offset = next_offset;
2054 } else {
2055 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2056 inner_depth.increment()?;
2057 }
2058 let val_ref = self.total_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2059 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2060 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2061 {
2062 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2063 }
2064 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2065 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2066 }
2067 }
2068
2069 next_offset += envelope_size;
2070 _next_ordinal_to_read += 1;
2071 if next_offset >= end_offset {
2072 return Ok(());
2073 }
2074
2075 while _next_ordinal_to_read < 5 {
2077 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2078 _next_ordinal_to_read += 1;
2079 next_offset += envelope_size;
2080 }
2081
2082 let next_out_of_line = decoder.next_out_of_line();
2083 let handles_before = decoder.remaining_handles();
2084 if let Some((inlined, num_bytes, num_handles)) =
2085 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2086 {
2087 let member_inline_size =
2088 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2089 if inlined != (member_inline_size <= 4) {
2090 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2091 }
2092 let inner_offset;
2093 let mut inner_depth = depth.clone();
2094 if inlined {
2095 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2096 inner_offset = next_offset;
2097 } else {
2098 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2099 inner_depth.increment()?;
2100 }
2101 let val_ref = self.free_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2102 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2103 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2104 {
2105 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2106 }
2107 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2108 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2109 }
2110 }
2111
2112 next_offset += envelope_size;
2113 _next_ordinal_to_read += 1;
2114 if next_offset >= end_offset {
2115 return Ok(());
2116 }
2117
2118 while _next_ordinal_to_read < 6 {
2120 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2121 _next_ordinal_to_read += 1;
2122 next_offset += envelope_size;
2123 }
2124
2125 let next_out_of_line = decoder.next_out_of_line();
2126 let handles_before = decoder.remaining_handles();
2127 if let Some((inlined, num_bytes, num_handles)) =
2128 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2129 {
2130 let member_inline_size =
2131 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2132 if inlined != (member_inline_size <= 4) {
2133 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2134 }
2135 let inner_offset;
2136 let mut inner_depth = depth.clone();
2137 if inlined {
2138 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2139 inner_offset = next_offset;
2140 } else {
2141 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2142 inner_depth.increment()?;
2143 }
2144 let val_ref = self.vmo_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2145 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2146 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2147 {
2148 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2149 }
2150 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2151 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2152 }
2153 }
2154
2155 next_offset += envelope_size;
2156 _next_ordinal_to_read += 1;
2157 if next_offset >= end_offset {
2158 return Ok(());
2159 }
2160
2161 while _next_ordinal_to_read < 7 {
2163 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2164 _next_ordinal_to_read += 1;
2165 next_offset += envelope_size;
2166 }
2167
2168 let next_out_of_line = decoder.next_out_of_line();
2169 let handles_before = decoder.remaining_handles();
2170 if let Some((inlined, num_bytes, num_handles)) =
2171 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2172 {
2173 let member_inline_size =
2174 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2175 if inlined != (member_inline_size <= 4) {
2176 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2177 }
2178 let inner_offset;
2179 let mut inner_depth = depth.clone();
2180 if inlined {
2181 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2182 inner_offset = next_offset;
2183 } else {
2184 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2185 inner_depth.increment()?;
2186 }
2187 let val_ref =
2188 self.mmu_overhead_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2189 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2190 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2191 {
2192 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2193 }
2194 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2195 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2196 }
2197 }
2198
2199 next_offset += envelope_size;
2200 _next_ordinal_to_read += 1;
2201 if next_offset >= end_offset {
2202 return Ok(());
2203 }
2204
2205 while _next_ordinal_to_read < 8 {
2207 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2208 _next_ordinal_to_read += 1;
2209 next_offset += envelope_size;
2210 }
2211
2212 let next_out_of_line = decoder.next_out_of_line();
2213 let handles_before = decoder.remaining_handles();
2214 if let Some((inlined, num_bytes, num_handles)) =
2215 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2216 {
2217 let member_inline_size =
2218 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2219 if inlined != (member_inline_size <= 4) {
2220 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2221 }
2222 let inner_offset;
2223 let mut inner_depth = depth.clone();
2224 if inlined {
2225 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2226 inner_offset = next_offset;
2227 } else {
2228 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2229 inner_depth.increment()?;
2230 }
2231 let val_ref = self.ipc_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2232 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2233 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2234 {
2235 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2236 }
2237 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2238 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2239 }
2240 }
2241
2242 next_offset += envelope_size;
2243 _next_ordinal_to_read += 1;
2244 if next_offset >= end_offset {
2245 return Ok(());
2246 }
2247
2248 while _next_ordinal_to_read < 9 {
2250 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2251 _next_ordinal_to_read += 1;
2252 next_offset += envelope_size;
2253 }
2254
2255 let next_out_of_line = decoder.next_out_of_line();
2256 let handles_before = decoder.remaining_handles();
2257 if let Some((inlined, num_bytes, num_handles)) =
2258 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2259 {
2260 let member_inline_size =
2261 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2262 if inlined != (member_inline_size <= 4) {
2263 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2264 }
2265 let inner_offset;
2266 let mut inner_depth = depth.clone();
2267 if inlined {
2268 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2269 inner_offset = next_offset;
2270 } else {
2271 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2272 inner_depth.increment()?;
2273 }
2274 let val_ref = self.other_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2275 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2276 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2277 {
2278 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2279 }
2280 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2281 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2282 }
2283 }
2284
2285 next_offset += envelope_size;
2286 _next_ordinal_to_read += 1;
2287 if next_offset >= end_offset {
2288 return Ok(());
2289 }
2290
2291 while _next_ordinal_to_read < 10 {
2293 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2294 _next_ordinal_to_read += 1;
2295 next_offset += envelope_size;
2296 }
2297
2298 let next_out_of_line = decoder.next_out_of_line();
2299 let handles_before = decoder.remaining_handles();
2300 if let Some((inlined, num_bytes, num_handles)) =
2301 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2302 {
2303 let member_inline_size =
2304 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2305 if inlined != (member_inline_size <= 4) {
2306 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2307 }
2308 let inner_offset;
2309 let mut inner_depth = depth.clone();
2310 if inlined {
2311 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2312 inner_offset = next_offset;
2313 } else {
2314 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2315 inner_depth.increment()?;
2316 }
2317 let val_ref =
2318 self.free_loaned_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2319 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2320 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2321 {
2322 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2323 }
2324 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2325 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2326 }
2327 }
2328
2329 next_offset += envelope_size;
2330 _next_ordinal_to_read += 1;
2331 if next_offset >= end_offset {
2332 return Ok(());
2333 }
2334
2335 while _next_ordinal_to_read < 11 {
2337 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2338 _next_ordinal_to_read += 1;
2339 next_offset += envelope_size;
2340 }
2341
2342 let next_out_of_line = decoder.next_out_of_line();
2343 let handles_before = decoder.remaining_handles();
2344 if let Some((inlined, num_bytes, num_handles)) =
2345 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2346 {
2347 let member_inline_size =
2348 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2349 if inlined != (member_inline_size <= 4) {
2350 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2351 }
2352 let inner_offset;
2353 let mut inner_depth = depth.clone();
2354 if inlined {
2355 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2356 inner_offset = next_offset;
2357 } else {
2358 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2359 inner_depth.increment()?;
2360 }
2361 let val_ref = self.cache_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2362 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2363 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2364 {
2365 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2366 }
2367 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2368 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2369 }
2370 }
2371
2372 next_offset += envelope_size;
2373 _next_ordinal_to_read += 1;
2374 if next_offset >= end_offset {
2375 return Ok(());
2376 }
2377
2378 while _next_ordinal_to_read < 12 {
2380 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2381 _next_ordinal_to_read += 1;
2382 next_offset += envelope_size;
2383 }
2384
2385 let next_out_of_line = decoder.next_out_of_line();
2386 let handles_before = decoder.remaining_handles();
2387 if let Some((inlined, num_bytes, num_handles)) =
2388 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2389 {
2390 let member_inline_size =
2391 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2392 if inlined != (member_inline_size <= 4) {
2393 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2394 }
2395 let inner_offset;
2396 let mut inner_depth = depth.clone();
2397 if inlined {
2398 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2399 inner_offset = next_offset;
2400 } else {
2401 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2402 inner_depth.increment()?;
2403 }
2404 let val_ref = self.slab_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2405 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2406 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2407 {
2408 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2409 }
2410 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2411 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2412 }
2413 }
2414
2415 next_offset += envelope_size;
2416 _next_ordinal_to_read += 1;
2417 if next_offset >= end_offset {
2418 return Ok(());
2419 }
2420
2421 while _next_ordinal_to_read < 13 {
2423 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2424 _next_ordinal_to_read += 1;
2425 next_offset += envelope_size;
2426 }
2427
2428 let next_out_of_line = decoder.next_out_of_line();
2429 let handles_before = decoder.remaining_handles();
2430 if let Some((inlined, num_bytes, num_handles)) =
2431 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2432 {
2433 let member_inline_size =
2434 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2435 if inlined != (member_inline_size <= 4) {
2436 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2437 }
2438 let inner_offset;
2439 let mut inner_depth = depth.clone();
2440 if inlined {
2441 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2442 inner_offset = next_offset;
2443 } else {
2444 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2445 inner_depth.increment()?;
2446 }
2447 let val_ref = self.zram_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2448 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2449 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2450 {
2451 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2452 }
2453 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2454 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2455 }
2456 }
2457
2458 next_offset += envelope_size;
2459 _next_ordinal_to_read += 1;
2460 if next_offset >= end_offset {
2461 return Ok(());
2462 }
2463
2464 while _next_ordinal_to_read < 14 {
2466 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2467 _next_ordinal_to_read += 1;
2468 next_offset += envelope_size;
2469 }
2470
2471 let next_out_of_line = decoder.next_out_of_line();
2472 let handles_before = decoder.remaining_handles();
2473 if let Some((inlined, num_bytes, num_handles)) =
2474 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2475 {
2476 let member_inline_size =
2477 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2478 if inlined != (member_inline_size <= 4) {
2479 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2480 }
2481 let inner_offset;
2482 let mut inner_depth = depth.clone();
2483 if inlined {
2484 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2485 inner_offset = next_offset;
2486 } else {
2487 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2488 inner_depth.increment()?;
2489 }
2490 let val_ref =
2491 self.vmo_reclaim_total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2492 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2493 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2494 {
2495 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2496 }
2497 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2498 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2499 }
2500 }
2501
2502 next_offset += envelope_size;
2503 _next_ordinal_to_read += 1;
2504 if next_offset >= end_offset {
2505 return Ok(());
2506 }
2507
2508 while _next_ordinal_to_read < 15 {
2510 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2511 _next_ordinal_to_read += 1;
2512 next_offset += envelope_size;
2513 }
2514
2515 let next_out_of_line = decoder.next_out_of_line();
2516 let handles_before = decoder.remaining_handles();
2517 if let Some((inlined, num_bytes, num_handles)) =
2518 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2519 {
2520 let member_inline_size =
2521 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2522 if inlined != (member_inline_size <= 4) {
2523 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2524 }
2525 let inner_offset;
2526 let mut inner_depth = depth.clone();
2527 if inlined {
2528 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2529 inner_offset = next_offset;
2530 } else {
2531 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2532 inner_depth.increment()?;
2533 }
2534 let val_ref =
2535 self.vmo_reclaim_newest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2536 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2537 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2538 {
2539 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2540 }
2541 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2542 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2543 }
2544 }
2545
2546 next_offset += envelope_size;
2547 _next_ordinal_to_read += 1;
2548 if next_offset >= end_offset {
2549 return Ok(());
2550 }
2551
2552 while _next_ordinal_to_read < 16 {
2554 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2555 _next_ordinal_to_read += 1;
2556 next_offset += envelope_size;
2557 }
2558
2559 let next_out_of_line = decoder.next_out_of_line();
2560 let handles_before = decoder.remaining_handles();
2561 if let Some((inlined, num_bytes, num_handles)) =
2562 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2563 {
2564 let member_inline_size =
2565 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2566 if inlined != (member_inline_size <= 4) {
2567 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2568 }
2569 let inner_offset;
2570 let mut inner_depth = depth.clone();
2571 if inlined {
2572 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2573 inner_offset = next_offset;
2574 } else {
2575 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2576 inner_depth.increment()?;
2577 }
2578 let val_ref =
2579 self.vmo_reclaim_oldest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2580 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2581 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2582 {
2583 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2584 }
2585 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2586 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2587 }
2588 }
2589
2590 next_offset += envelope_size;
2591 _next_ordinal_to_read += 1;
2592 if next_offset >= end_offset {
2593 return Ok(());
2594 }
2595
2596 while _next_ordinal_to_read < 17 {
2598 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2599 _next_ordinal_to_read += 1;
2600 next_offset += envelope_size;
2601 }
2602
2603 let next_out_of_line = decoder.next_out_of_line();
2604 let handles_before = decoder.remaining_handles();
2605 if let Some((inlined, num_bytes, num_handles)) =
2606 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2607 {
2608 let member_inline_size =
2609 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2610 if inlined != (member_inline_size <= 4) {
2611 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2612 }
2613 let inner_offset;
2614 let mut inner_depth = depth.clone();
2615 if inlined {
2616 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2617 inner_offset = next_offset;
2618 } else {
2619 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2620 inner_depth.increment()?;
2621 }
2622 let val_ref =
2623 self.vmo_reclaim_disabled_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
2624 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2625 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2626 {
2627 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2628 }
2629 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2630 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2631 }
2632 }
2633
2634 next_offset += envelope_size;
2635 _next_ordinal_to_read += 1;
2636 if next_offset >= end_offset {
2637 return Ok(());
2638 }
2639
2640 while _next_ordinal_to_read < 18 {
2642 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2643 _next_ordinal_to_read += 1;
2644 next_offset += envelope_size;
2645 }
2646
2647 let next_out_of_line = decoder.next_out_of_line();
2648 let handles_before = decoder.remaining_handles();
2649 if let Some((inlined, num_bytes, num_handles)) =
2650 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2651 {
2652 let member_inline_size =
2653 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2654 if inlined != (member_inline_size <= 4) {
2655 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2656 }
2657 let inner_offset;
2658 let mut inner_depth = depth.clone();
2659 if inlined {
2660 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2661 inner_offset = next_offset;
2662 } else {
2663 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2664 inner_depth.increment()?;
2665 }
2666 let val_ref = self
2667 .vmo_discardable_locked_bytes
2668 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2669 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2670 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2671 {
2672 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2673 }
2674 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2675 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2676 }
2677 }
2678
2679 next_offset += envelope_size;
2680 _next_ordinal_to_read += 1;
2681 if next_offset >= end_offset {
2682 return Ok(());
2683 }
2684
2685 while _next_ordinal_to_read < 19 {
2687 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2688 _next_ordinal_to_read += 1;
2689 next_offset += envelope_size;
2690 }
2691
2692 let next_out_of_line = decoder.next_out_of_line();
2693 let handles_before = decoder.remaining_handles();
2694 if let Some((inlined, num_bytes, num_handles)) =
2695 fidl::encoding::decode_envelope_header(decoder, next_offset)?
2696 {
2697 let member_inline_size =
2698 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
2699 if inlined != (member_inline_size <= 4) {
2700 return Err(fidl::Error::InvalidInlineBitInEnvelope);
2701 }
2702 let inner_offset;
2703 let mut inner_depth = depth.clone();
2704 if inlined {
2705 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
2706 inner_offset = next_offset;
2707 } else {
2708 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
2709 inner_depth.increment()?;
2710 }
2711 let val_ref = self
2712 .vmo_discardable_unlocked_bytes
2713 .get_or_insert_with(|| fidl::new_empty!(u64, D));
2714 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
2715 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
2716 {
2717 return Err(fidl::Error::InvalidNumBytesInEnvelope);
2718 }
2719 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2720 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2721 }
2722 }
2723
2724 next_offset += envelope_size;
2725
2726 while next_offset < end_offset {
2728 _next_ordinal_to_read += 1;
2729 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2730 next_offset += envelope_size;
2731 }
2732
2733 Ok(())
2734 }
2735 }
2736
2737 impl MemoryStatsCompression {
2738 #[inline(always)]
2739 fn max_ordinal_present(&self) -> u64 {
2740 if let Some(_) = self.pages_decompressed_within_log_time {
2741 return 14;
2742 }
2743 if let Some(_) = self.pages_decompressed_unit_ns {
2744 return 13;
2745 }
2746 if let Some(_) = self.critical_memory_page_compressions {
2747 return 12;
2748 }
2749 if let Some(_) = self.memory_pressure_page_compressions {
2750 return 11;
2751 }
2752 if let Some(_) = self.eager_page_compressions {
2753 return 10;
2754 }
2755 if let Some(_) = self.compressed_page_evictions {
2756 return 9;
2757 }
2758 if let Some(_) = self.total_page_decompressions {
2759 return 8;
2760 }
2761 if let Some(_) = self.failed_page_compression_attempts {
2762 return 7;
2763 }
2764 if let Some(_) = self.total_page_compression_attempts {
2765 return 6;
2766 }
2767 if let Some(_) = self.decompression_time {
2768 return 5;
2769 }
2770 if let Some(_) = self.compression_time {
2771 return 4;
2772 }
2773 if let Some(_) = self.compressed_fragmentation_bytes {
2774 return 3;
2775 }
2776 if let Some(_) = self.compressed_storage_bytes {
2777 return 2;
2778 }
2779 if let Some(_) = self.uncompressed_storage_bytes {
2780 return 1;
2781 }
2782 0
2783 }
2784 }
2785
2786 impl fidl::encoding::ValueTypeMarker for MemoryStatsCompression {
2787 type Borrowed<'a> = &'a Self;
2788 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
2789 value
2790 }
2791 }
2792
2793 unsafe impl fidl::encoding::TypeMarker for MemoryStatsCompression {
2794 type Owned = Self;
2795
2796 #[inline(always)]
2797 fn inline_align(_context: fidl::encoding::Context) -> usize {
2798 8
2799 }
2800
2801 #[inline(always)]
2802 fn inline_size(_context: fidl::encoding::Context) -> usize {
2803 16
2804 }
2805 }
2806
2807 unsafe impl<D: fidl::encoding::ResourceDialect>
2808 fidl::encoding::Encode<MemoryStatsCompression, D> for &MemoryStatsCompression
2809 {
2810 unsafe fn encode(
2811 self,
2812 encoder: &mut fidl::encoding::Encoder<'_, D>,
2813 offset: usize,
2814 mut depth: fidl::encoding::Depth,
2815 ) -> fidl::Result<()> {
2816 encoder.debug_check_bounds::<MemoryStatsCompression>(offset);
2817 let max_ordinal: u64 = self.max_ordinal_present();
2819 encoder.write_num(max_ordinal, offset);
2820 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
2821 if max_ordinal == 0 {
2823 return Ok(());
2824 }
2825 depth.increment()?;
2826 let envelope_size = 8;
2827 let bytes_len = max_ordinal as usize * envelope_size;
2828 #[allow(unused_variables)]
2829 let offset = encoder.out_of_line_offset(bytes_len);
2830 let mut _prev_end_offset: usize = 0;
2831 if 1 > max_ordinal {
2832 return Ok(());
2833 }
2834
2835 let cur_offset: usize = (1 - 1) * envelope_size;
2838
2839 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2841
2842 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2847 self.uncompressed_storage_bytes
2848 .as_ref()
2849 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2850 encoder,
2851 offset + cur_offset,
2852 depth,
2853 )?;
2854
2855 _prev_end_offset = cur_offset + envelope_size;
2856 if 2 > max_ordinal {
2857 return Ok(());
2858 }
2859
2860 let cur_offset: usize = (2 - 1) * envelope_size;
2863
2864 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2866
2867 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2872 self.compressed_storage_bytes
2873 .as_ref()
2874 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2875 encoder,
2876 offset + cur_offset,
2877 depth,
2878 )?;
2879
2880 _prev_end_offset = cur_offset + envelope_size;
2881 if 3 > max_ordinal {
2882 return Ok(());
2883 }
2884
2885 let cur_offset: usize = (3 - 1) * envelope_size;
2888
2889 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2891
2892 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2897 self.compressed_fragmentation_bytes
2898 .as_ref()
2899 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2900 encoder,
2901 offset + cur_offset,
2902 depth,
2903 )?;
2904
2905 _prev_end_offset = cur_offset + envelope_size;
2906 if 4 > max_ordinal {
2907 return Ok(());
2908 }
2909
2910 let cur_offset: usize = (4 - 1) * envelope_size;
2913
2914 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2916
2917 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2922 self.compression_time
2923 .as_ref()
2924 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2925 encoder,
2926 offset + cur_offset,
2927 depth,
2928 )?;
2929
2930 _prev_end_offset = cur_offset + envelope_size;
2931 if 5 > max_ordinal {
2932 return Ok(());
2933 }
2934
2935 let cur_offset: usize = (5 - 1) * envelope_size;
2938
2939 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2941
2942 fidl::encoding::encode_in_envelope_optional::<i64, D>(
2947 self.decompression_time
2948 .as_ref()
2949 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
2950 encoder,
2951 offset + cur_offset,
2952 depth,
2953 )?;
2954
2955 _prev_end_offset = cur_offset + envelope_size;
2956 if 6 > max_ordinal {
2957 return Ok(());
2958 }
2959
2960 let cur_offset: usize = (6 - 1) * envelope_size;
2963
2964 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2966
2967 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2972 self.total_page_compression_attempts
2973 .as_ref()
2974 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
2975 encoder,
2976 offset + cur_offset,
2977 depth,
2978 )?;
2979
2980 _prev_end_offset = cur_offset + envelope_size;
2981 if 7 > max_ordinal {
2982 return Ok(());
2983 }
2984
2985 let cur_offset: usize = (7 - 1) * envelope_size;
2988
2989 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
2991
2992 fidl::encoding::encode_in_envelope_optional::<u64, D>(
2997 self.failed_page_compression_attempts
2998 .as_ref()
2999 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3000 encoder,
3001 offset + cur_offset,
3002 depth,
3003 )?;
3004
3005 _prev_end_offset = cur_offset + envelope_size;
3006 if 8 > max_ordinal {
3007 return Ok(());
3008 }
3009
3010 let cur_offset: usize = (8 - 1) * envelope_size;
3013
3014 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3016
3017 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3022 self.total_page_decompressions
3023 .as_ref()
3024 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3025 encoder,
3026 offset + cur_offset,
3027 depth,
3028 )?;
3029
3030 _prev_end_offset = cur_offset + envelope_size;
3031 if 9 > max_ordinal {
3032 return Ok(());
3033 }
3034
3035 let cur_offset: usize = (9 - 1) * envelope_size;
3038
3039 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3041
3042 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3047 self.compressed_page_evictions
3048 .as_ref()
3049 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3050 encoder,
3051 offset + cur_offset,
3052 depth,
3053 )?;
3054
3055 _prev_end_offset = cur_offset + envelope_size;
3056 if 10 > max_ordinal {
3057 return Ok(());
3058 }
3059
3060 let cur_offset: usize = (10 - 1) * envelope_size;
3063
3064 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3066
3067 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3072 self.eager_page_compressions
3073 .as_ref()
3074 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3075 encoder,
3076 offset + cur_offset,
3077 depth,
3078 )?;
3079
3080 _prev_end_offset = cur_offset + envelope_size;
3081 if 11 > max_ordinal {
3082 return Ok(());
3083 }
3084
3085 let cur_offset: usize = (11 - 1) * envelope_size;
3088
3089 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3091
3092 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3097 self.memory_pressure_page_compressions
3098 .as_ref()
3099 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3100 encoder,
3101 offset + cur_offset,
3102 depth,
3103 )?;
3104
3105 _prev_end_offset = cur_offset + envelope_size;
3106 if 12 > max_ordinal {
3107 return Ok(());
3108 }
3109
3110 let cur_offset: usize = (12 - 1) * envelope_size;
3113
3114 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3116
3117 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3122 self.critical_memory_page_compressions
3123 .as_ref()
3124 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3125 encoder,
3126 offset + cur_offset,
3127 depth,
3128 )?;
3129
3130 _prev_end_offset = cur_offset + envelope_size;
3131 if 13 > max_ordinal {
3132 return Ok(());
3133 }
3134
3135 let cur_offset: usize = (13 - 1) * envelope_size;
3138
3139 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3141
3142 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3147 self.pages_decompressed_unit_ns
3148 .as_ref()
3149 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3150 encoder,
3151 offset + cur_offset,
3152 depth,
3153 )?;
3154
3155 _prev_end_offset = cur_offset + envelope_size;
3156 if 14 > max_ordinal {
3157 return Ok(());
3158 }
3159
3160 let cur_offset: usize = (14 - 1) * envelope_size;
3163
3164 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3166
3167 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Array<u64, 8>, D>(
3172 self.pages_decompressed_within_log_time.as_ref().map(
3173 <fidl::encoding::Array<u64, 8> as fidl::encoding::ValueTypeMarker>::borrow,
3174 ),
3175 encoder,
3176 offset + cur_offset,
3177 depth,
3178 )?;
3179
3180 _prev_end_offset = cur_offset + envelope_size;
3181
3182 Ok(())
3183 }
3184 }
3185
3186 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
3187 for MemoryStatsCompression
3188 {
3189 #[inline(always)]
3190 fn new_empty() -> Self {
3191 Self::default()
3192 }
3193
3194 unsafe fn decode(
3195 &mut self,
3196 decoder: &mut fidl::encoding::Decoder<'_, D>,
3197 offset: usize,
3198 mut depth: fidl::encoding::Depth,
3199 ) -> fidl::Result<()> {
3200 decoder.debug_check_bounds::<Self>(offset);
3201 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
3202 None => return Err(fidl::Error::NotNullable),
3203 Some(len) => len,
3204 };
3205 if len == 0 {
3207 return Ok(());
3208 };
3209 depth.increment()?;
3210 let envelope_size = 8;
3211 let bytes_len = len * envelope_size;
3212 let offset = decoder.out_of_line_offset(bytes_len)?;
3213 let mut _next_ordinal_to_read = 0;
3215 let mut next_offset = offset;
3216 let end_offset = offset + bytes_len;
3217 _next_ordinal_to_read += 1;
3218 if next_offset >= end_offset {
3219 return Ok(());
3220 }
3221
3222 while _next_ordinal_to_read < 1 {
3224 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3225 _next_ordinal_to_read += 1;
3226 next_offset += envelope_size;
3227 }
3228
3229 let next_out_of_line = decoder.next_out_of_line();
3230 let handles_before = decoder.remaining_handles();
3231 if let Some((inlined, num_bytes, num_handles)) =
3232 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3233 {
3234 let member_inline_size =
3235 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3236 if inlined != (member_inline_size <= 4) {
3237 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3238 }
3239 let inner_offset;
3240 let mut inner_depth = depth.clone();
3241 if inlined {
3242 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3243 inner_offset = next_offset;
3244 } else {
3245 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3246 inner_depth.increment()?;
3247 }
3248 let val_ref =
3249 self.uncompressed_storage_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
3250 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3252 {
3253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3254 }
3255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3257 }
3258 }
3259
3260 next_offset += envelope_size;
3261 _next_ordinal_to_read += 1;
3262 if next_offset >= end_offset {
3263 return Ok(());
3264 }
3265
3266 while _next_ordinal_to_read < 2 {
3268 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3269 _next_ordinal_to_read += 1;
3270 next_offset += envelope_size;
3271 }
3272
3273 let next_out_of_line = decoder.next_out_of_line();
3274 let handles_before = decoder.remaining_handles();
3275 if let Some((inlined, num_bytes, num_handles)) =
3276 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3277 {
3278 let member_inline_size =
3279 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3280 if inlined != (member_inline_size <= 4) {
3281 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3282 }
3283 let inner_offset;
3284 let mut inner_depth = depth.clone();
3285 if inlined {
3286 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3287 inner_offset = next_offset;
3288 } else {
3289 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3290 inner_depth.increment()?;
3291 }
3292 let val_ref =
3293 self.compressed_storage_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
3294 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3295 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3296 {
3297 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3298 }
3299 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3300 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3301 }
3302 }
3303
3304 next_offset += envelope_size;
3305 _next_ordinal_to_read += 1;
3306 if next_offset >= end_offset {
3307 return Ok(());
3308 }
3309
3310 while _next_ordinal_to_read < 3 {
3312 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3313 _next_ordinal_to_read += 1;
3314 next_offset += envelope_size;
3315 }
3316
3317 let next_out_of_line = decoder.next_out_of_line();
3318 let handles_before = decoder.remaining_handles();
3319 if let Some((inlined, num_bytes, num_handles)) =
3320 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3321 {
3322 let member_inline_size =
3323 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3324 if inlined != (member_inline_size <= 4) {
3325 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3326 }
3327 let inner_offset;
3328 let mut inner_depth = depth.clone();
3329 if inlined {
3330 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3331 inner_offset = next_offset;
3332 } else {
3333 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3334 inner_depth.increment()?;
3335 }
3336 let val_ref = self
3337 .compressed_fragmentation_bytes
3338 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3339 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3340 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3341 {
3342 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3343 }
3344 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3345 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3346 }
3347 }
3348
3349 next_offset += envelope_size;
3350 _next_ordinal_to_read += 1;
3351 if next_offset >= end_offset {
3352 return Ok(());
3353 }
3354
3355 while _next_ordinal_to_read < 4 {
3357 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3358 _next_ordinal_to_read += 1;
3359 next_offset += envelope_size;
3360 }
3361
3362 let next_out_of_line = decoder.next_out_of_line();
3363 let handles_before = decoder.remaining_handles();
3364 if let Some((inlined, num_bytes, num_handles)) =
3365 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3366 {
3367 let member_inline_size =
3368 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3369 if inlined != (member_inline_size <= 4) {
3370 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3371 }
3372 let inner_offset;
3373 let mut inner_depth = depth.clone();
3374 if inlined {
3375 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3376 inner_offset = next_offset;
3377 } else {
3378 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3379 inner_depth.increment()?;
3380 }
3381 let val_ref = self.compression_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
3382 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3383 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3384 {
3385 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3386 }
3387 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3388 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3389 }
3390 }
3391
3392 next_offset += envelope_size;
3393 _next_ordinal_to_read += 1;
3394 if next_offset >= end_offset {
3395 return Ok(());
3396 }
3397
3398 while _next_ordinal_to_read < 5 {
3400 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3401 _next_ordinal_to_read += 1;
3402 next_offset += envelope_size;
3403 }
3404
3405 let next_out_of_line = decoder.next_out_of_line();
3406 let handles_before = decoder.remaining_handles();
3407 if let Some((inlined, num_bytes, num_handles)) =
3408 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3409 {
3410 let member_inline_size =
3411 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3412 if inlined != (member_inline_size <= 4) {
3413 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3414 }
3415 let inner_offset;
3416 let mut inner_depth = depth.clone();
3417 if inlined {
3418 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3419 inner_offset = next_offset;
3420 } else {
3421 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3422 inner_depth.increment()?;
3423 }
3424 let val_ref =
3425 self.decompression_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
3426 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
3427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3428 {
3429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3430 }
3431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3433 }
3434 }
3435
3436 next_offset += envelope_size;
3437 _next_ordinal_to_read += 1;
3438 if next_offset >= end_offset {
3439 return Ok(());
3440 }
3441
3442 while _next_ordinal_to_read < 6 {
3444 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3445 _next_ordinal_to_read += 1;
3446 next_offset += envelope_size;
3447 }
3448
3449 let next_out_of_line = decoder.next_out_of_line();
3450 let handles_before = decoder.remaining_handles();
3451 if let Some((inlined, num_bytes, num_handles)) =
3452 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3453 {
3454 let member_inline_size =
3455 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3456 if inlined != (member_inline_size <= 4) {
3457 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3458 }
3459 let inner_offset;
3460 let mut inner_depth = depth.clone();
3461 if inlined {
3462 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3463 inner_offset = next_offset;
3464 } else {
3465 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3466 inner_depth.increment()?;
3467 }
3468 let val_ref = self
3469 .total_page_compression_attempts
3470 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3471 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3472 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3473 {
3474 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3475 }
3476 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3477 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3478 }
3479 }
3480
3481 next_offset += envelope_size;
3482 _next_ordinal_to_read += 1;
3483 if next_offset >= end_offset {
3484 return Ok(());
3485 }
3486
3487 while _next_ordinal_to_read < 7 {
3489 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3490 _next_ordinal_to_read += 1;
3491 next_offset += envelope_size;
3492 }
3493
3494 let next_out_of_line = decoder.next_out_of_line();
3495 let handles_before = decoder.remaining_handles();
3496 if let Some((inlined, num_bytes, num_handles)) =
3497 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3498 {
3499 let member_inline_size =
3500 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3501 if inlined != (member_inline_size <= 4) {
3502 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3503 }
3504 let inner_offset;
3505 let mut inner_depth = depth.clone();
3506 if inlined {
3507 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3508 inner_offset = next_offset;
3509 } else {
3510 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3511 inner_depth.increment()?;
3512 }
3513 let val_ref = self
3514 .failed_page_compression_attempts
3515 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3516 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3517 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3518 {
3519 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3520 }
3521 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3522 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3523 }
3524 }
3525
3526 next_offset += envelope_size;
3527 _next_ordinal_to_read += 1;
3528 if next_offset >= end_offset {
3529 return Ok(());
3530 }
3531
3532 while _next_ordinal_to_read < 8 {
3534 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3535 _next_ordinal_to_read += 1;
3536 next_offset += envelope_size;
3537 }
3538
3539 let next_out_of_line = decoder.next_out_of_line();
3540 let handles_before = decoder.remaining_handles();
3541 if let Some((inlined, num_bytes, num_handles)) =
3542 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3543 {
3544 let member_inline_size =
3545 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3546 if inlined != (member_inline_size <= 4) {
3547 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3548 }
3549 let inner_offset;
3550 let mut inner_depth = depth.clone();
3551 if inlined {
3552 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3553 inner_offset = next_offset;
3554 } else {
3555 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3556 inner_depth.increment()?;
3557 }
3558 let val_ref =
3559 self.total_page_decompressions.get_or_insert_with(|| fidl::new_empty!(u64, D));
3560 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3561 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3562 {
3563 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3564 }
3565 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3566 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3567 }
3568 }
3569
3570 next_offset += envelope_size;
3571 _next_ordinal_to_read += 1;
3572 if next_offset >= end_offset {
3573 return Ok(());
3574 }
3575
3576 while _next_ordinal_to_read < 9 {
3578 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3579 _next_ordinal_to_read += 1;
3580 next_offset += envelope_size;
3581 }
3582
3583 let next_out_of_line = decoder.next_out_of_line();
3584 let handles_before = decoder.remaining_handles();
3585 if let Some((inlined, num_bytes, num_handles)) =
3586 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3587 {
3588 let member_inline_size =
3589 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3590 if inlined != (member_inline_size <= 4) {
3591 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3592 }
3593 let inner_offset;
3594 let mut inner_depth = depth.clone();
3595 if inlined {
3596 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3597 inner_offset = next_offset;
3598 } else {
3599 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3600 inner_depth.increment()?;
3601 }
3602 let val_ref =
3603 self.compressed_page_evictions.get_or_insert_with(|| fidl::new_empty!(u64, D));
3604 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3605 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3606 {
3607 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3608 }
3609 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3610 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3611 }
3612 }
3613
3614 next_offset += envelope_size;
3615 _next_ordinal_to_read += 1;
3616 if next_offset >= end_offset {
3617 return Ok(());
3618 }
3619
3620 while _next_ordinal_to_read < 10 {
3622 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3623 _next_ordinal_to_read += 1;
3624 next_offset += envelope_size;
3625 }
3626
3627 let next_out_of_line = decoder.next_out_of_line();
3628 let handles_before = decoder.remaining_handles();
3629 if let Some((inlined, num_bytes, num_handles)) =
3630 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3631 {
3632 let member_inline_size =
3633 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3634 if inlined != (member_inline_size <= 4) {
3635 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3636 }
3637 let inner_offset;
3638 let mut inner_depth = depth.clone();
3639 if inlined {
3640 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3641 inner_offset = next_offset;
3642 } else {
3643 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3644 inner_depth.increment()?;
3645 }
3646 let val_ref =
3647 self.eager_page_compressions.get_or_insert_with(|| fidl::new_empty!(u64, D));
3648 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3649 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3650 {
3651 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3652 }
3653 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3654 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3655 }
3656 }
3657
3658 next_offset += envelope_size;
3659 _next_ordinal_to_read += 1;
3660 if next_offset >= end_offset {
3661 return Ok(());
3662 }
3663
3664 while _next_ordinal_to_read < 11 {
3666 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3667 _next_ordinal_to_read += 1;
3668 next_offset += envelope_size;
3669 }
3670
3671 let next_out_of_line = decoder.next_out_of_line();
3672 let handles_before = decoder.remaining_handles();
3673 if let Some((inlined, num_bytes, num_handles)) =
3674 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3675 {
3676 let member_inline_size =
3677 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3678 if inlined != (member_inline_size <= 4) {
3679 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3680 }
3681 let inner_offset;
3682 let mut inner_depth = depth.clone();
3683 if inlined {
3684 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3685 inner_offset = next_offset;
3686 } else {
3687 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3688 inner_depth.increment()?;
3689 }
3690 let val_ref = self
3691 .memory_pressure_page_compressions
3692 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3693 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3694 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3695 {
3696 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3697 }
3698 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3699 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3700 }
3701 }
3702
3703 next_offset += envelope_size;
3704 _next_ordinal_to_read += 1;
3705 if next_offset >= end_offset {
3706 return Ok(());
3707 }
3708
3709 while _next_ordinal_to_read < 12 {
3711 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3712 _next_ordinal_to_read += 1;
3713 next_offset += envelope_size;
3714 }
3715
3716 let next_out_of_line = decoder.next_out_of_line();
3717 let handles_before = decoder.remaining_handles();
3718 if let Some((inlined, num_bytes, num_handles)) =
3719 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3720 {
3721 let member_inline_size =
3722 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3723 if inlined != (member_inline_size <= 4) {
3724 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3725 }
3726 let inner_offset;
3727 let mut inner_depth = depth.clone();
3728 if inlined {
3729 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3730 inner_offset = next_offset;
3731 } else {
3732 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3733 inner_depth.increment()?;
3734 }
3735 let val_ref = self
3736 .critical_memory_page_compressions
3737 .get_or_insert_with(|| fidl::new_empty!(u64, D));
3738 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3739 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3740 {
3741 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3742 }
3743 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3744 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3745 }
3746 }
3747
3748 next_offset += envelope_size;
3749 _next_ordinal_to_read += 1;
3750 if next_offset >= end_offset {
3751 return Ok(());
3752 }
3753
3754 while _next_ordinal_to_read < 13 {
3756 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3757 _next_ordinal_to_read += 1;
3758 next_offset += envelope_size;
3759 }
3760
3761 let next_out_of_line = decoder.next_out_of_line();
3762 let handles_before = decoder.remaining_handles();
3763 if let Some((inlined, num_bytes, num_handles)) =
3764 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3765 {
3766 let member_inline_size =
3767 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
3768 if inlined != (member_inline_size <= 4) {
3769 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3770 }
3771 let inner_offset;
3772 let mut inner_depth = depth.clone();
3773 if inlined {
3774 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3775 inner_offset = next_offset;
3776 } else {
3777 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3778 inner_depth.increment()?;
3779 }
3780 let val_ref =
3781 self.pages_decompressed_unit_ns.get_or_insert_with(|| fidl::new_empty!(u64, D));
3782 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
3783 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3784 {
3785 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3786 }
3787 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3788 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3789 }
3790 }
3791
3792 next_offset += envelope_size;
3793 _next_ordinal_to_read += 1;
3794 if next_offset >= end_offset {
3795 return Ok(());
3796 }
3797
3798 while _next_ordinal_to_read < 14 {
3800 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3801 _next_ordinal_to_read += 1;
3802 next_offset += envelope_size;
3803 }
3804
3805 let next_out_of_line = decoder.next_out_of_line();
3806 let handles_before = decoder.remaining_handles();
3807 if let Some((inlined, num_bytes, num_handles)) =
3808 fidl::encoding::decode_envelope_header(decoder, next_offset)?
3809 {
3810 let member_inline_size =
3811 <fidl::encoding::Array<u64, 8> as fidl::encoding::TypeMarker>::inline_size(
3812 decoder.context,
3813 );
3814 if inlined != (member_inline_size <= 4) {
3815 return Err(fidl::Error::InvalidInlineBitInEnvelope);
3816 }
3817 let inner_offset;
3818 let mut inner_depth = depth.clone();
3819 if inlined {
3820 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
3821 inner_offset = next_offset;
3822 } else {
3823 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3824 inner_depth.increment()?;
3825 }
3826 let val_ref = self
3827 .pages_decompressed_within_log_time
3828 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::Array<u64, 8>, D));
3829 fidl::decode!(fidl::encoding::Array<u64, 8>, D, val_ref, decoder, inner_offset, inner_depth)?;
3830 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
3831 {
3832 return Err(fidl::Error::InvalidNumBytesInEnvelope);
3833 }
3834 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
3835 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
3836 }
3837 }
3838
3839 next_offset += envelope_size;
3840
3841 while next_offset < end_offset {
3843 _next_ordinal_to_read += 1;
3844 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
3845 next_offset += envelope_size;
3846 }
3847
3848 Ok(())
3849 }
3850 }
3851
3852 impl MemoryStatsExtended {
3853 #[inline(always)]
3854 fn max_ordinal_present(&self) -> u64 {
3855 if let Some(_) = self.other_bytes {
3856 return 14;
3857 }
3858 if let Some(_) = self.ipc_bytes {
3859 return 13;
3860 }
3861 if let Some(_) = self.mmu_overhead_bytes {
3862 return 12;
3863 }
3864 if let Some(_) = self.vmo_discardable_unlocked_bytes {
3865 return 11;
3866 }
3867 if let Some(_) = self.vmo_discardable_locked_bytes {
3868 return 10;
3869 }
3870 if let Some(_) = self.vmo_pager_oldest_bytes {
3871 return 9;
3872 }
3873 if let Some(_) = self.vmo_pager_newest_bytes {
3874 return 8;
3875 }
3876 if let Some(_) = self.vmo_pager_total_bytes {
3877 return 7;
3878 }
3879 if let Some(_) = self.vmo_bytes {
3880 return 6;
3881 }
3882 if let Some(_) = self.free_heap_bytes {
3883 return 5;
3884 }
3885 if let Some(_) = self.total_heap_bytes {
3886 return 4;
3887 }
3888 if let Some(_) = self.wired_bytes {
3889 return 3;
3890 }
3891 if let Some(_) = self.free_bytes {
3892 return 2;
3893 }
3894 if let Some(_) = self.total_bytes {
3895 return 1;
3896 }
3897 0
3898 }
3899 }
3900
3901 impl fidl::encoding::ValueTypeMarker for MemoryStatsExtended {
3902 type Borrowed<'a> = &'a Self;
3903 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
3904 value
3905 }
3906 }
3907
3908 unsafe impl fidl::encoding::TypeMarker for MemoryStatsExtended {
3909 type Owned = Self;
3910
3911 #[inline(always)]
3912 fn inline_align(_context: fidl::encoding::Context) -> usize {
3913 8
3914 }
3915
3916 #[inline(always)]
3917 fn inline_size(_context: fidl::encoding::Context) -> usize {
3918 16
3919 }
3920 }
3921
3922 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<MemoryStatsExtended, D>
3923 for &MemoryStatsExtended
3924 {
3925 unsafe fn encode(
3926 self,
3927 encoder: &mut fidl::encoding::Encoder<'_, D>,
3928 offset: usize,
3929 mut depth: fidl::encoding::Depth,
3930 ) -> fidl::Result<()> {
3931 encoder.debug_check_bounds::<MemoryStatsExtended>(offset);
3932 let max_ordinal: u64 = self.max_ordinal_present();
3934 encoder.write_num(max_ordinal, offset);
3935 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
3936 if max_ordinal == 0 {
3938 return Ok(());
3939 }
3940 depth.increment()?;
3941 let envelope_size = 8;
3942 let bytes_len = max_ordinal as usize * envelope_size;
3943 #[allow(unused_variables)]
3944 let offset = encoder.out_of_line_offset(bytes_len);
3945 let mut _prev_end_offset: usize = 0;
3946 if 1 > max_ordinal {
3947 return Ok(());
3948 }
3949
3950 let cur_offset: usize = (1 - 1) * envelope_size;
3953
3954 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3956
3957 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3962 self.total_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3963 encoder,
3964 offset + cur_offset,
3965 depth,
3966 )?;
3967
3968 _prev_end_offset = cur_offset + envelope_size;
3969 if 2 > max_ordinal {
3970 return Ok(());
3971 }
3972
3973 let cur_offset: usize = (2 - 1) * envelope_size;
3976
3977 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
3979
3980 fidl::encoding::encode_in_envelope_optional::<u64, D>(
3985 self.free_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
3986 encoder,
3987 offset + cur_offset,
3988 depth,
3989 )?;
3990
3991 _prev_end_offset = cur_offset + envelope_size;
3992 if 3 > max_ordinal {
3993 return Ok(());
3994 }
3995
3996 let cur_offset: usize = (3 - 1) * envelope_size;
3999
4000 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4002
4003 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4008 self.wired_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4009 encoder,
4010 offset + cur_offset,
4011 depth,
4012 )?;
4013
4014 _prev_end_offset = cur_offset + envelope_size;
4015 if 4 > max_ordinal {
4016 return Ok(());
4017 }
4018
4019 let cur_offset: usize = (4 - 1) * envelope_size;
4022
4023 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4025
4026 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4031 self.total_heap_bytes
4032 .as_ref()
4033 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4034 encoder,
4035 offset + cur_offset,
4036 depth,
4037 )?;
4038
4039 _prev_end_offset = cur_offset + envelope_size;
4040 if 5 > max_ordinal {
4041 return Ok(());
4042 }
4043
4044 let cur_offset: usize = (5 - 1) * envelope_size;
4047
4048 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4050
4051 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4056 self.free_heap_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4057 encoder,
4058 offset + cur_offset,
4059 depth,
4060 )?;
4061
4062 _prev_end_offset = cur_offset + envelope_size;
4063 if 6 > max_ordinal {
4064 return Ok(());
4065 }
4066
4067 let cur_offset: usize = (6 - 1) * envelope_size;
4070
4071 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4073
4074 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4079 self.vmo_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4080 encoder,
4081 offset + cur_offset,
4082 depth,
4083 )?;
4084
4085 _prev_end_offset = cur_offset + envelope_size;
4086 if 7 > max_ordinal {
4087 return Ok(());
4088 }
4089
4090 let cur_offset: usize = (7 - 1) * envelope_size;
4093
4094 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4096
4097 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4102 self.vmo_pager_total_bytes
4103 .as_ref()
4104 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4105 encoder,
4106 offset + cur_offset,
4107 depth,
4108 )?;
4109
4110 _prev_end_offset = cur_offset + envelope_size;
4111 if 8 > max_ordinal {
4112 return Ok(());
4113 }
4114
4115 let cur_offset: usize = (8 - 1) * envelope_size;
4118
4119 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4121
4122 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4127 self.vmo_pager_newest_bytes
4128 .as_ref()
4129 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4130 encoder,
4131 offset + cur_offset,
4132 depth,
4133 )?;
4134
4135 _prev_end_offset = cur_offset + envelope_size;
4136 if 9 > max_ordinal {
4137 return Ok(());
4138 }
4139
4140 let cur_offset: usize = (9 - 1) * envelope_size;
4143
4144 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4146
4147 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4152 self.vmo_pager_oldest_bytes
4153 .as_ref()
4154 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4155 encoder,
4156 offset + cur_offset,
4157 depth,
4158 )?;
4159
4160 _prev_end_offset = cur_offset + envelope_size;
4161 if 10 > max_ordinal {
4162 return Ok(());
4163 }
4164
4165 let cur_offset: usize = (10 - 1) * envelope_size;
4168
4169 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4171
4172 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4177 self.vmo_discardable_locked_bytes
4178 .as_ref()
4179 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4180 encoder,
4181 offset + cur_offset,
4182 depth,
4183 )?;
4184
4185 _prev_end_offset = cur_offset + envelope_size;
4186 if 11 > max_ordinal {
4187 return Ok(());
4188 }
4189
4190 let cur_offset: usize = (11 - 1) * envelope_size;
4193
4194 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4196
4197 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4202 self.vmo_discardable_unlocked_bytes
4203 .as_ref()
4204 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4205 encoder,
4206 offset + cur_offset,
4207 depth,
4208 )?;
4209
4210 _prev_end_offset = cur_offset + envelope_size;
4211 if 12 > max_ordinal {
4212 return Ok(());
4213 }
4214
4215 let cur_offset: usize = (12 - 1) * envelope_size;
4218
4219 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4221
4222 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4227 self.mmu_overhead_bytes
4228 .as_ref()
4229 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4230 encoder,
4231 offset + cur_offset,
4232 depth,
4233 )?;
4234
4235 _prev_end_offset = cur_offset + envelope_size;
4236 if 13 > max_ordinal {
4237 return Ok(());
4238 }
4239
4240 let cur_offset: usize = (13 - 1) * envelope_size;
4243
4244 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4246
4247 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4252 self.ipc_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4253 encoder,
4254 offset + cur_offset,
4255 depth,
4256 )?;
4257
4258 _prev_end_offset = cur_offset + envelope_size;
4259 if 14 > max_ordinal {
4260 return Ok(());
4261 }
4262
4263 let cur_offset: usize = (14 - 1) * envelope_size;
4266
4267 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
4269
4270 fidl::encoding::encode_in_envelope_optional::<u64, D>(
4275 self.other_bytes.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
4276 encoder,
4277 offset + cur_offset,
4278 depth,
4279 )?;
4280
4281 _prev_end_offset = cur_offset + envelope_size;
4282
4283 Ok(())
4284 }
4285 }
4286
4287 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for MemoryStatsExtended {
4288 #[inline(always)]
4289 fn new_empty() -> Self {
4290 Self::default()
4291 }
4292
4293 unsafe fn decode(
4294 &mut self,
4295 decoder: &mut fidl::encoding::Decoder<'_, D>,
4296 offset: usize,
4297 mut depth: fidl::encoding::Depth,
4298 ) -> fidl::Result<()> {
4299 decoder.debug_check_bounds::<Self>(offset);
4300 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
4301 None => return Err(fidl::Error::NotNullable),
4302 Some(len) => len,
4303 };
4304 if len == 0 {
4306 return Ok(());
4307 };
4308 depth.increment()?;
4309 let envelope_size = 8;
4310 let bytes_len = len * envelope_size;
4311 let offset = decoder.out_of_line_offset(bytes_len)?;
4312 let mut _next_ordinal_to_read = 0;
4314 let mut next_offset = offset;
4315 let end_offset = offset + bytes_len;
4316 _next_ordinal_to_read += 1;
4317 if next_offset >= end_offset {
4318 return Ok(());
4319 }
4320
4321 while _next_ordinal_to_read < 1 {
4323 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4324 _next_ordinal_to_read += 1;
4325 next_offset += envelope_size;
4326 }
4327
4328 let next_out_of_line = decoder.next_out_of_line();
4329 let handles_before = decoder.remaining_handles();
4330 if let Some((inlined, num_bytes, num_handles)) =
4331 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4332 {
4333 let member_inline_size =
4334 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4335 if inlined != (member_inline_size <= 4) {
4336 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4337 }
4338 let inner_offset;
4339 let mut inner_depth = depth.clone();
4340 if inlined {
4341 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4342 inner_offset = next_offset;
4343 } else {
4344 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4345 inner_depth.increment()?;
4346 }
4347 let val_ref = self.total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4348 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4349 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4350 {
4351 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4352 }
4353 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4354 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4355 }
4356 }
4357
4358 next_offset += envelope_size;
4359 _next_ordinal_to_read += 1;
4360 if next_offset >= end_offset {
4361 return Ok(());
4362 }
4363
4364 while _next_ordinal_to_read < 2 {
4366 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4367 _next_ordinal_to_read += 1;
4368 next_offset += envelope_size;
4369 }
4370
4371 let next_out_of_line = decoder.next_out_of_line();
4372 let handles_before = decoder.remaining_handles();
4373 if let Some((inlined, num_bytes, num_handles)) =
4374 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4375 {
4376 let member_inline_size =
4377 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4378 if inlined != (member_inline_size <= 4) {
4379 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4380 }
4381 let inner_offset;
4382 let mut inner_depth = depth.clone();
4383 if inlined {
4384 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4385 inner_offset = next_offset;
4386 } else {
4387 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4388 inner_depth.increment()?;
4389 }
4390 let val_ref = self.free_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4391 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4392 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4393 {
4394 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4395 }
4396 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4397 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4398 }
4399 }
4400
4401 next_offset += envelope_size;
4402 _next_ordinal_to_read += 1;
4403 if next_offset >= end_offset {
4404 return Ok(());
4405 }
4406
4407 while _next_ordinal_to_read < 3 {
4409 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4410 _next_ordinal_to_read += 1;
4411 next_offset += envelope_size;
4412 }
4413
4414 let next_out_of_line = decoder.next_out_of_line();
4415 let handles_before = decoder.remaining_handles();
4416 if let Some((inlined, num_bytes, num_handles)) =
4417 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4418 {
4419 let member_inline_size =
4420 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4421 if inlined != (member_inline_size <= 4) {
4422 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4423 }
4424 let inner_offset;
4425 let mut inner_depth = depth.clone();
4426 if inlined {
4427 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4428 inner_offset = next_offset;
4429 } else {
4430 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4431 inner_depth.increment()?;
4432 }
4433 let val_ref = self.wired_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4434 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4435 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4436 {
4437 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4438 }
4439 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4440 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4441 }
4442 }
4443
4444 next_offset += envelope_size;
4445 _next_ordinal_to_read += 1;
4446 if next_offset >= end_offset {
4447 return Ok(());
4448 }
4449
4450 while _next_ordinal_to_read < 4 {
4452 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4453 _next_ordinal_to_read += 1;
4454 next_offset += envelope_size;
4455 }
4456
4457 let next_out_of_line = decoder.next_out_of_line();
4458 let handles_before = decoder.remaining_handles();
4459 if let Some((inlined, num_bytes, num_handles)) =
4460 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4461 {
4462 let member_inline_size =
4463 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4464 if inlined != (member_inline_size <= 4) {
4465 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4466 }
4467 let inner_offset;
4468 let mut inner_depth = depth.clone();
4469 if inlined {
4470 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4471 inner_offset = next_offset;
4472 } else {
4473 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4474 inner_depth.increment()?;
4475 }
4476 let val_ref = self.total_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4477 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4478 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4479 {
4480 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4481 }
4482 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4483 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4484 }
4485 }
4486
4487 next_offset += envelope_size;
4488 _next_ordinal_to_read += 1;
4489 if next_offset >= end_offset {
4490 return Ok(());
4491 }
4492
4493 while _next_ordinal_to_read < 5 {
4495 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4496 _next_ordinal_to_read += 1;
4497 next_offset += envelope_size;
4498 }
4499
4500 let next_out_of_line = decoder.next_out_of_line();
4501 let handles_before = decoder.remaining_handles();
4502 if let Some((inlined, num_bytes, num_handles)) =
4503 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4504 {
4505 let member_inline_size =
4506 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4507 if inlined != (member_inline_size <= 4) {
4508 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4509 }
4510 let inner_offset;
4511 let mut inner_depth = depth.clone();
4512 if inlined {
4513 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4514 inner_offset = next_offset;
4515 } else {
4516 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4517 inner_depth.increment()?;
4518 }
4519 let val_ref = self.free_heap_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4520 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4521 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4522 {
4523 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4524 }
4525 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4526 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4527 }
4528 }
4529
4530 next_offset += envelope_size;
4531 _next_ordinal_to_read += 1;
4532 if next_offset >= end_offset {
4533 return Ok(());
4534 }
4535
4536 while _next_ordinal_to_read < 6 {
4538 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4539 _next_ordinal_to_read += 1;
4540 next_offset += envelope_size;
4541 }
4542
4543 let next_out_of_line = decoder.next_out_of_line();
4544 let handles_before = decoder.remaining_handles();
4545 if let Some((inlined, num_bytes, num_handles)) =
4546 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4547 {
4548 let member_inline_size =
4549 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4550 if inlined != (member_inline_size <= 4) {
4551 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4552 }
4553 let inner_offset;
4554 let mut inner_depth = depth.clone();
4555 if inlined {
4556 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4557 inner_offset = next_offset;
4558 } else {
4559 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4560 inner_depth.increment()?;
4561 }
4562 let val_ref = self.vmo_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4563 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4564 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4565 {
4566 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4567 }
4568 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4569 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4570 }
4571 }
4572
4573 next_offset += envelope_size;
4574 _next_ordinal_to_read += 1;
4575 if next_offset >= end_offset {
4576 return Ok(());
4577 }
4578
4579 while _next_ordinal_to_read < 7 {
4581 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4582 _next_ordinal_to_read += 1;
4583 next_offset += envelope_size;
4584 }
4585
4586 let next_out_of_line = decoder.next_out_of_line();
4587 let handles_before = decoder.remaining_handles();
4588 if let Some((inlined, num_bytes, num_handles)) =
4589 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4590 {
4591 let member_inline_size =
4592 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4593 if inlined != (member_inline_size <= 4) {
4594 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4595 }
4596 let inner_offset;
4597 let mut inner_depth = depth.clone();
4598 if inlined {
4599 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4600 inner_offset = next_offset;
4601 } else {
4602 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4603 inner_depth.increment()?;
4604 }
4605 let val_ref =
4606 self.vmo_pager_total_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4607 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4608 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4609 {
4610 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4611 }
4612 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4613 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4614 }
4615 }
4616
4617 next_offset += envelope_size;
4618 _next_ordinal_to_read += 1;
4619 if next_offset >= end_offset {
4620 return Ok(());
4621 }
4622
4623 while _next_ordinal_to_read < 8 {
4625 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4626 _next_ordinal_to_read += 1;
4627 next_offset += envelope_size;
4628 }
4629
4630 let next_out_of_line = decoder.next_out_of_line();
4631 let handles_before = decoder.remaining_handles();
4632 if let Some((inlined, num_bytes, num_handles)) =
4633 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4634 {
4635 let member_inline_size =
4636 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4637 if inlined != (member_inline_size <= 4) {
4638 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4639 }
4640 let inner_offset;
4641 let mut inner_depth = depth.clone();
4642 if inlined {
4643 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4644 inner_offset = next_offset;
4645 } else {
4646 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4647 inner_depth.increment()?;
4648 }
4649 let val_ref =
4650 self.vmo_pager_newest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4651 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4652 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4653 {
4654 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4655 }
4656 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4657 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4658 }
4659 }
4660
4661 next_offset += envelope_size;
4662 _next_ordinal_to_read += 1;
4663 if next_offset >= end_offset {
4664 return Ok(());
4665 }
4666
4667 while _next_ordinal_to_read < 9 {
4669 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4670 _next_ordinal_to_read += 1;
4671 next_offset += envelope_size;
4672 }
4673
4674 let next_out_of_line = decoder.next_out_of_line();
4675 let handles_before = decoder.remaining_handles();
4676 if let Some((inlined, num_bytes, num_handles)) =
4677 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4678 {
4679 let member_inline_size =
4680 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4681 if inlined != (member_inline_size <= 4) {
4682 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4683 }
4684 let inner_offset;
4685 let mut inner_depth = depth.clone();
4686 if inlined {
4687 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4688 inner_offset = next_offset;
4689 } else {
4690 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4691 inner_depth.increment()?;
4692 }
4693 let val_ref =
4694 self.vmo_pager_oldest_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4695 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4696 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4697 {
4698 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4699 }
4700 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4701 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4702 }
4703 }
4704
4705 next_offset += envelope_size;
4706 _next_ordinal_to_read += 1;
4707 if next_offset >= end_offset {
4708 return Ok(());
4709 }
4710
4711 while _next_ordinal_to_read < 10 {
4713 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4714 _next_ordinal_to_read += 1;
4715 next_offset += envelope_size;
4716 }
4717
4718 let next_out_of_line = decoder.next_out_of_line();
4719 let handles_before = decoder.remaining_handles();
4720 if let Some((inlined, num_bytes, num_handles)) =
4721 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4722 {
4723 let member_inline_size =
4724 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4725 if inlined != (member_inline_size <= 4) {
4726 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4727 }
4728 let inner_offset;
4729 let mut inner_depth = depth.clone();
4730 if inlined {
4731 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4732 inner_offset = next_offset;
4733 } else {
4734 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4735 inner_depth.increment()?;
4736 }
4737 let val_ref = self
4738 .vmo_discardable_locked_bytes
4739 .get_or_insert_with(|| fidl::new_empty!(u64, D));
4740 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4741 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4742 {
4743 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4744 }
4745 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4746 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4747 }
4748 }
4749
4750 next_offset += envelope_size;
4751 _next_ordinal_to_read += 1;
4752 if next_offset >= end_offset {
4753 return Ok(());
4754 }
4755
4756 while _next_ordinal_to_read < 11 {
4758 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4759 _next_ordinal_to_read += 1;
4760 next_offset += envelope_size;
4761 }
4762
4763 let next_out_of_line = decoder.next_out_of_line();
4764 let handles_before = decoder.remaining_handles();
4765 if let Some((inlined, num_bytes, num_handles)) =
4766 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4767 {
4768 let member_inline_size =
4769 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4770 if inlined != (member_inline_size <= 4) {
4771 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4772 }
4773 let inner_offset;
4774 let mut inner_depth = depth.clone();
4775 if inlined {
4776 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4777 inner_offset = next_offset;
4778 } else {
4779 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4780 inner_depth.increment()?;
4781 }
4782 let val_ref = self
4783 .vmo_discardable_unlocked_bytes
4784 .get_or_insert_with(|| fidl::new_empty!(u64, D));
4785 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4786 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4787 {
4788 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4789 }
4790 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4791 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4792 }
4793 }
4794
4795 next_offset += envelope_size;
4796 _next_ordinal_to_read += 1;
4797 if next_offset >= end_offset {
4798 return Ok(());
4799 }
4800
4801 while _next_ordinal_to_read < 12 {
4803 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4804 _next_ordinal_to_read += 1;
4805 next_offset += envelope_size;
4806 }
4807
4808 let next_out_of_line = decoder.next_out_of_line();
4809 let handles_before = decoder.remaining_handles();
4810 if let Some((inlined, num_bytes, num_handles)) =
4811 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4812 {
4813 let member_inline_size =
4814 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4815 if inlined != (member_inline_size <= 4) {
4816 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4817 }
4818 let inner_offset;
4819 let mut inner_depth = depth.clone();
4820 if inlined {
4821 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4822 inner_offset = next_offset;
4823 } else {
4824 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4825 inner_depth.increment()?;
4826 }
4827 let val_ref =
4828 self.mmu_overhead_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4829 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4830 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4831 {
4832 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4833 }
4834 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4835 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4836 }
4837 }
4838
4839 next_offset += envelope_size;
4840 _next_ordinal_to_read += 1;
4841 if next_offset >= end_offset {
4842 return Ok(());
4843 }
4844
4845 while _next_ordinal_to_read < 13 {
4847 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4848 _next_ordinal_to_read += 1;
4849 next_offset += envelope_size;
4850 }
4851
4852 let next_out_of_line = decoder.next_out_of_line();
4853 let handles_before = decoder.remaining_handles();
4854 if let Some((inlined, num_bytes, num_handles)) =
4855 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4856 {
4857 let member_inline_size =
4858 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4859 if inlined != (member_inline_size <= 4) {
4860 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4861 }
4862 let inner_offset;
4863 let mut inner_depth = depth.clone();
4864 if inlined {
4865 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4866 inner_offset = next_offset;
4867 } else {
4868 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4869 inner_depth.increment()?;
4870 }
4871 let val_ref = self.ipc_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4872 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4873 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4874 {
4875 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4876 }
4877 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4878 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4879 }
4880 }
4881
4882 next_offset += envelope_size;
4883 _next_ordinal_to_read += 1;
4884 if next_offset >= end_offset {
4885 return Ok(());
4886 }
4887
4888 while _next_ordinal_to_read < 14 {
4890 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4891 _next_ordinal_to_read += 1;
4892 next_offset += envelope_size;
4893 }
4894
4895 let next_out_of_line = decoder.next_out_of_line();
4896 let handles_before = decoder.remaining_handles();
4897 if let Some((inlined, num_bytes, num_handles)) =
4898 fidl::encoding::decode_envelope_header(decoder, next_offset)?
4899 {
4900 let member_inline_size =
4901 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
4902 if inlined != (member_inline_size <= 4) {
4903 return Err(fidl::Error::InvalidInlineBitInEnvelope);
4904 }
4905 let inner_offset;
4906 let mut inner_depth = depth.clone();
4907 if inlined {
4908 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
4909 inner_offset = next_offset;
4910 } else {
4911 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4912 inner_depth.increment()?;
4913 }
4914 let val_ref = self.other_bytes.get_or_insert_with(|| fidl::new_empty!(u64, D));
4915 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
4916 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
4917 {
4918 return Err(fidl::Error::InvalidNumBytesInEnvelope);
4919 }
4920 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4921 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4922 }
4923 }
4924
4925 next_offset += envelope_size;
4926
4927 while next_offset < end_offset {
4929 _next_ordinal_to_read += 1;
4930 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
4931 next_offset += envelope_size;
4932 }
4933
4934 Ok(())
4935 }
4936 }
4937
4938 impl PerCpuStats {
4939 #[inline(always)]
4940 fn max_ordinal_present(&self) -> u64 {
4941 if let Some(_) = self.idle_energy_consumption_nj {
4942 return 18;
4943 }
4944 if let Some(_) = self.active_energy_consumption_nj {
4945 return 17;
4946 }
4947 if let Some(_) = self.normalized_busy_time {
4948 return 16;
4949 }
4950 if let Some(_) = self.generic_ipis {
4951 return 15;
4952 }
4953 if let Some(_) = self.reschedule_ipis {
4954 return 14;
4955 }
4956 if let Some(_) = self.syscalls {
4957 return 13;
4958 }
4959 if let Some(_) = self.exceptions {
4960 return 12;
4961 }
4962 if let Some(_) = self.page_faults {
4963 return 11;
4964 }
4965 if let Some(_) = self.timers {
4966 return 10;
4967 }
4968 if let Some(_) = self.timer_ints {
4969 return 9;
4970 }
4971 if let Some(_) = self.ints {
4972 return 8;
4973 }
4974 if let Some(_) = self.yields {
4975 return 7;
4976 }
4977 if let Some(_) = self.irq_preempts {
4978 return 6;
4979 }
4980 if let Some(_) = self.context_switches {
4981 return 5;
4982 }
4983 if let Some(_) = self.reschedules {
4984 return 4;
4985 }
4986 if let Some(_) = self.idle_time {
4987 return 3;
4988 }
4989 if let Some(_) = self.flags {
4990 return 2;
4991 }
4992 if let Some(_) = self.cpu_number {
4993 return 1;
4994 }
4995 0
4996 }
4997 }
4998
4999 impl fidl::encoding::ValueTypeMarker for PerCpuStats {
5000 type Borrowed<'a> = &'a Self;
5001 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
5002 value
5003 }
5004 }
5005
5006 unsafe impl fidl::encoding::TypeMarker for PerCpuStats {
5007 type Owned = Self;
5008
5009 #[inline(always)]
5010 fn inline_align(_context: fidl::encoding::Context) -> usize {
5011 8
5012 }
5013
5014 #[inline(always)]
5015 fn inline_size(_context: fidl::encoding::Context) -> usize {
5016 16
5017 }
5018 }
5019
5020 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<PerCpuStats, D>
5021 for &PerCpuStats
5022 {
5023 unsafe fn encode(
5024 self,
5025 encoder: &mut fidl::encoding::Encoder<'_, D>,
5026 offset: usize,
5027 mut depth: fidl::encoding::Depth,
5028 ) -> fidl::Result<()> {
5029 encoder.debug_check_bounds::<PerCpuStats>(offset);
5030 let max_ordinal: u64 = self.max_ordinal_present();
5032 encoder.write_num(max_ordinal, offset);
5033 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
5034 if max_ordinal == 0 {
5036 return Ok(());
5037 }
5038 depth.increment()?;
5039 let envelope_size = 8;
5040 let bytes_len = max_ordinal as usize * envelope_size;
5041 #[allow(unused_variables)]
5042 let offset = encoder.out_of_line_offset(bytes_len);
5043 let mut _prev_end_offset: usize = 0;
5044 if 1 > max_ordinal {
5045 return Ok(());
5046 }
5047
5048 let cur_offset: usize = (1 - 1) * envelope_size;
5051
5052 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5054
5055 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5060 self.cpu_number.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5061 encoder,
5062 offset + cur_offset,
5063 depth,
5064 )?;
5065
5066 _prev_end_offset = cur_offset + envelope_size;
5067 if 2 > max_ordinal {
5068 return Ok(());
5069 }
5070
5071 let cur_offset: usize = (2 - 1) * envelope_size;
5074
5075 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5077
5078 fidl::encoding::encode_in_envelope_optional::<u32, D>(
5083 self.flags.as_ref().map(<u32 as fidl::encoding::ValueTypeMarker>::borrow),
5084 encoder,
5085 offset + cur_offset,
5086 depth,
5087 )?;
5088
5089 _prev_end_offset = cur_offset + envelope_size;
5090 if 3 > max_ordinal {
5091 return Ok(());
5092 }
5093
5094 let cur_offset: usize = (3 - 1) * envelope_size;
5097
5098 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5100
5101 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5106 self.idle_time.as_ref().map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5107 encoder,
5108 offset + cur_offset,
5109 depth,
5110 )?;
5111
5112 _prev_end_offset = cur_offset + envelope_size;
5113 if 4 > max_ordinal {
5114 return Ok(());
5115 }
5116
5117 let cur_offset: usize = (4 - 1) * envelope_size;
5120
5121 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5123
5124 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5129 self.reschedules.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5130 encoder,
5131 offset + cur_offset,
5132 depth,
5133 )?;
5134
5135 _prev_end_offset = cur_offset + envelope_size;
5136 if 5 > max_ordinal {
5137 return Ok(());
5138 }
5139
5140 let cur_offset: usize = (5 - 1) * envelope_size;
5143
5144 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5146
5147 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5152 self.context_switches
5153 .as_ref()
5154 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5155 encoder,
5156 offset + cur_offset,
5157 depth,
5158 )?;
5159
5160 _prev_end_offset = cur_offset + envelope_size;
5161 if 6 > max_ordinal {
5162 return Ok(());
5163 }
5164
5165 let cur_offset: usize = (6 - 1) * envelope_size;
5168
5169 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5171
5172 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5177 self.irq_preempts.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5178 encoder,
5179 offset + cur_offset,
5180 depth,
5181 )?;
5182
5183 _prev_end_offset = cur_offset + envelope_size;
5184 if 7 > max_ordinal {
5185 return Ok(());
5186 }
5187
5188 let cur_offset: usize = (7 - 1) * envelope_size;
5191
5192 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5194
5195 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5200 self.yields.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5201 encoder,
5202 offset + cur_offset,
5203 depth,
5204 )?;
5205
5206 _prev_end_offset = cur_offset + envelope_size;
5207 if 8 > max_ordinal {
5208 return Ok(());
5209 }
5210
5211 let cur_offset: usize = (8 - 1) * envelope_size;
5214
5215 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5217
5218 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5223 self.ints.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5224 encoder,
5225 offset + cur_offset,
5226 depth,
5227 )?;
5228
5229 _prev_end_offset = cur_offset + envelope_size;
5230 if 9 > max_ordinal {
5231 return Ok(());
5232 }
5233
5234 let cur_offset: usize = (9 - 1) * envelope_size;
5237
5238 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5240
5241 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5246 self.timer_ints.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5247 encoder,
5248 offset + cur_offset,
5249 depth,
5250 )?;
5251
5252 _prev_end_offset = cur_offset + envelope_size;
5253 if 10 > max_ordinal {
5254 return Ok(());
5255 }
5256
5257 let cur_offset: usize = (10 - 1) * envelope_size;
5260
5261 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5263
5264 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5269 self.timers.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5270 encoder,
5271 offset + cur_offset,
5272 depth,
5273 )?;
5274
5275 _prev_end_offset = cur_offset + envelope_size;
5276 if 11 > max_ordinal {
5277 return Ok(());
5278 }
5279
5280 let cur_offset: usize = (11 - 1) * envelope_size;
5283
5284 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5286
5287 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5292 self.page_faults.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5293 encoder,
5294 offset + cur_offset,
5295 depth,
5296 )?;
5297
5298 _prev_end_offset = cur_offset + envelope_size;
5299 if 12 > max_ordinal {
5300 return Ok(());
5301 }
5302
5303 let cur_offset: usize = (12 - 1) * envelope_size;
5306
5307 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5309
5310 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5315 self.exceptions.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5316 encoder,
5317 offset + cur_offset,
5318 depth,
5319 )?;
5320
5321 _prev_end_offset = cur_offset + envelope_size;
5322 if 13 > max_ordinal {
5323 return Ok(());
5324 }
5325
5326 let cur_offset: usize = (13 - 1) * envelope_size;
5329
5330 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5332
5333 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5338 self.syscalls.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5339 encoder,
5340 offset + cur_offset,
5341 depth,
5342 )?;
5343
5344 _prev_end_offset = cur_offset + envelope_size;
5345 if 14 > max_ordinal {
5346 return Ok(());
5347 }
5348
5349 let cur_offset: usize = (14 - 1) * envelope_size;
5352
5353 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5355
5356 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5361 self.reschedule_ipis.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5362 encoder,
5363 offset + cur_offset,
5364 depth,
5365 )?;
5366
5367 _prev_end_offset = cur_offset + envelope_size;
5368 if 15 > max_ordinal {
5369 return Ok(());
5370 }
5371
5372 let cur_offset: usize = (15 - 1) * envelope_size;
5375
5376 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5378
5379 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5384 self.generic_ipis.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5385 encoder,
5386 offset + cur_offset,
5387 depth,
5388 )?;
5389
5390 _prev_end_offset = cur_offset + envelope_size;
5391 if 16 > max_ordinal {
5392 return Ok(());
5393 }
5394
5395 let cur_offset: usize = (16 - 1) * envelope_size;
5398
5399 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5401
5402 fidl::encoding::encode_in_envelope_optional::<i64, D>(
5407 self.normalized_busy_time
5408 .as_ref()
5409 .map(<i64 as fidl::encoding::ValueTypeMarker>::borrow),
5410 encoder,
5411 offset + cur_offset,
5412 depth,
5413 )?;
5414
5415 _prev_end_offset = cur_offset + envelope_size;
5416 if 17 > max_ordinal {
5417 return Ok(());
5418 }
5419
5420 let cur_offset: usize = (17 - 1) * envelope_size;
5423
5424 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5426
5427 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5432 self.active_energy_consumption_nj
5433 .as_ref()
5434 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5435 encoder,
5436 offset + cur_offset,
5437 depth,
5438 )?;
5439
5440 _prev_end_offset = cur_offset + envelope_size;
5441 if 18 > max_ordinal {
5442 return Ok(());
5443 }
5444
5445 let cur_offset: usize = (18 - 1) * envelope_size;
5448
5449 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
5451
5452 fidl::encoding::encode_in_envelope_optional::<u64, D>(
5457 self.idle_energy_consumption_nj
5458 .as_ref()
5459 .map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
5460 encoder,
5461 offset + cur_offset,
5462 depth,
5463 )?;
5464
5465 _prev_end_offset = cur_offset + envelope_size;
5466
5467 Ok(())
5468 }
5469 }
5470
5471 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PerCpuStats {
5472 #[inline(always)]
5473 fn new_empty() -> Self {
5474 Self::default()
5475 }
5476
5477 unsafe fn decode(
5478 &mut self,
5479 decoder: &mut fidl::encoding::Decoder<'_, D>,
5480 offset: usize,
5481 mut depth: fidl::encoding::Depth,
5482 ) -> fidl::Result<()> {
5483 decoder.debug_check_bounds::<Self>(offset);
5484 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
5485 None => return Err(fidl::Error::NotNullable),
5486 Some(len) => len,
5487 };
5488 if len == 0 {
5490 return Ok(());
5491 };
5492 depth.increment()?;
5493 let envelope_size = 8;
5494 let bytes_len = len * envelope_size;
5495 let offset = decoder.out_of_line_offset(bytes_len)?;
5496 let mut _next_ordinal_to_read = 0;
5498 let mut next_offset = offset;
5499 let end_offset = offset + bytes_len;
5500 _next_ordinal_to_read += 1;
5501 if next_offset >= end_offset {
5502 return Ok(());
5503 }
5504
5505 while _next_ordinal_to_read < 1 {
5507 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5508 _next_ordinal_to_read += 1;
5509 next_offset += envelope_size;
5510 }
5511
5512 let next_out_of_line = decoder.next_out_of_line();
5513 let handles_before = decoder.remaining_handles();
5514 if let Some((inlined, num_bytes, num_handles)) =
5515 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5516 {
5517 let member_inline_size =
5518 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5519 if inlined != (member_inline_size <= 4) {
5520 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5521 }
5522 let inner_offset;
5523 let mut inner_depth = depth.clone();
5524 if inlined {
5525 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5526 inner_offset = next_offset;
5527 } else {
5528 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5529 inner_depth.increment()?;
5530 }
5531 let val_ref = self.cpu_number.get_or_insert_with(|| fidl::new_empty!(u32, D));
5532 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5533 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5534 {
5535 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5536 }
5537 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5538 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5539 }
5540 }
5541
5542 next_offset += envelope_size;
5543 _next_ordinal_to_read += 1;
5544 if next_offset >= end_offset {
5545 return Ok(());
5546 }
5547
5548 while _next_ordinal_to_read < 2 {
5550 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5551 _next_ordinal_to_read += 1;
5552 next_offset += envelope_size;
5553 }
5554
5555 let next_out_of_line = decoder.next_out_of_line();
5556 let handles_before = decoder.remaining_handles();
5557 if let Some((inlined, num_bytes, num_handles)) =
5558 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5559 {
5560 let member_inline_size =
5561 <u32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5562 if inlined != (member_inline_size <= 4) {
5563 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5564 }
5565 let inner_offset;
5566 let mut inner_depth = depth.clone();
5567 if inlined {
5568 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5569 inner_offset = next_offset;
5570 } else {
5571 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5572 inner_depth.increment()?;
5573 }
5574 let val_ref = self.flags.get_or_insert_with(|| fidl::new_empty!(u32, D));
5575 fidl::decode!(u32, D, val_ref, decoder, inner_offset, inner_depth)?;
5576 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5577 {
5578 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5579 }
5580 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5581 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5582 }
5583 }
5584
5585 next_offset += envelope_size;
5586 _next_ordinal_to_read += 1;
5587 if next_offset >= end_offset {
5588 return Ok(());
5589 }
5590
5591 while _next_ordinal_to_read < 3 {
5593 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5594 _next_ordinal_to_read += 1;
5595 next_offset += envelope_size;
5596 }
5597
5598 let next_out_of_line = decoder.next_out_of_line();
5599 let handles_before = decoder.remaining_handles();
5600 if let Some((inlined, num_bytes, num_handles)) =
5601 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5602 {
5603 let member_inline_size =
5604 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5605 if inlined != (member_inline_size <= 4) {
5606 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5607 }
5608 let inner_offset;
5609 let mut inner_depth = depth.clone();
5610 if inlined {
5611 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5612 inner_offset = next_offset;
5613 } else {
5614 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5615 inner_depth.increment()?;
5616 }
5617 let val_ref = self.idle_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
5618 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
5619 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5620 {
5621 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5622 }
5623 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5624 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5625 }
5626 }
5627
5628 next_offset += envelope_size;
5629 _next_ordinal_to_read += 1;
5630 if next_offset >= end_offset {
5631 return Ok(());
5632 }
5633
5634 while _next_ordinal_to_read < 4 {
5636 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5637 _next_ordinal_to_read += 1;
5638 next_offset += envelope_size;
5639 }
5640
5641 let next_out_of_line = decoder.next_out_of_line();
5642 let handles_before = decoder.remaining_handles();
5643 if let Some((inlined, num_bytes, num_handles)) =
5644 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5645 {
5646 let member_inline_size =
5647 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5648 if inlined != (member_inline_size <= 4) {
5649 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5650 }
5651 let inner_offset;
5652 let mut inner_depth = depth.clone();
5653 if inlined {
5654 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5655 inner_offset = next_offset;
5656 } else {
5657 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5658 inner_depth.increment()?;
5659 }
5660 let val_ref = self.reschedules.get_or_insert_with(|| fidl::new_empty!(u64, D));
5661 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5662 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5663 {
5664 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5665 }
5666 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5667 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5668 }
5669 }
5670
5671 next_offset += envelope_size;
5672 _next_ordinal_to_read += 1;
5673 if next_offset >= end_offset {
5674 return Ok(());
5675 }
5676
5677 while _next_ordinal_to_read < 5 {
5679 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5680 _next_ordinal_to_read += 1;
5681 next_offset += envelope_size;
5682 }
5683
5684 let next_out_of_line = decoder.next_out_of_line();
5685 let handles_before = decoder.remaining_handles();
5686 if let Some((inlined, num_bytes, num_handles)) =
5687 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5688 {
5689 let member_inline_size =
5690 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5691 if inlined != (member_inline_size <= 4) {
5692 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5693 }
5694 let inner_offset;
5695 let mut inner_depth = depth.clone();
5696 if inlined {
5697 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5698 inner_offset = next_offset;
5699 } else {
5700 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5701 inner_depth.increment()?;
5702 }
5703 let val_ref = self.context_switches.get_or_insert_with(|| fidl::new_empty!(u64, D));
5704 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5705 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5706 {
5707 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5708 }
5709 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5710 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5711 }
5712 }
5713
5714 next_offset += envelope_size;
5715 _next_ordinal_to_read += 1;
5716 if next_offset >= end_offset {
5717 return Ok(());
5718 }
5719
5720 while _next_ordinal_to_read < 6 {
5722 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5723 _next_ordinal_to_read += 1;
5724 next_offset += envelope_size;
5725 }
5726
5727 let next_out_of_line = decoder.next_out_of_line();
5728 let handles_before = decoder.remaining_handles();
5729 if let Some((inlined, num_bytes, num_handles)) =
5730 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5731 {
5732 let member_inline_size =
5733 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5734 if inlined != (member_inline_size <= 4) {
5735 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5736 }
5737 let inner_offset;
5738 let mut inner_depth = depth.clone();
5739 if inlined {
5740 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5741 inner_offset = next_offset;
5742 } else {
5743 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5744 inner_depth.increment()?;
5745 }
5746 let val_ref = self.irq_preempts.get_or_insert_with(|| fidl::new_empty!(u64, D));
5747 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5748 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5749 {
5750 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5751 }
5752 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5753 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5754 }
5755 }
5756
5757 next_offset += envelope_size;
5758 _next_ordinal_to_read += 1;
5759 if next_offset >= end_offset {
5760 return Ok(());
5761 }
5762
5763 while _next_ordinal_to_read < 7 {
5765 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5766 _next_ordinal_to_read += 1;
5767 next_offset += envelope_size;
5768 }
5769
5770 let next_out_of_line = decoder.next_out_of_line();
5771 let handles_before = decoder.remaining_handles();
5772 if let Some((inlined, num_bytes, num_handles)) =
5773 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5774 {
5775 let member_inline_size =
5776 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5777 if inlined != (member_inline_size <= 4) {
5778 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5779 }
5780 let inner_offset;
5781 let mut inner_depth = depth.clone();
5782 if inlined {
5783 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5784 inner_offset = next_offset;
5785 } else {
5786 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5787 inner_depth.increment()?;
5788 }
5789 let val_ref = self.yields.get_or_insert_with(|| fidl::new_empty!(u64, D));
5790 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5791 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5792 {
5793 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5794 }
5795 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5796 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5797 }
5798 }
5799
5800 next_offset += envelope_size;
5801 _next_ordinal_to_read += 1;
5802 if next_offset >= end_offset {
5803 return Ok(());
5804 }
5805
5806 while _next_ordinal_to_read < 8 {
5808 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5809 _next_ordinal_to_read += 1;
5810 next_offset += envelope_size;
5811 }
5812
5813 let next_out_of_line = decoder.next_out_of_line();
5814 let handles_before = decoder.remaining_handles();
5815 if let Some((inlined, num_bytes, num_handles)) =
5816 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5817 {
5818 let member_inline_size =
5819 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5820 if inlined != (member_inline_size <= 4) {
5821 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5822 }
5823 let inner_offset;
5824 let mut inner_depth = depth.clone();
5825 if inlined {
5826 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5827 inner_offset = next_offset;
5828 } else {
5829 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5830 inner_depth.increment()?;
5831 }
5832 let val_ref = self.ints.get_or_insert_with(|| fidl::new_empty!(u64, D));
5833 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5834 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5835 {
5836 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5837 }
5838 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5839 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5840 }
5841 }
5842
5843 next_offset += envelope_size;
5844 _next_ordinal_to_read += 1;
5845 if next_offset >= end_offset {
5846 return Ok(());
5847 }
5848
5849 while _next_ordinal_to_read < 9 {
5851 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5852 _next_ordinal_to_read += 1;
5853 next_offset += envelope_size;
5854 }
5855
5856 let next_out_of_line = decoder.next_out_of_line();
5857 let handles_before = decoder.remaining_handles();
5858 if let Some((inlined, num_bytes, num_handles)) =
5859 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5860 {
5861 let member_inline_size =
5862 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5863 if inlined != (member_inline_size <= 4) {
5864 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5865 }
5866 let inner_offset;
5867 let mut inner_depth = depth.clone();
5868 if inlined {
5869 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5870 inner_offset = next_offset;
5871 } else {
5872 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5873 inner_depth.increment()?;
5874 }
5875 let val_ref = self.timer_ints.get_or_insert_with(|| fidl::new_empty!(u64, D));
5876 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5877 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5878 {
5879 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5880 }
5881 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5882 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5883 }
5884 }
5885
5886 next_offset += envelope_size;
5887 _next_ordinal_to_read += 1;
5888 if next_offset >= end_offset {
5889 return Ok(());
5890 }
5891
5892 while _next_ordinal_to_read < 10 {
5894 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5895 _next_ordinal_to_read += 1;
5896 next_offset += envelope_size;
5897 }
5898
5899 let next_out_of_line = decoder.next_out_of_line();
5900 let handles_before = decoder.remaining_handles();
5901 if let Some((inlined, num_bytes, num_handles)) =
5902 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5903 {
5904 let member_inline_size =
5905 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5906 if inlined != (member_inline_size <= 4) {
5907 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5908 }
5909 let inner_offset;
5910 let mut inner_depth = depth.clone();
5911 if inlined {
5912 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5913 inner_offset = next_offset;
5914 } else {
5915 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5916 inner_depth.increment()?;
5917 }
5918 let val_ref = self.timers.get_or_insert_with(|| fidl::new_empty!(u64, D));
5919 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5920 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5921 {
5922 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5923 }
5924 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5925 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5926 }
5927 }
5928
5929 next_offset += envelope_size;
5930 _next_ordinal_to_read += 1;
5931 if next_offset >= end_offset {
5932 return Ok(());
5933 }
5934
5935 while _next_ordinal_to_read < 11 {
5937 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5938 _next_ordinal_to_read += 1;
5939 next_offset += envelope_size;
5940 }
5941
5942 let next_out_of_line = decoder.next_out_of_line();
5943 let handles_before = decoder.remaining_handles();
5944 if let Some((inlined, num_bytes, num_handles)) =
5945 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5946 {
5947 let member_inline_size =
5948 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5949 if inlined != (member_inline_size <= 4) {
5950 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5951 }
5952 let inner_offset;
5953 let mut inner_depth = depth.clone();
5954 if inlined {
5955 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5956 inner_offset = next_offset;
5957 } else {
5958 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
5959 inner_depth.increment()?;
5960 }
5961 let val_ref = self.page_faults.get_or_insert_with(|| fidl::new_empty!(u64, D));
5962 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
5963 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
5964 {
5965 return Err(fidl::Error::InvalidNumBytesInEnvelope);
5966 }
5967 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5968 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5969 }
5970 }
5971
5972 next_offset += envelope_size;
5973 _next_ordinal_to_read += 1;
5974 if next_offset >= end_offset {
5975 return Ok(());
5976 }
5977
5978 while _next_ordinal_to_read < 12 {
5980 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
5981 _next_ordinal_to_read += 1;
5982 next_offset += envelope_size;
5983 }
5984
5985 let next_out_of_line = decoder.next_out_of_line();
5986 let handles_before = decoder.remaining_handles();
5987 if let Some((inlined, num_bytes, num_handles)) =
5988 fidl::encoding::decode_envelope_header(decoder, next_offset)?
5989 {
5990 let member_inline_size =
5991 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
5992 if inlined != (member_inline_size <= 4) {
5993 return Err(fidl::Error::InvalidInlineBitInEnvelope);
5994 }
5995 let inner_offset;
5996 let mut inner_depth = depth.clone();
5997 if inlined {
5998 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
5999 inner_offset = next_offset;
6000 } else {
6001 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6002 inner_depth.increment()?;
6003 }
6004 let val_ref = self.exceptions.get_or_insert_with(|| fidl::new_empty!(u64, D));
6005 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6006 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6007 {
6008 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6009 }
6010 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6011 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6012 }
6013 }
6014
6015 next_offset += envelope_size;
6016 _next_ordinal_to_read += 1;
6017 if next_offset >= end_offset {
6018 return Ok(());
6019 }
6020
6021 while _next_ordinal_to_read < 13 {
6023 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6024 _next_ordinal_to_read += 1;
6025 next_offset += envelope_size;
6026 }
6027
6028 let next_out_of_line = decoder.next_out_of_line();
6029 let handles_before = decoder.remaining_handles();
6030 if let Some((inlined, num_bytes, num_handles)) =
6031 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6032 {
6033 let member_inline_size =
6034 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6035 if inlined != (member_inline_size <= 4) {
6036 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6037 }
6038 let inner_offset;
6039 let mut inner_depth = depth.clone();
6040 if inlined {
6041 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6042 inner_offset = next_offset;
6043 } else {
6044 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6045 inner_depth.increment()?;
6046 }
6047 let val_ref = self.syscalls.get_or_insert_with(|| fidl::new_empty!(u64, D));
6048 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6049 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6050 {
6051 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6052 }
6053 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6054 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6055 }
6056 }
6057
6058 next_offset += envelope_size;
6059 _next_ordinal_to_read += 1;
6060 if next_offset >= end_offset {
6061 return Ok(());
6062 }
6063
6064 while _next_ordinal_to_read < 14 {
6066 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6067 _next_ordinal_to_read += 1;
6068 next_offset += envelope_size;
6069 }
6070
6071 let next_out_of_line = decoder.next_out_of_line();
6072 let handles_before = decoder.remaining_handles();
6073 if let Some((inlined, num_bytes, num_handles)) =
6074 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6075 {
6076 let member_inline_size =
6077 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6078 if inlined != (member_inline_size <= 4) {
6079 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6080 }
6081 let inner_offset;
6082 let mut inner_depth = depth.clone();
6083 if inlined {
6084 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6085 inner_offset = next_offset;
6086 } else {
6087 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6088 inner_depth.increment()?;
6089 }
6090 let val_ref = self.reschedule_ipis.get_or_insert_with(|| fidl::new_empty!(u64, D));
6091 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6092 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6093 {
6094 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6095 }
6096 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6097 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6098 }
6099 }
6100
6101 next_offset += envelope_size;
6102 _next_ordinal_to_read += 1;
6103 if next_offset >= end_offset {
6104 return Ok(());
6105 }
6106
6107 while _next_ordinal_to_read < 15 {
6109 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6110 _next_ordinal_to_read += 1;
6111 next_offset += envelope_size;
6112 }
6113
6114 let next_out_of_line = decoder.next_out_of_line();
6115 let handles_before = decoder.remaining_handles();
6116 if let Some((inlined, num_bytes, num_handles)) =
6117 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6118 {
6119 let member_inline_size =
6120 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6121 if inlined != (member_inline_size <= 4) {
6122 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6123 }
6124 let inner_offset;
6125 let mut inner_depth = depth.clone();
6126 if inlined {
6127 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6128 inner_offset = next_offset;
6129 } else {
6130 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6131 inner_depth.increment()?;
6132 }
6133 let val_ref = self.generic_ipis.get_or_insert_with(|| fidl::new_empty!(u64, D));
6134 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6135 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6136 {
6137 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6138 }
6139 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6140 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6141 }
6142 }
6143
6144 next_offset += envelope_size;
6145 _next_ordinal_to_read += 1;
6146 if next_offset >= end_offset {
6147 return Ok(());
6148 }
6149
6150 while _next_ordinal_to_read < 16 {
6152 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6153 _next_ordinal_to_read += 1;
6154 next_offset += envelope_size;
6155 }
6156
6157 let next_out_of_line = decoder.next_out_of_line();
6158 let handles_before = decoder.remaining_handles();
6159 if let Some((inlined, num_bytes, num_handles)) =
6160 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6161 {
6162 let member_inline_size =
6163 <i64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6164 if inlined != (member_inline_size <= 4) {
6165 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6166 }
6167 let inner_offset;
6168 let mut inner_depth = depth.clone();
6169 if inlined {
6170 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6171 inner_offset = next_offset;
6172 } else {
6173 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6174 inner_depth.increment()?;
6175 }
6176 let val_ref =
6177 self.normalized_busy_time.get_or_insert_with(|| fidl::new_empty!(i64, D));
6178 fidl::decode!(i64, D, val_ref, decoder, inner_offset, inner_depth)?;
6179 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6180 {
6181 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6182 }
6183 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6184 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6185 }
6186 }
6187
6188 next_offset += envelope_size;
6189 _next_ordinal_to_read += 1;
6190 if next_offset >= end_offset {
6191 return Ok(());
6192 }
6193
6194 while _next_ordinal_to_read < 17 {
6196 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6197 _next_ordinal_to_read += 1;
6198 next_offset += envelope_size;
6199 }
6200
6201 let next_out_of_line = decoder.next_out_of_line();
6202 let handles_before = decoder.remaining_handles();
6203 if let Some((inlined, num_bytes, num_handles)) =
6204 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6205 {
6206 let member_inline_size =
6207 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6208 if inlined != (member_inline_size <= 4) {
6209 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6210 }
6211 let inner_offset;
6212 let mut inner_depth = depth.clone();
6213 if inlined {
6214 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6215 inner_offset = next_offset;
6216 } else {
6217 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6218 inner_depth.increment()?;
6219 }
6220 let val_ref = self
6221 .active_energy_consumption_nj
6222 .get_or_insert_with(|| fidl::new_empty!(u64, D));
6223 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6224 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6225 {
6226 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6227 }
6228 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6229 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6230 }
6231 }
6232
6233 next_offset += envelope_size;
6234 _next_ordinal_to_read += 1;
6235 if next_offset >= end_offset {
6236 return Ok(());
6237 }
6238
6239 while _next_ordinal_to_read < 18 {
6241 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6242 _next_ordinal_to_read += 1;
6243 next_offset += envelope_size;
6244 }
6245
6246 let next_out_of_line = decoder.next_out_of_line();
6247 let handles_before = decoder.remaining_handles();
6248 if let Some((inlined, num_bytes, num_handles)) =
6249 fidl::encoding::decode_envelope_header(decoder, next_offset)?
6250 {
6251 let member_inline_size =
6252 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
6253 if inlined != (member_inline_size <= 4) {
6254 return Err(fidl::Error::InvalidInlineBitInEnvelope);
6255 }
6256 let inner_offset;
6257 let mut inner_depth = depth.clone();
6258 if inlined {
6259 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
6260 inner_offset = next_offset;
6261 } else {
6262 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
6263 inner_depth.increment()?;
6264 }
6265 let val_ref =
6266 self.idle_energy_consumption_nj.get_or_insert_with(|| fidl::new_empty!(u64, D));
6267 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
6268 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
6269 {
6270 return Err(fidl::Error::InvalidNumBytesInEnvelope);
6271 }
6272 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
6273 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
6274 }
6275 }
6276
6277 next_offset += envelope_size;
6278
6279 while next_offset < end_offset {
6281 _next_ordinal_to_read += 1;
6282 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
6283 next_offset += envelope_size;
6284 }
6285
6286 Ok(())
6287 }
6288 }
6289}