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
11#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
12pub enum SetSyscallLogFilterError {
13 MissingProcessName,
15 #[doc(hidden)]
16 __SourceBreaking { unknown_ordinal: u32 },
17}
18
19#[macro_export]
21macro_rules! SetSyscallLogFilterErrorUnknown {
22 () => {
23 _
24 };
25}
26
27impl SetSyscallLogFilterError {
28 #[inline]
29 pub fn from_primitive(prim: u32) -> Option<Self> {
30 match prim {
31 1 => Some(Self::MissingProcessName),
32 _ => None,
33 }
34 }
35
36 #[inline]
37 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
38 match prim {
39 1 => Self::MissingProcessName,
40 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
41 }
42 }
43
44 #[inline]
45 pub fn unknown() -> Self {
46 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
47 }
48
49 #[inline]
50 pub const fn into_primitive(self) -> u32 {
51 match self {
52 Self::MissingProcessName => 1,
53 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
54 }
55 }
56
57 #[inline]
58 pub fn is_unknown(&self) -> bool {
59 match self {
60 Self::__SourceBreaking { unknown_ordinal: _ } => true,
61 _ => false,
62 }
63 }
64}
65
66#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
67pub enum SignalError {
68 InvalidTarget,
70 InvalidSignal,
72 #[doc(hidden)]
73 __SourceBreaking { unknown_ordinal: u32 },
74}
75
76#[macro_export]
78macro_rules! SignalErrorUnknown {
79 () => {
80 _
81 };
82}
83
84impl SignalError {
85 #[inline]
86 pub fn from_primitive(prim: u32) -> Option<Self> {
87 match prim {
88 1 => Some(Self::InvalidTarget),
89 2 => Some(Self::InvalidSignal),
90 _ => None,
91 }
92 }
93
94 #[inline]
95 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
96 match prim {
97 1 => Self::InvalidTarget,
98 2 => Self::InvalidSignal,
99 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
100 }
101 }
102
103 #[inline]
104 pub fn unknown() -> Self {
105 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
106 }
107
108 #[inline]
109 pub const fn into_primitive(self) -> u32 {
110 match self {
111 Self::InvalidTarget => 1,
112 Self::InvalidSignal => 2,
113 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
114 }
115 }
116
117 #[inline]
118 pub fn is_unknown(&self) -> bool {
119 match self {
120 Self::__SourceBreaking { unknown_ordinal: _ } => true,
121 _ => false,
122 }
123 }
124}
125
126#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
127pub enum SpawnConsoleError {
128 InvalidArgs,
130 Canceled,
132 #[doc(hidden)]
133 __SourceBreaking { unknown_ordinal: u32 },
134}
135
136#[macro_export]
138macro_rules! SpawnConsoleErrorUnknown {
139 () => {
140 _
141 };
142}
143
144impl SpawnConsoleError {
145 #[inline]
146 pub fn from_primitive(prim: u32) -> Option<Self> {
147 match prim {
148 1 => Some(Self::InvalidArgs),
149 2 => Some(Self::Canceled),
150 _ => None,
151 }
152 }
153
154 #[inline]
155 pub fn from_primitive_allow_unknown(prim: u32) -> Self {
156 match prim {
157 1 => Self::InvalidArgs,
158 2 => Self::Canceled,
159 unknown_ordinal => Self::__SourceBreaking { unknown_ordinal },
160 }
161 }
162
163 #[inline]
164 pub fn unknown() -> Self {
165 Self::__SourceBreaking { unknown_ordinal: 0xffffffff }
166 }
167
168 #[inline]
169 pub const fn into_primitive(self) -> u32 {
170 match self {
171 Self::InvalidArgs => 1,
172 Self::Canceled => 2,
173 Self::__SourceBreaking { unknown_ordinal } => unknown_ordinal,
174 }
175 }
176
177 #[inline]
178 pub fn is_unknown(&self) -> bool {
179 match self {
180 Self::__SourceBreaking { unknown_ordinal: _ } => true,
181 _ => false,
182 }
183 }
184}
185
186#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
187#[repr(C)]
188pub struct ConsoleWindowSize {
189 pub rows: u16,
190 pub cols: u16,
191 pub x_pixels: u16,
192 pub y_pixels: u16,
193}
194
195impl fidl::Persistable for ConsoleWindowSize {}
196
197#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
198#[repr(C)]
199pub struct ControllerSpawnConsoleResponse {
200 pub exit_code: u8,
201}
202
203impl fidl::Persistable for ControllerSpawnConsoleResponse {}
204
205#[derive(Clone, Debug, Default, PartialEq)]
206pub struct ControllerGetVmoReferencesRequest {
207 pub koid: Option<u64>,
208 #[doc(hidden)]
209 pub __source_breaking: fidl::marker::SourceBreaking,
210}
211
212impl fidl::Persistable for ControllerGetVmoReferencesRequest {}
213
214#[derive(Clone, Debug, Default, PartialEq)]
215pub struct ControllerSendSignalRequest {
216 pub pid: Option<i32>,
217 pub signal: Option<u64>,
218 #[doc(hidden)]
219 pub __source_breaking: fidl::marker::SourceBreaking,
220}
221
222impl fidl::Persistable for ControllerSendSignalRequest {}
223
224#[derive(Clone, Debug, Default, PartialEq)]
225pub struct ControllerSetSyscallLogFilterRequest {
226 pub process_name: Option<String>,
228 #[doc(hidden)]
229 pub __source_breaking: fidl::marker::SourceBreaking,
230}
231
232impl fidl::Persistable for ControllerSetSyscallLogFilterRequest {}
233
234#[derive(Clone, Debug, Default, PartialEq)]
235pub struct ControllerGetVmoReferencesResponse {
236 pub references: Option<Vec<VmoReference>>,
237 #[doc(hidden)]
238 pub __source_breaking: fidl::marker::SourceBreaking,
239}
240
241impl fidl::Persistable for ControllerGetVmoReferencesResponse {}
242
243#[derive(Clone, Debug, Default, PartialEq)]
244pub struct VmoReference {
245 pub process_name: Option<String>,
247 pub pid: Option<u64>,
249 pub fd: Option<i32>,
251 pub koid: Option<u64>,
253 #[doc(hidden)]
254 pub __source_breaking: fidl::marker::SourceBreaking,
255}
256
257impl fidl::Persistable for VmoReference {}
258
259pub mod controller_ordinals {
260 pub const VSOCK_CONNECT: u64 = 0x494a469a8943213b;
261 pub const SPAWN_CONSOLE: u64 = 0x76eb46fdc63aa8b8;
262 pub const GET_VMO_REFERENCES: u64 = 0x47a7f039bb97f173;
263 pub const GET_JOB_HANDLE: u64 = 0x60a31a248576ffea;
264 pub const SEND_SIGNAL: u64 = 0x253b1a0d3b9639e3;
265 pub const SET_SYSCALL_LOG_FILTER: u64 = 0x2d2a49963abdee9b;
266 pub const CLEAR_SYSCALL_LOG_FILTERS: u64 = 0xd3ee36073fdfdf0;
267}
268
269mod internal {
270 use super::*;
271 unsafe impl fidl::encoding::TypeMarker for SetSyscallLogFilterError {
272 type Owned = Self;
273
274 #[inline(always)]
275 fn inline_align(_context: fidl::encoding::Context) -> usize {
276 std::mem::align_of::<u32>()
277 }
278
279 #[inline(always)]
280 fn inline_size(_context: fidl::encoding::Context) -> usize {
281 std::mem::size_of::<u32>()
282 }
283
284 #[inline(always)]
285 fn encode_is_copy() -> bool {
286 false
287 }
288
289 #[inline(always)]
290 fn decode_is_copy() -> bool {
291 false
292 }
293 }
294
295 impl fidl::encoding::ValueTypeMarker for SetSyscallLogFilterError {
296 type Borrowed<'a> = Self;
297 #[inline(always)]
298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
299 *value
300 }
301 }
302
303 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
304 for SetSyscallLogFilterError
305 {
306 #[inline]
307 unsafe fn encode(
308 self,
309 encoder: &mut fidl::encoding::Encoder<'_, D>,
310 offset: usize,
311 _depth: fidl::encoding::Depth,
312 ) -> fidl::Result<()> {
313 encoder.debug_check_bounds::<Self>(offset);
314 encoder.write_num(self.into_primitive(), offset);
315 Ok(())
316 }
317 }
318
319 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
320 for SetSyscallLogFilterError
321 {
322 #[inline(always)]
323 fn new_empty() -> Self {
324 Self::unknown()
325 }
326
327 #[inline]
328 unsafe fn decode(
329 &mut self,
330 decoder: &mut fidl::encoding::Decoder<'_, D>,
331 offset: usize,
332 _depth: fidl::encoding::Depth,
333 ) -> fidl::Result<()> {
334 decoder.debug_check_bounds::<Self>(offset);
335 let prim = decoder.read_num::<u32>(offset);
336
337 *self = Self::from_primitive_allow_unknown(prim);
338 Ok(())
339 }
340 }
341 unsafe impl fidl::encoding::TypeMarker for SignalError {
342 type Owned = Self;
343
344 #[inline(always)]
345 fn inline_align(_context: fidl::encoding::Context) -> usize {
346 std::mem::align_of::<u32>()
347 }
348
349 #[inline(always)]
350 fn inline_size(_context: fidl::encoding::Context) -> usize {
351 std::mem::size_of::<u32>()
352 }
353
354 #[inline(always)]
355 fn encode_is_copy() -> bool {
356 false
357 }
358
359 #[inline(always)]
360 fn decode_is_copy() -> bool {
361 false
362 }
363 }
364
365 impl fidl::encoding::ValueTypeMarker for SignalError {
366 type Borrowed<'a> = Self;
367 #[inline(always)]
368 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
369 *value
370 }
371 }
372
373 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SignalError {
374 #[inline]
375 unsafe fn encode(
376 self,
377 encoder: &mut fidl::encoding::Encoder<'_, D>,
378 offset: usize,
379 _depth: fidl::encoding::Depth,
380 ) -> fidl::Result<()> {
381 encoder.debug_check_bounds::<Self>(offset);
382 encoder.write_num(self.into_primitive(), offset);
383 Ok(())
384 }
385 }
386
387 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SignalError {
388 #[inline(always)]
389 fn new_empty() -> Self {
390 Self::unknown()
391 }
392
393 #[inline]
394 unsafe fn decode(
395 &mut self,
396 decoder: &mut fidl::encoding::Decoder<'_, D>,
397 offset: usize,
398 _depth: fidl::encoding::Depth,
399 ) -> fidl::Result<()> {
400 decoder.debug_check_bounds::<Self>(offset);
401 let prim = decoder.read_num::<u32>(offset);
402
403 *self = Self::from_primitive_allow_unknown(prim);
404 Ok(())
405 }
406 }
407 unsafe impl fidl::encoding::TypeMarker for SpawnConsoleError {
408 type Owned = Self;
409
410 #[inline(always)]
411 fn inline_align(_context: fidl::encoding::Context) -> usize {
412 std::mem::align_of::<u32>()
413 }
414
415 #[inline(always)]
416 fn inline_size(_context: fidl::encoding::Context) -> usize {
417 std::mem::size_of::<u32>()
418 }
419
420 #[inline(always)]
421 fn encode_is_copy() -> bool {
422 false
423 }
424
425 #[inline(always)]
426 fn decode_is_copy() -> bool {
427 false
428 }
429 }
430
431 impl fidl::encoding::ValueTypeMarker for SpawnConsoleError {
432 type Borrowed<'a> = Self;
433 #[inline(always)]
434 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
435 *value
436 }
437 }
438
439 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
440 for SpawnConsoleError
441 {
442 #[inline]
443 unsafe fn encode(
444 self,
445 encoder: &mut fidl::encoding::Encoder<'_, D>,
446 offset: usize,
447 _depth: fidl::encoding::Depth,
448 ) -> fidl::Result<()> {
449 encoder.debug_check_bounds::<Self>(offset);
450 encoder.write_num(self.into_primitive(), offset);
451 Ok(())
452 }
453 }
454
455 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SpawnConsoleError {
456 #[inline(always)]
457 fn new_empty() -> Self {
458 Self::unknown()
459 }
460
461 #[inline]
462 unsafe fn decode(
463 &mut self,
464 decoder: &mut fidl::encoding::Decoder<'_, D>,
465 offset: usize,
466 _depth: fidl::encoding::Depth,
467 ) -> fidl::Result<()> {
468 decoder.debug_check_bounds::<Self>(offset);
469 let prim = decoder.read_num::<u32>(offset);
470
471 *self = Self::from_primitive_allow_unknown(prim);
472 Ok(())
473 }
474 }
475
476 impl fidl::encoding::ValueTypeMarker for ConsoleWindowSize {
477 type Borrowed<'a> = &'a Self;
478 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
479 value
480 }
481 }
482
483 unsafe impl fidl::encoding::TypeMarker for ConsoleWindowSize {
484 type Owned = Self;
485
486 #[inline(always)]
487 fn inline_align(_context: fidl::encoding::Context) -> usize {
488 2
489 }
490
491 #[inline(always)]
492 fn inline_size(_context: fidl::encoding::Context) -> usize {
493 8
494 }
495 #[inline(always)]
496 fn encode_is_copy() -> bool {
497 true
498 }
499
500 #[inline(always)]
501 fn decode_is_copy() -> bool {
502 true
503 }
504 }
505
506 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConsoleWindowSize, D>
507 for &ConsoleWindowSize
508 {
509 #[inline]
510 unsafe fn encode(
511 self,
512 encoder: &mut fidl::encoding::Encoder<'_, D>,
513 offset: usize,
514 _depth: fidl::encoding::Depth,
515 ) -> fidl::Result<()> {
516 encoder.debug_check_bounds::<ConsoleWindowSize>(offset);
517 unsafe {
518 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
520 (buf_ptr as *mut ConsoleWindowSize)
521 .write_unaligned((self as *const ConsoleWindowSize).read());
522 }
525 Ok(())
526 }
527 }
528 unsafe impl<
529 D: fidl::encoding::ResourceDialect,
530 T0: fidl::encoding::Encode<u16, D>,
531 T1: fidl::encoding::Encode<u16, D>,
532 T2: fidl::encoding::Encode<u16, D>,
533 T3: fidl::encoding::Encode<u16, D>,
534 > fidl::encoding::Encode<ConsoleWindowSize, D> for (T0, T1, T2, T3)
535 {
536 #[inline]
537 unsafe fn encode(
538 self,
539 encoder: &mut fidl::encoding::Encoder<'_, D>,
540 offset: usize,
541 depth: fidl::encoding::Depth,
542 ) -> fidl::Result<()> {
543 encoder.debug_check_bounds::<ConsoleWindowSize>(offset);
544 self.0.encode(encoder, offset + 0, depth)?;
548 self.1.encode(encoder, offset + 2, depth)?;
549 self.2.encode(encoder, offset + 4, depth)?;
550 self.3.encode(encoder, offset + 6, depth)?;
551 Ok(())
552 }
553 }
554
555 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConsoleWindowSize {
556 #[inline(always)]
557 fn new_empty() -> Self {
558 Self {
559 rows: fidl::new_empty!(u16, D),
560 cols: fidl::new_empty!(u16, D),
561 x_pixels: fidl::new_empty!(u16, D),
562 y_pixels: fidl::new_empty!(u16, D),
563 }
564 }
565
566 #[inline]
567 unsafe fn decode(
568 &mut self,
569 decoder: &mut fidl::encoding::Decoder<'_, D>,
570 offset: usize,
571 _depth: fidl::encoding::Depth,
572 ) -> fidl::Result<()> {
573 decoder.debug_check_bounds::<Self>(offset);
574 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
575 unsafe {
578 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
579 }
580 Ok(())
581 }
582 }
583
584 impl fidl::encoding::ValueTypeMarker for ControllerSpawnConsoleResponse {
585 type Borrowed<'a> = &'a Self;
586 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
587 value
588 }
589 }
590
591 unsafe impl fidl::encoding::TypeMarker for ControllerSpawnConsoleResponse {
592 type Owned = Self;
593
594 #[inline(always)]
595 fn inline_align(_context: fidl::encoding::Context) -> usize {
596 1
597 }
598
599 #[inline(always)]
600 fn inline_size(_context: fidl::encoding::Context) -> usize {
601 1
602 }
603 #[inline(always)]
604 fn encode_is_copy() -> bool {
605 true
606 }
607
608 #[inline(always)]
609 fn decode_is_copy() -> bool {
610 true
611 }
612 }
613
614 unsafe impl<D: fidl::encoding::ResourceDialect>
615 fidl::encoding::Encode<ControllerSpawnConsoleResponse, D>
616 for &ControllerSpawnConsoleResponse
617 {
618 #[inline]
619 unsafe fn encode(
620 self,
621 encoder: &mut fidl::encoding::Encoder<'_, D>,
622 offset: usize,
623 _depth: fidl::encoding::Depth,
624 ) -> fidl::Result<()> {
625 encoder.debug_check_bounds::<ControllerSpawnConsoleResponse>(offset);
626 unsafe {
627 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
629 (buf_ptr as *mut ControllerSpawnConsoleResponse)
630 .write_unaligned((self as *const ControllerSpawnConsoleResponse).read());
631 }
634 Ok(())
635 }
636 }
637 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
638 fidl::encoding::Encode<ControllerSpawnConsoleResponse, D> for (T0,)
639 {
640 #[inline]
641 unsafe fn encode(
642 self,
643 encoder: &mut fidl::encoding::Encoder<'_, D>,
644 offset: usize,
645 depth: fidl::encoding::Depth,
646 ) -> fidl::Result<()> {
647 encoder.debug_check_bounds::<ControllerSpawnConsoleResponse>(offset);
648 self.0.encode(encoder, offset + 0, depth)?;
652 Ok(())
653 }
654 }
655
656 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
657 for ControllerSpawnConsoleResponse
658 {
659 #[inline(always)]
660 fn new_empty() -> Self {
661 Self { exit_code: fidl::new_empty!(u8, D) }
662 }
663
664 #[inline]
665 unsafe fn decode(
666 &mut self,
667 decoder: &mut fidl::encoding::Decoder<'_, D>,
668 offset: usize,
669 _depth: fidl::encoding::Depth,
670 ) -> fidl::Result<()> {
671 decoder.debug_check_bounds::<Self>(offset);
672 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
673 unsafe {
676 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
677 }
678 Ok(())
679 }
680 }
681
682 impl ControllerGetVmoReferencesRequest {
683 #[inline(always)]
684 fn max_ordinal_present(&self) -> u64 {
685 if let Some(_) = self.koid {
686 return 1;
687 }
688 0
689 }
690 }
691
692 impl fidl::encoding::ValueTypeMarker for ControllerGetVmoReferencesRequest {
693 type Borrowed<'a> = &'a Self;
694 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
695 value
696 }
697 }
698
699 unsafe impl fidl::encoding::TypeMarker for ControllerGetVmoReferencesRequest {
700 type Owned = Self;
701
702 #[inline(always)]
703 fn inline_align(_context: fidl::encoding::Context) -> usize {
704 8
705 }
706
707 #[inline(always)]
708 fn inline_size(_context: fidl::encoding::Context) -> usize {
709 16
710 }
711 }
712
713 unsafe impl<D: fidl::encoding::ResourceDialect>
714 fidl::encoding::Encode<ControllerGetVmoReferencesRequest, D>
715 for &ControllerGetVmoReferencesRequest
716 {
717 unsafe fn encode(
718 self,
719 encoder: &mut fidl::encoding::Encoder<'_, D>,
720 offset: usize,
721 mut depth: fidl::encoding::Depth,
722 ) -> fidl::Result<()> {
723 encoder.debug_check_bounds::<ControllerGetVmoReferencesRequest>(offset);
724 let max_ordinal: u64 = self.max_ordinal_present();
726 encoder.write_num(max_ordinal, offset);
727 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
728 if max_ordinal == 0 {
730 return Ok(());
731 }
732 depth.increment()?;
733 let envelope_size = 8;
734 let bytes_len = max_ordinal as usize * envelope_size;
735 #[allow(unused_variables)]
736 let offset = encoder.out_of_line_offset(bytes_len);
737 let mut _prev_end_offset: usize = 0;
738 if 1 > max_ordinal {
739 return Ok(());
740 }
741
742 let cur_offset: usize = (1 - 1) * envelope_size;
745
746 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
748
749 fidl::encoding::encode_in_envelope_optional::<u64, D>(
754 self.koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
755 encoder,
756 offset + cur_offset,
757 depth,
758 )?;
759
760 _prev_end_offset = cur_offset + envelope_size;
761
762 Ok(())
763 }
764 }
765
766 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
767 for ControllerGetVmoReferencesRequest
768 {
769 #[inline(always)]
770 fn new_empty() -> Self {
771 Self::default()
772 }
773
774 unsafe fn decode(
775 &mut self,
776 decoder: &mut fidl::encoding::Decoder<'_, D>,
777 offset: usize,
778 mut depth: fidl::encoding::Depth,
779 ) -> fidl::Result<()> {
780 decoder.debug_check_bounds::<Self>(offset);
781 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
782 None => return Err(fidl::Error::NotNullable),
783 Some(len) => len,
784 };
785 if len == 0 {
787 return Ok(());
788 };
789 depth.increment()?;
790 let envelope_size = 8;
791 let bytes_len = len * envelope_size;
792 let offset = decoder.out_of_line_offset(bytes_len)?;
793 let mut _next_ordinal_to_read = 0;
795 let mut next_offset = offset;
796 let end_offset = offset + bytes_len;
797 _next_ordinal_to_read += 1;
798 if next_offset >= end_offset {
799 return Ok(());
800 }
801
802 while _next_ordinal_to_read < 1 {
804 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
805 _next_ordinal_to_read += 1;
806 next_offset += envelope_size;
807 }
808
809 let next_out_of_line = decoder.next_out_of_line();
810 let handles_before = decoder.remaining_handles();
811 if let Some((inlined, num_bytes, num_handles)) =
812 fidl::encoding::decode_envelope_header(decoder, next_offset)?
813 {
814 let member_inline_size =
815 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
816 if inlined != (member_inline_size <= 4) {
817 return Err(fidl::Error::InvalidInlineBitInEnvelope);
818 }
819 let inner_offset;
820 let mut inner_depth = depth.clone();
821 if inlined {
822 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
823 inner_offset = next_offset;
824 } else {
825 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
826 inner_depth.increment()?;
827 }
828 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
829 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
830 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
831 {
832 return Err(fidl::Error::InvalidNumBytesInEnvelope);
833 }
834 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
835 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
836 }
837 }
838
839 next_offset += envelope_size;
840
841 while next_offset < end_offset {
843 _next_ordinal_to_read += 1;
844 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
845 next_offset += envelope_size;
846 }
847
848 Ok(())
849 }
850 }
851
852 impl ControllerSendSignalRequest {
853 #[inline(always)]
854 fn max_ordinal_present(&self) -> u64 {
855 if let Some(_) = self.signal {
856 return 2;
857 }
858 if let Some(_) = self.pid {
859 return 1;
860 }
861 0
862 }
863 }
864
865 impl fidl::encoding::ValueTypeMarker for ControllerSendSignalRequest {
866 type Borrowed<'a> = &'a Self;
867 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
868 value
869 }
870 }
871
872 unsafe impl fidl::encoding::TypeMarker for ControllerSendSignalRequest {
873 type Owned = Self;
874
875 #[inline(always)]
876 fn inline_align(_context: fidl::encoding::Context) -> usize {
877 8
878 }
879
880 #[inline(always)]
881 fn inline_size(_context: fidl::encoding::Context) -> usize {
882 16
883 }
884 }
885
886 unsafe impl<D: fidl::encoding::ResourceDialect>
887 fidl::encoding::Encode<ControllerSendSignalRequest, D> for &ControllerSendSignalRequest
888 {
889 unsafe fn encode(
890 self,
891 encoder: &mut fidl::encoding::Encoder<'_, D>,
892 offset: usize,
893 mut depth: fidl::encoding::Depth,
894 ) -> fidl::Result<()> {
895 encoder.debug_check_bounds::<ControllerSendSignalRequest>(offset);
896 let max_ordinal: u64 = self.max_ordinal_present();
898 encoder.write_num(max_ordinal, offset);
899 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
900 if max_ordinal == 0 {
902 return Ok(());
903 }
904 depth.increment()?;
905 let envelope_size = 8;
906 let bytes_len = max_ordinal as usize * envelope_size;
907 #[allow(unused_variables)]
908 let offset = encoder.out_of_line_offset(bytes_len);
909 let mut _prev_end_offset: usize = 0;
910 if 1 > max_ordinal {
911 return Ok(());
912 }
913
914 let cur_offset: usize = (1 - 1) * envelope_size;
917
918 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
920
921 fidl::encoding::encode_in_envelope_optional::<i32, D>(
926 self.pid.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
927 encoder,
928 offset + cur_offset,
929 depth,
930 )?;
931
932 _prev_end_offset = cur_offset + envelope_size;
933 if 2 > max_ordinal {
934 return Ok(());
935 }
936
937 let cur_offset: usize = (2 - 1) * envelope_size;
940
941 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
943
944 fidl::encoding::encode_in_envelope_optional::<u64, D>(
949 self.signal.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
950 encoder,
951 offset + cur_offset,
952 depth,
953 )?;
954
955 _prev_end_offset = cur_offset + envelope_size;
956
957 Ok(())
958 }
959 }
960
961 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
962 for ControllerSendSignalRequest
963 {
964 #[inline(always)]
965 fn new_empty() -> Self {
966 Self::default()
967 }
968
969 unsafe fn decode(
970 &mut self,
971 decoder: &mut fidl::encoding::Decoder<'_, D>,
972 offset: usize,
973 mut depth: fidl::encoding::Depth,
974 ) -> fidl::Result<()> {
975 decoder.debug_check_bounds::<Self>(offset);
976 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
977 None => return Err(fidl::Error::NotNullable),
978 Some(len) => len,
979 };
980 if len == 0 {
982 return Ok(());
983 };
984 depth.increment()?;
985 let envelope_size = 8;
986 let bytes_len = len * envelope_size;
987 let offset = decoder.out_of_line_offset(bytes_len)?;
988 let mut _next_ordinal_to_read = 0;
990 let mut next_offset = offset;
991 let end_offset = offset + bytes_len;
992 _next_ordinal_to_read += 1;
993 if next_offset >= end_offset {
994 return Ok(());
995 }
996
997 while _next_ordinal_to_read < 1 {
999 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1000 _next_ordinal_to_read += 1;
1001 next_offset += envelope_size;
1002 }
1003
1004 let next_out_of_line = decoder.next_out_of_line();
1005 let handles_before = decoder.remaining_handles();
1006 if let Some((inlined, num_bytes, num_handles)) =
1007 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1008 {
1009 let member_inline_size =
1010 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1011 if inlined != (member_inline_size <= 4) {
1012 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1013 }
1014 let inner_offset;
1015 let mut inner_depth = depth.clone();
1016 if inlined {
1017 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1018 inner_offset = next_offset;
1019 } else {
1020 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1021 inner_depth.increment()?;
1022 }
1023 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(i32, D));
1024 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
1025 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1026 {
1027 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1028 }
1029 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1030 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1031 }
1032 }
1033
1034 next_offset += envelope_size;
1035 _next_ordinal_to_read += 1;
1036 if next_offset >= end_offset {
1037 return Ok(());
1038 }
1039
1040 while _next_ordinal_to_read < 2 {
1042 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1043 _next_ordinal_to_read += 1;
1044 next_offset += envelope_size;
1045 }
1046
1047 let next_out_of_line = decoder.next_out_of_line();
1048 let handles_before = decoder.remaining_handles();
1049 if let Some((inlined, num_bytes, num_handles)) =
1050 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1051 {
1052 let member_inline_size =
1053 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1054 if inlined != (member_inline_size <= 4) {
1055 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1056 }
1057 let inner_offset;
1058 let mut inner_depth = depth.clone();
1059 if inlined {
1060 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1061 inner_offset = next_offset;
1062 } else {
1063 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1064 inner_depth.increment()?;
1065 }
1066 let val_ref = self.signal.get_or_insert_with(|| fidl::new_empty!(u64, D));
1067 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1068 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1069 {
1070 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1071 }
1072 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1073 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1074 }
1075 }
1076
1077 next_offset += envelope_size;
1078
1079 while next_offset < end_offset {
1081 _next_ordinal_to_read += 1;
1082 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1083 next_offset += envelope_size;
1084 }
1085
1086 Ok(())
1087 }
1088 }
1089
1090 impl ControllerSetSyscallLogFilterRequest {
1091 #[inline(always)]
1092 fn max_ordinal_present(&self) -> u64 {
1093 if let Some(_) = self.process_name {
1094 return 1;
1095 }
1096 0
1097 }
1098 }
1099
1100 impl fidl::encoding::ValueTypeMarker for ControllerSetSyscallLogFilterRequest {
1101 type Borrowed<'a> = &'a Self;
1102 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1103 value
1104 }
1105 }
1106
1107 unsafe impl fidl::encoding::TypeMarker for ControllerSetSyscallLogFilterRequest {
1108 type Owned = Self;
1109
1110 #[inline(always)]
1111 fn inline_align(_context: fidl::encoding::Context) -> usize {
1112 8
1113 }
1114
1115 #[inline(always)]
1116 fn inline_size(_context: fidl::encoding::Context) -> usize {
1117 16
1118 }
1119 }
1120
1121 unsafe impl<D: fidl::encoding::ResourceDialect>
1122 fidl::encoding::Encode<ControllerSetSyscallLogFilterRequest, D>
1123 for &ControllerSetSyscallLogFilterRequest
1124 {
1125 unsafe fn encode(
1126 self,
1127 encoder: &mut fidl::encoding::Encoder<'_, D>,
1128 offset: usize,
1129 mut depth: fidl::encoding::Depth,
1130 ) -> fidl::Result<()> {
1131 encoder.debug_check_bounds::<ControllerSetSyscallLogFilterRequest>(offset);
1132 let max_ordinal: u64 = self.max_ordinal_present();
1134 encoder.write_num(max_ordinal, offset);
1135 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1136 if max_ordinal == 0 {
1138 return Ok(());
1139 }
1140 depth.increment()?;
1141 let envelope_size = 8;
1142 let bytes_len = max_ordinal as usize * envelope_size;
1143 #[allow(unused_variables)]
1144 let offset = encoder.out_of_line_offset(bytes_len);
1145 let mut _prev_end_offset: usize = 0;
1146 if 1 > max_ordinal {
1147 return Ok(());
1148 }
1149
1150 let cur_offset: usize = (1 - 1) * envelope_size;
1153
1154 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1156
1157 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
1162 self.process_name.as_ref().map(
1163 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
1164 ),
1165 encoder,
1166 offset + cur_offset,
1167 depth,
1168 )?;
1169
1170 _prev_end_offset = cur_offset + envelope_size;
1171
1172 Ok(())
1173 }
1174 }
1175
1176 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1177 for ControllerSetSyscallLogFilterRequest
1178 {
1179 #[inline(always)]
1180 fn new_empty() -> Self {
1181 Self::default()
1182 }
1183
1184 unsafe fn decode(
1185 &mut self,
1186 decoder: &mut fidl::encoding::Decoder<'_, D>,
1187 offset: usize,
1188 mut depth: fidl::encoding::Depth,
1189 ) -> fidl::Result<()> {
1190 decoder.debug_check_bounds::<Self>(offset);
1191 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1192 None => return Err(fidl::Error::NotNullable),
1193 Some(len) => len,
1194 };
1195 if len == 0 {
1197 return Ok(());
1198 };
1199 depth.increment()?;
1200 let envelope_size = 8;
1201 let bytes_len = len * envelope_size;
1202 let offset = decoder.out_of_line_offset(bytes_len)?;
1203 let mut _next_ordinal_to_read = 0;
1205 let mut next_offset = offset;
1206 let end_offset = offset + bytes_len;
1207 _next_ordinal_to_read += 1;
1208 if next_offset >= end_offset {
1209 return Ok(());
1210 }
1211
1212 while _next_ordinal_to_read < 1 {
1214 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1215 _next_ordinal_to_read += 1;
1216 next_offset += envelope_size;
1217 }
1218
1219 let next_out_of_line = decoder.next_out_of_line();
1220 let handles_before = decoder.remaining_handles();
1221 if let Some((inlined, num_bytes, num_handles)) =
1222 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1223 {
1224 let member_inline_size =
1225 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
1226 decoder.context,
1227 );
1228 if inlined != (member_inline_size <= 4) {
1229 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1230 }
1231 let inner_offset;
1232 let mut inner_depth = depth.clone();
1233 if inlined {
1234 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1235 inner_offset = next_offset;
1236 } else {
1237 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1238 inner_depth.increment()?;
1239 }
1240 let val_ref = self
1241 .process_name
1242 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
1243 fidl::decode!(
1244 fidl::encoding::UnboundedString,
1245 D,
1246 val_ref,
1247 decoder,
1248 inner_offset,
1249 inner_depth
1250 )?;
1251 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1252 {
1253 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1254 }
1255 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1256 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1257 }
1258 }
1259
1260 next_offset += envelope_size;
1261
1262 while next_offset < end_offset {
1264 _next_ordinal_to_read += 1;
1265 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1266 next_offset += envelope_size;
1267 }
1268
1269 Ok(())
1270 }
1271 }
1272
1273 impl ControllerGetVmoReferencesResponse {
1274 #[inline(always)]
1275 fn max_ordinal_present(&self) -> u64 {
1276 if let Some(_) = self.references {
1277 return 1;
1278 }
1279 0
1280 }
1281 }
1282
1283 impl fidl::encoding::ValueTypeMarker for ControllerGetVmoReferencesResponse {
1284 type Borrowed<'a> = &'a Self;
1285 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1286 value
1287 }
1288 }
1289
1290 unsafe impl fidl::encoding::TypeMarker for ControllerGetVmoReferencesResponse {
1291 type Owned = Self;
1292
1293 #[inline(always)]
1294 fn inline_align(_context: fidl::encoding::Context) -> usize {
1295 8
1296 }
1297
1298 #[inline(always)]
1299 fn inline_size(_context: fidl::encoding::Context) -> usize {
1300 16
1301 }
1302 }
1303
1304 unsafe impl<D: fidl::encoding::ResourceDialect>
1305 fidl::encoding::Encode<ControllerGetVmoReferencesResponse, D>
1306 for &ControllerGetVmoReferencesResponse
1307 {
1308 unsafe fn encode(
1309 self,
1310 encoder: &mut fidl::encoding::Encoder<'_, D>,
1311 offset: usize,
1312 mut depth: fidl::encoding::Depth,
1313 ) -> fidl::Result<()> {
1314 encoder.debug_check_bounds::<ControllerGetVmoReferencesResponse>(offset);
1315 let max_ordinal: u64 = self.max_ordinal_present();
1317 encoder.write_num(max_ordinal, offset);
1318 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1319 if max_ordinal == 0 {
1321 return Ok(());
1322 }
1323 depth.increment()?;
1324 let envelope_size = 8;
1325 let bytes_len = max_ordinal as usize * envelope_size;
1326 #[allow(unused_variables)]
1327 let offset = encoder.out_of_line_offset(bytes_len);
1328 let mut _prev_end_offset: usize = 0;
1329 if 1 > max_ordinal {
1330 return Ok(());
1331 }
1332
1333 let cur_offset: usize = (1 - 1) * envelope_size;
1336
1337 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1339
1340 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<VmoReference>, D>(
1345 self.references.as_ref().map(<fidl::encoding::UnboundedVector<VmoReference> as fidl::encoding::ValueTypeMarker>::borrow),
1346 encoder, offset + cur_offset, depth
1347 )?;
1348
1349 _prev_end_offset = cur_offset + envelope_size;
1350
1351 Ok(())
1352 }
1353 }
1354
1355 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1356 for ControllerGetVmoReferencesResponse
1357 {
1358 #[inline(always)]
1359 fn new_empty() -> Self {
1360 Self::default()
1361 }
1362
1363 unsafe fn decode(
1364 &mut self,
1365 decoder: &mut fidl::encoding::Decoder<'_, D>,
1366 offset: usize,
1367 mut depth: fidl::encoding::Depth,
1368 ) -> fidl::Result<()> {
1369 decoder.debug_check_bounds::<Self>(offset);
1370 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1371 None => return Err(fidl::Error::NotNullable),
1372 Some(len) => len,
1373 };
1374 if len == 0 {
1376 return Ok(());
1377 };
1378 depth.increment()?;
1379 let envelope_size = 8;
1380 let bytes_len = len * envelope_size;
1381 let offset = decoder.out_of_line_offset(bytes_len)?;
1382 let mut _next_ordinal_to_read = 0;
1384 let mut next_offset = offset;
1385 let end_offset = offset + bytes_len;
1386 _next_ordinal_to_read += 1;
1387 if next_offset >= end_offset {
1388 return Ok(());
1389 }
1390
1391 while _next_ordinal_to_read < 1 {
1393 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1394 _next_ordinal_to_read += 1;
1395 next_offset += envelope_size;
1396 }
1397
1398 let next_out_of_line = decoder.next_out_of_line();
1399 let handles_before = decoder.remaining_handles();
1400 if let Some((inlined, num_bytes, num_handles)) =
1401 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1402 {
1403 let member_inline_size = <fidl::encoding::UnboundedVector<VmoReference> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1404 if inlined != (member_inline_size <= 4) {
1405 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1406 }
1407 let inner_offset;
1408 let mut inner_depth = depth.clone();
1409 if inlined {
1410 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1411 inner_offset = next_offset;
1412 } else {
1413 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1414 inner_depth.increment()?;
1415 }
1416 let val_ref = self.references.get_or_insert_with(|| {
1417 fidl::new_empty!(fidl::encoding::UnboundedVector<VmoReference>, D)
1418 });
1419 fidl::decode!(
1420 fidl::encoding::UnboundedVector<VmoReference>,
1421 D,
1422 val_ref,
1423 decoder,
1424 inner_offset,
1425 inner_depth
1426 )?;
1427 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1428 {
1429 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1430 }
1431 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1432 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1433 }
1434 }
1435
1436 next_offset += envelope_size;
1437
1438 while next_offset < end_offset {
1440 _next_ordinal_to_read += 1;
1441 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1442 next_offset += envelope_size;
1443 }
1444
1445 Ok(())
1446 }
1447 }
1448
1449 impl VmoReference {
1450 #[inline(always)]
1451 fn max_ordinal_present(&self) -> u64 {
1452 if let Some(_) = self.koid {
1453 return 4;
1454 }
1455 if let Some(_) = self.fd {
1456 return 3;
1457 }
1458 if let Some(_) = self.pid {
1459 return 2;
1460 }
1461 if let Some(_) = self.process_name {
1462 return 1;
1463 }
1464 0
1465 }
1466 }
1467
1468 impl fidl::encoding::ValueTypeMarker for VmoReference {
1469 type Borrowed<'a> = &'a Self;
1470 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1471 value
1472 }
1473 }
1474
1475 unsafe impl fidl::encoding::TypeMarker for VmoReference {
1476 type Owned = Self;
1477
1478 #[inline(always)]
1479 fn inline_align(_context: fidl::encoding::Context) -> usize {
1480 8
1481 }
1482
1483 #[inline(always)]
1484 fn inline_size(_context: fidl::encoding::Context) -> usize {
1485 16
1486 }
1487 }
1488
1489 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VmoReference, D>
1490 for &VmoReference
1491 {
1492 unsafe fn encode(
1493 self,
1494 encoder: &mut fidl::encoding::Encoder<'_, D>,
1495 offset: usize,
1496 mut depth: fidl::encoding::Depth,
1497 ) -> fidl::Result<()> {
1498 encoder.debug_check_bounds::<VmoReference>(offset);
1499 let max_ordinal: u64 = self.max_ordinal_present();
1501 encoder.write_num(max_ordinal, offset);
1502 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1503 if max_ordinal == 0 {
1505 return Ok(());
1506 }
1507 depth.increment()?;
1508 let envelope_size = 8;
1509 let bytes_len = max_ordinal as usize * envelope_size;
1510 #[allow(unused_variables)]
1511 let offset = encoder.out_of_line_offset(bytes_len);
1512 let mut _prev_end_offset: usize = 0;
1513 if 1 > max_ordinal {
1514 return Ok(());
1515 }
1516
1517 let cur_offset: usize = (1 - 1) * envelope_size;
1520
1521 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1523
1524 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
1529 self.process_name.as_ref().map(
1530 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
1531 ),
1532 encoder,
1533 offset + cur_offset,
1534 depth,
1535 )?;
1536
1537 _prev_end_offset = cur_offset + envelope_size;
1538 if 2 > max_ordinal {
1539 return Ok(());
1540 }
1541
1542 let cur_offset: usize = (2 - 1) * envelope_size;
1545
1546 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1548
1549 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1554 self.pid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1555 encoder,
1556 offset + cur_offset,
1557 depth,
1558 )?;
1559
1560 _prev_end_offset = cur_offset + envelope_size;
1561 if 3 > max_ordinal {
1562 return Ok(());
1563 }
1564
1565 let cur_offset: usize = (3 - 1) * envelope_size;
1568
1569 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1571
1572 fidl::encoding::encode_in_envelope_optional::<i32, D>(
1577 self.fd.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
1578 encoder,
1579 offset + cur_offset,
1580 depth,
1581 )?;
1582
1583 _prev_end_offset = cur_offset + envelope_size;
1584 if 4 > max_ordinal {
1585 return Ok(());
1586 }
1587
1588 let cur_offset: usize = (4 - 1) * envelope_size;
1591
1592 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1594
1595 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1600 self.koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1601 encoder,
1602 offset + cur_offset,
1603 depth,
1604 )?;
1605
1606 _prev_end_offset = cur_offset + envelope_size;
1607
1608 Ok(())
1609 }
1610 }
1611
1612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VmoReference {
1613 #[inline(always)]
1614 fn new_empty() -> Self {
1615 Self::default()
1616 }
1617
1618 unsafe fn decode(
1619 &mut self,
1620 decoder: &mut fidl::encoding::Decoder<'_, D>,
1621 offset: usize,
1622 mut depth: fidl::encoding::Depth,
1623 ) -> fidl::Result<()> {
1624 decoder.debug_check_bounds::<Self>(offset);
1625 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1626 None => return Err(fidl::Error::NotNullable),
1627 Some(len) => len,
1628 };
1629 if len == 0 {
1631 return Ok(());
1632 };
1633 depth.increment()?;
1634 let envelope_size = 8;
1635 let bytes_len = len * envelope_size;
1636 let offset = decoder.out_of_line_offset(bytes_len)?;
1637 let mut _next_ordinal_to_read = 0;
1639 let mut next_offset = offset;
1640 let end_offset = offset + bytes_len;
1641 _next_ordinal_to_read += 1;
1642 if next_offset >= end_offset {
1643 return Ok(());
1644 }
1645
1646 while _next_ordinal_to_read < 1 {
1648 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1649 _next_ordinal_to_read += 1;
1650 next_offset += envelope_size;
1651 }
1652
1653 let next_out_of_line = decoder.next_out_of_line();
1654 let handles_before = decoder.remaining_handles();
1655 if let Some((inlined, num_bytes, num_handles)) =
1656 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1657 {
1658 let member_inline_size =
1659 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
1660 decoder.context,
1661 );
1662 if inlined != (member_inline_size <= 4) {
1663 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1664 }
1665 let inner_offset;
1666 let mut inner_depth = depth.clone();
1667 if inlined {
1668 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1669 inner_offset = next_offset;
1670 } else {
1671 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1672 inner_depth.increment()?;
1673 }
1674 let val_ref = self
1675 .process_name
1676 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
1677 fidl::decode!(
1678 fidl::encoding::UnboundedString,
1679 D,
1680 val_ref,
1681 decoder,
1682 inner_offset,
1683 inner_depth
1684 )?;
1685 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1686 {
1687 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1688 }
1689 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1690 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1691 }
1692 }
1693
1694 next_offset += envelope_size;
1695 _next_ordinal_to_read += 1;
1696 if next_offset >= end_offset {
1697 return Ok(());
1698 }
1699
1700 while _next_ordinal_to_read < 2 {
1702 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1703 _next_ordinal_to_read += 1;
1704 next_offset += envelope_size;
1705 }
1706
1707 let next_out_of_line = decoder.next_out_of_line();
1708 let handles_before = decoder.remaining_handles();
1709 if let Some((inlined, num_bytes, num_handles)) =
1710 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1711 {
1712 let member_inline_size =
1713 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1714 if inlined != (member_inline_size <= 4) {
1715 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1716 }
1717 let inner_offset;
1718 let mut inner_depth = depth.clone();
1719 if inlined {
1720 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1721 inner_offset = next_offset;
1722 } else {
1723 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1724 inner_depth.increment()?;
1725 }
1726 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(u64, D));
1727 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1728 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1729 {
1730 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1731 }
1732 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1733 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1734 }
1735 }
1736
1737 next_offset += envelope_size;
1738 _next_ordinal_to_read += 1;
1739 if next_offset >= end_offset {
1740 return Ok(());
1741 }
1742
1743 while _next_ordinal_to_read < 3 {
1745 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1746 _next_ordinal_to_read += 1;
1747 next_offset += envelope_size;
1748 }
1749
1750 let next_out_of_line = decoder.next_out_of_line();
1751 let handles_before = decoder.remaining_handles();
1752 if let Some((inlined, num_bytes, num_handles)) =
1753 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1754 {
1755 let member_inline_size =
1756 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1757 if inlined != (member_inline_size <= 4) {
1758 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1759 }
1760 let inner_offset;
1761 let mut inner_depth = depth.clone();
1762 if inlined {
1763 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1764 inner_offset = next_offset;
1765 } else {
1766 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1767 inner_depth.increment()?;
1768 }
1769 let val_ref = self.fd.get_or_insert_with(|| fidl::new_empty!(i32, D));
1770 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
1771 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1772 {
1773 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1774 }
1775 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1776 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1777 }
1778 }
1779
1780 next_offset += envelope_size;
1781 _next_ordinal_to_read += 1;
1782 if next_offset >= end_offset {
1783 return Ok(());
1784 }
1785
1786 while _next_ordinal_to_read < 4 {
1788 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1789 _next_ordinal_to_read += 1;
1790 next_offset += envelope_size;
1791 }
1792
1793 let next_out_of_line = decoder.next_out_of_line();
1794 let handles_before = decoder.remaining_handles();
1795 if let Some((inlined, num_bytes, num_handles)) =
1796 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1797 {
1798 let member_inline_size =
1799 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1800 if inlined != (member_inline_size <= 4) {
1801 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1802 }
1803 let inner_offset;
1804 let mut inner_depth = depth.clone();
1805 if inlined {
1806 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1807 inner_offset = next_offset;
1808 } else {
1809 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1810 inner_depth.increment()?;
1811 }
1812 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
1813 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1814 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1815 {
1816 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1817 }
1818 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1819 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1820 }
1821 }
1822
1823 next_offset += envelope_size;
1824
1825 while next_offset < end_offset {
1827 _next_ordinal_to_read += 1;
1828 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1829 next_offset += envelope_size;
1830 }
1831
1832 Ok(())
1833 }
1834 }
1835}