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 InfoGetJobKoidResponse {
245 pub koid: Option<u64>,
246 #[doc(hidden)]
247 pub __source_breaking: fidl::marker::SourceBreaking,
248}
249
250impl fidl::Persistable for InfoGetJobKoidResponse {}
251
252#[derive(Clone, Debug, Default, PartialEq)]
253pub struct VmoReference {
254 pub process_name: Option<String>,
256 pub pid: Option<u64>,
258 pub fd: Option<i32>,
260 pub koid: Option<u64>,
262 #[doc(hidden)]
263 pub __source_breaking: fidl::marker::SourceBreaking,
264}
265
266impl fidl::Persistable for VmoReference {}
267
268pub mod controller_ordinals {
269 pub const VSOCK_CONNECT: u64 = 0x494a469a8943213b;
270 pub const SPAWN_CONSOLE: u64 = 0x76eb46fdc63aa8b8;
271 pub const GET_VMO_REFERENCES: u64 = 0x47a7f039bb97f173;
272 pub const GET_JOB_HANDLE: u64 = 0x60a31a248576ffea;
273 pub const SEND_SIGNAL: u64 = 0x253b1a0d3b9639e3;
274 pub const SET_SYSCALL_LOG_FILTER: u64 = 0x2d2a49963abdee9b;
275 pub const CLEAR_SYSCALL_LOG_FILTERS: u64 = 0xd3ee36073fdfdf0;
276}
277
278pub mod info_ordinals {
279 pub const GET_JOB_KOID: u64 = 0x5b60b29800a9a977;
280}
281
282mod internal {
283 use super::*;
284 unsafe impl fidl::encoding::TypeMarker for SetSyscallLogFilterError {
285 type Owned = Self;
286
287 #[inline(always)]
288 fn inline_align(_context: fidl::encoding::Context) -> usize {
289 std::mem::align_of::<u32>()
290 }
291
292 #[inline(always)]
293 fn inline_size(_context: fidl::encoding::Context) -> usize {
294 std::mem::size_of::<u32>()
295 }
296
297 #[inline(always)]
298 fn encode_is_copy() -> bool {
299 false
300 }
301
302 #[inline(always)]
303 fn decode_is_copy() -> bool {
304 false
305 }
306 }
307
308 impl fidl::encoding::ValueTypeMarker for SetSyscallLogFilterError {
309 type Borrowed<'a> = Self;
310 #[inline(always)]
311 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
312 *value
313 }
314 }
315
316 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
317 for SetSyscallLogFilterError
318 {
319 #[inline]
320 unsafe fn encode(
321 self,
322 encoder: &mut fidl::encoding::Encoder<'_, D>,
323 offset: usize,
324 _depth: fidl::encoding::Depth,
325 ) -> fidl::Result<()> {
326 encoder.debug_check_bounds::<Self>(offset);
327 encoder.write_num(self.into_primitive(), offset);
328 Ok(())
329 }
330 }
331
332 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
333 for SetSyscallLogFilterError
334 {
335 #[inline(always)]
336 fn new_empty() -> Self {
337 Self::unknown()
338 }
339
340 #[inline]
341 unsafe fn decode(
342 &mut self,
343 decoder: &mut fidl::encoding::Decoder<'_, D>,
344 offset: usize,
345 _depth: fidl::encoding::Depth,
346 ) -> fidl::Result<()> {
347 decoder.debug_check_bounds::<Self>(offset);
348 let prim = decoder.read_num::<u32>(offset);
349
350 *self = Self::from_primitive_allow_unknown(prim);
351 Ok(())
352 }
353 }
354 unsafe impl fidl::encoding::TypeMarker for SignalError {
355 type Owned = Self;
356
357 #[inline(always)]
358 fn inline_align(_context: fidl::encoding::Context) -> usize {
359 std::mem::align_of::<u32>()
360 }
361
362 #[inline(always)]
363 fn inline_size(_context: fidl::encoding::Context) -> usize {
364 std::mem::size_of::<u32>()
365 }
366
367 #[inline(always)]
368 fn encode_is_copy() -> bool {
369 false
370 }
371
372 #[inline(always)]
373 fn decode_is_copy() -> bool {
374 false
375 }
376 }
377
378 impl fidl::encoding::ValueTypeMarker for SignalError {
379 type Borrowed<'a> = Self;
380 #[inline(always)]
381 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
382 *value
383 }
384 }
385
386 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for SignalError {
387 #[inline]
388 unsafe fn encode(
389 self,
390 encoder: &mut fidl::encoding::Encoder<'_, D>,
391 offset: usize,
392 _depth: fidl::encoding::Depth,
393 ) -> fidl::Result<()> {
394 encoder.debug_check_bounds::<Self>(offset);
395 encoder.write_num(self.into_primitive(), offset);
396 Ok(())
397 }
398 }
399
400 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SignalError {
401 #[inline(always)]
402 fn new_empty() -> Self {
403 Self::unknown()
404 }
405
406 #[inline]
407 unsafe fn decode(
408 &mut self,
409 decoder: &mut fidl::encoding::Decoder<'_, D>,
410 offset: usize,
411 _depth: fidl::encoding::Depth,
412 ) -> fidl::Result<()> {
413 decoder.debug_check_bounds::<Self>(offset);
414 let prim = decoder.read_num::<u32>(offset);
415
416 *self = Self::from_primitive_allow_unknown(prim);
417 Ok(())
418 }
419 }
420 unsafe impl fidl::encoding::TypeMarker for SpawnConsoleError {
421 type Owned = Self;
422
423 #[inline(always)]
424 fn inline_align(_context: fidl::encoding::Context) -> usize {
425 std::mem::align_of::<u32>()
426 }
427
428 #[inline(always)]
429 fn inline_size(_context: fidl::encoding::Context) -> usize {
430 std::mem::size_of::<u32>()
431 }
432
433 #[inline(always)]
434 fn encode_is_copy() -> bool {
435 false
436 }
437
438 #[inline(always)]
439 fn decode_is_copy() -> bool {
440 false
441 }
442 }
443
444 impl fidl::encoding::ValueTypeMarker for SpawnConsoleError {
445 type Borrowed<'a> = Self;
446 #[inline(always)]
447 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
448 *value
449 }
450 }
451
452 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
453 for SpawnConsoleError
454 {
455 #[inline]
456 unsafe fn encode(
457 self,
458 encoder: &mut fidl::encoding::Encoder<'_, D>,
459 offset: usize,
460 _depth: fidl::encoding::Depth,
461 ) -> fidl::Result<()> {
462 encoder.debug_check_bounds::<Self>(offset);
463 encoder.write_num(self.into_primitive(), offset);
464 Ok(())
465 }
466 }
467
468 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SpawnConsoleError {
469 #[inline(always)]
470 fn new_empty() -> Self {
471 Self::unknown()
472 }
473
474 #[inline]
475 unsafe fn decode(
476 &mut self,
477 decoder: &mut fidl::encoding::Decoder<'_, D>,
478 offset: usize,
479 _depth: fidl::encoding::Depth,
480 ) -> fidl::Result<()> {
481 decoder.debug_check_bounds::<Self>(offset);
482 let prim = decoder.read_num::<u32>(offset);
483
484 *self = Self::from_primitive_allow_unknown(prim);
485 Ok(())
486 }
487 }
488
489 impl fidl::encoding::ValueTypeMarker for ConsoleWindowSize {
490 type Borrowed<'a> = &'a Self;
491 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
492 value
493 }
494 }
495
496 unsafe impl fidl::encoding::TypeMarker for ConsoleWindowSize {
497 type Owned = Self;
498
499 #[inline(always)]
500 fn inline_align(_context: fidl::encoding::Context) -> usize {
501 2
502 }
503
504 #[inline(always)]
505 fn inline_size(_context: fidl::encoding::Context) -> usize {
506 8
507 }
508 #[inline(always)]
509 fn encode_is_copy() -> bool {
510 true
511 }
512
513 #[inline(always)]
514 fn decode_is_copy() -> bool {
515 true
516 }
517 }
518
519 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<ConsoleWindowSize, D>
520 for &ConsoleWindowSize
521 {
522 #[inline]
523 unsafe fn encode(
524 self,
525 encoder: &mut fidl::encoding::Encoder<'_, D>,
526 offset: usize,
527 _depth: fidl::encoding::Depth,
528 ) -> fidl::Result<()> {
529 encoder.debug_check_bounds::<ConsoleWindowSize>(offset);
530 unsafe {
531 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
533 (buf_ptr as *mut ConsoleWindowSize)
534 .write_unaligned((self as *const ConsoleWindowSize).read());
535 }
538 Ok(())
539 }
540 }
541 unsafe impl<
542 D: fidl::encoding::ResourceDialect,
543 T0: fidl::encoding::Encode<u16, D>,
544 T1: fidl::encoding::Encode<u16, D>,
545 T2: fidl::encoding::Encode<u16, D>,
546 T3: fidl::encoding::Encode<u16, D>,
547 > fidl::encoding::Encode<ConsoleWindowSize, D> for (T0, T1, T2, T3)
548 {
549 #[inline]
550 unsafe fn encode(
551 self,
552 encoder: &mut fidl::encoding::Encoder<'_, D>,
553 offset: usize,
554 depth: fidl::encoding::Depth,
555 ) -> fidl::Result<()> {
556 encoder.debug_check_bounds::<ConsoleWindowSize>(offset);
557 self.0.encode(encoder, offset + 0, depth)?;
561 self.1.encode(encoder, offset + 2, depth)?;
562 self.2.encode(encoder, offset + 4, depth)?;
563 self.3.encode(encoder, offset + 6, depth)?;
564 Ok(())
565 }
566 }
567
568 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for ConsoleWindowSize {
569 #[inline(always)]
570 fn new_empty() -> Self {
571 Self {
572 rows: fidl::new_empty!(u16, D),
573 cols: fidl::new_empty!(u16, D),
574 x_pixels: fidl::new_empty!(u16, D),
575 y_pixels: fidl::new_empty!(u16, D),
576 }
577 }
578
579 #[inline]
580 unsafe fn decode(
581 &mut self,
582 decoder: &mut fidl::encoding::Decoder<'_, D>,
583 offset: usize,
584 _depth: fidl::encoding::Depth,
585 ) -> fidl::Result<()> {
586 decoder.debug_check_bounds::<Self>(offset);
587 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
588 unsafe {
591 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
592 }
593 Ok(())
594 }
595 }
596
597 impl fidl::encoding::ValueTypeMarker for ControllerSpawnConsoleResponse {
598 type Borrowed<'a> = &'a Self;
599 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
600 value
601 }
602 }
603
604 unsafe impl fidl::encoding::TypeMarker for ControllerSpawnConsoleResponse {
605 type Owned = Self;
606
607 #[inline(always)]
608 fn inline_align(_context: fidl::encoding::Context) -> usize {
609 1
610 }
611
612 #[inline(always)]
613 fn inline_size(_context: fidl::encoding::Context) -> usize {
614 1
615 }
616 #[inline(always)]
617 fn encode_is_copy() -> bool {
618 true
619 }
620
621 #[inline(always)]
622 fn decode_is_copy() -> bool {
623 true
624 }
625 }
626
627 unsafe impl<D: fidl::encoding::ResourceDialect>
628 fidl::encoding::Encode<ControllerSpawnConsoleResponse, D>
629 for &ControllerSpawnConsoleResponse
630 {
631 #[inline]
632 unsafe fn encode(
633 self,
634 encoder: &mut fidl::encoding::Encoder<'_, D>,
635 offset: usize,
636 _depth: fidl::encoding::Depth,
637 ) -> fidl::Result<()> {
638 encoder.debug_check_bounds::<ControllerSpawnConsoleResponse>(offset);
639 unsafe {
640 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
642 (buf_ptr as *mut ControllerSpawnConsoleResponse)
643 .write_unaligned((self as *const ControllerSpawnConsoleResponse).read());
644 }
647 Ok(())
648 }
649 }
650 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u8, D>>
651 fidl::encoding::Encode<ControllerSpawnConsoleResponse, D> for (T0,)
652 {
653 #[inline]
654 unsafe fn encode(
655 self,
656 encoder: &mut fidl::encoding::Encoder<'_, D>,
657 offset: usize,
658 depth: fidl::encoding::Depth,
659 ) -> fidl::Result<()> {
660 encoder.debug_check_bounds::<ControllerSpawnConsoleResponse>(offset);
661 self.0.encode(encoder, offset + 0, depth)?;
665 Ok(())
666 }
667 }
668
669 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
670 for ControllerSpawnConsoleResponse
671 {
672 #[inline(always)]
673 fn new_empty() -> Self {
674 Self { exit_code: fidl::new_empty!(u8, D) }
675 }
676
677 #[inline]
678 unsafe fn decode(
679 &mut self,
680 decoder: &mut fidl::encoding::Decoder<'_, D>,
681 offset: usize,
682 _depth: fidl::encoding::Depth,
683 ) -> fidl::Result<()> {
684 decoder.debug_check_bounds::<Self>(offset);
685 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
686 unsafe {
689 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 1);
690 }
691 Ok(())
692 }
693 }
694
695 impl ControllerGetVmoReferencesRequest {
696 #[inline(always)]
697 fn max_ordinal_present(&self) -> u64 {
698 if let Some(_) = self.koid {
699 return 1;
700 }
701 0
702 }
703 }
704
705 impl fidl::encoding::ValueTypeMarker for ControllerGetVmoReferencesRequest {
706 type Borrowed<'a> = &'a Self;
707 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
708 value
709 }
710 }
711
712 unsafe impl fidl::encoding::TypeMarker for ControllerGetVmoReferencesRequest {
713 type Owned = Self;
714
715 #[inline(always)]
716 fn inline_align(_context: fidl::encoding::Context) -> usize {
717 8
718 }
719
720 #[inline(always)]
721 fn inline_size(_context: fidl::encoding::Context) -> usize {
722 16
723 }
724 }
725
726 unsafe impl<D: fidl::encoding::ResourceDialect>
727 fidl::encoding::Encode<ControllerGetVmoReferencesRequest, D>
728 for &ControllerGetVmoReferencesRequest
729 {
730 unsafe fn encode(
731 self,
732 encoder: &mut fidl::encoding::Encoder<'_, D>,
733 offset: usize,
734 mut depth: fidl::encoding::Depth,
735 ) -> fidl::Result<()> {
736 encoder.debug_check_bounds::<ControllerGetVmoReferencesRequest>(offset);
737 let max_ordinal: u64 = self.max_ordinal_present();
739 encoder.write_num(max_ordinal, offset);
740 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
741 if max_ordinal == 0 {
743 return Ok(());
744 }
745 depth.increment()?;
746 let envelope_size = 8;
747 let bytes_len = max_ordinal as usize * envelope_size;
748 #[allow(unused_variables)]
749 let offset = encoder.out_of_line_offset(bytes_len);
750 let mut _prev_end_offset: usize = 0;
751 if 1 > max_ordinal {
752 return Ok(());
753 }
754
755 let cur_offset: usize = (1 - 1) * envelope_size;
758
759 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
761
762 fidl::encoding::encode_in_envelope_optional::<u64, D>(
767 self.koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
768 encoder,
769 offset + cur_offset,
770 depth,
771 )?;
772
773 _prev_end_offset = cur_offset + envelope_size;
774
775 Ok(())
776 }
777 }
778
779 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
780 for ControllerGetVmoReferencesRequest
781 {
782 #[inline(always)]
783 fn new_empty() -> Self {
784 Self::default()
785 }
786
787 unsafe fn decode(
788 &mut self,
789 decoder: &mut fidl::encoding::Decoder<'_, D>,
790 offset: usize,
791 mut depth: fidl::encoding::Depth,
792 ) -> fidl::Result<()> {
793 decoder.debug_check_bounds::<Self>(offset);
794 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
795 None => return Err(fidl::Error::NotNullable),
796 Some(len) => len,
797 };
798 if len == 0 {
800 return Ok(());
801 };
802 depth.increment()?;
803 let envelope_size = 8;
804 let bytes_len = len * envelope_size;
805 let offset = decoder.out_of_line_offset(bytes_len)?;
806 let mut _next_ordinal_to_read = 0;
808 let mut next_offset = offset;
809 let end_offset = offset + bytes_len;
810 _next_ordinal_to_read += 1;
811 if next_offset >= end_offset {
812 return Ok(());
813 }
814
815 while _next_ordinal_to_read < 1 {
817 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
818 _next_ordinal_to_read += 1;
819 next_offset += envelope_size;
820 }
821
822 let next_out_of_line = decoder.next_out_of_line();
823 let handles_before = decoder.remaining_handles();
824 if let Some((inlined, num_bytes, num_handles)) =
825 fidl::encoding::decode_envelope_header(decoder, next_offset)?
826 {
827 let member_inline_size =
828 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
829 if inlined != (member_inline_size <= 4) {
830 return Err(fidl::Error::InvalidInlineBitInEnvelope);
831 }
832 let inner_offset;
833 let mut inner_depth = depth.clone();
834 if inlined {
835 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
836 inner_offset = next_offset;
837 } else {
838 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
839 inner_depth.increment()?;
840 }
841 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
842 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
843 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
844 {
845 return Err(fidl::Error::InvalidNumBytesInEnvelope);
846 }
847 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
848 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
849 }
850 }
851
852 next_offset += envelope_size;
853
854 while next_offset < end_offset {
856 _next_ordinal_to_read += 1;
857 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
858 next_offset += envelope_size;
859 }
860
861 Ok(())
862 }
863 }
864
865 impl ControllerSendSignalRequest {
866 #[inline(always)]
867 fn max_ordinal_present(&self) -> u64 {
868 if let Some(_) = self.signal {
869 return 2;
870 }
871 if let Some(_) = self.pid {
872 return 1;
873 }
874 0
875 }
876 }
877
878 impl fidl::encoding::ValueTypeMarker for ControllerSendSignalRequest {
879 type Borrowed<'a> = &'a Self;
880 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
881 value
882 }
883 }
884
885 unsafe impl fidl::encoding::TypeMarker for ControllerSendSignalRequest {
886 type Owned = Self;
887
888 #[inline(always)]
889 fn inline_align(_context: fidl::encoding::Context) -> usize {
890 8
891 }
892
893 #[inline(always)]
894 fn inline_size(_context: fidl::encoding::Context) -> usize {
895 16
896 }
897 }
898
899 unsafe impl<D: fidl::encoding::ResourceDialect>
900 fidl::encoding::Encode<ControllerSendSignalRequest, D> for &ControllerSendSignalRequest
901 {
902 unsafe fn encode(
903 self,
904 encoder: &mut fidl::encoding::Encoder<'_, D>,
905 offset: usize,
906 mut depth: fidl::encoding::Depth,
907 ) -> fidl::Result<()> {
908 encoder.debug_check_bounds::<ControllerSendSignalRequest>(offset);
909 let max_ordinal: u64 = self.max_ordinal_present();
911 encoder.write_num(max_ordinal, offset);
912 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
913 if max_ordinal == 0 {
915 return Ok(());
916 }
917 depth.increment()?;
918 let envelope_size = 8;
919 let bytes_len = max_ordinal as usize * envelope_size;
920 #[allow(unused_variables)]
921 let offset = encoder.out_of_line_offset(bytes_len);
922 let mut _prev_end_offset: usize = 0;
923 if 1 > max_ordinal {
924 return Ok(());
925 }
926
927 let cur_offset: usize = (1 - 1) * envelope_size;
930
931 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
933
934 fidl::encoding::encode_in_envelope_optional::<i32, D>(
939 self.pid.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
940 encoder,
941 offset + cur_offset,
942 depth,
943 )?;
944
945 _prev_end_offset = cur_offset + envelope_size;
946 if 2 > max_ordinal {
947 return Ok(());
948 }
949
950 let cur_offset: usize = (2 - 1) * envelope_size;
953
954 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
956
957 fidl::encoding::encode_in_envelope_optional::<u64, D>(
962 self.signal.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
963 encoder,
964 offset + cur_offset,
965 depth,
966 )?;
967
968 _prev_end_offset = cur_offset + envelope_size;
969
970 Ok(())
971 }
972 }
973
974 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
975 for ControllerSendSignalRequest
976 {
977 #[inline(always)]
978 fn new_empty() -> Self {
979 Self::default()
980 }
981
982 unsafe fn decode(
983 &mut self,
984 decoder: &mut fidl::encoding::Decoder<'_, D>,
985 offset: usize,
986 mut depth: fidl::encoding::Depth,
987 ) -> fidl::Result<()> {
988 decoder.debug_check_bounds::<Self>(offset);
989 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
990 None => return Err(fidl::Error::NotNullable),
991 Some(len) => len,
992 };
993 if len == 0 {
995 return Ok(());
996 };
997 depth.increment()?;
998 let envelope_size = 8;
999 let bytes_len = len * envelope_size;
1000 let offset = decoder.out_of_line_offset(bytes_len)?;
1001 let mut _next_ordinal_to_read = 0;
1003 let mut next_offset = offset;
1004 let end_offset = offset + bytes_len;
1005 _next_ordinal_to_read += 1;
1006 if next_offset >= end_offset {
1007 return Ok(());
1008 }
1009
1010 while _next_ordinal_to_read < 1 {
1012 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1013 _next_ordinal_to_read += 1;
1014 next_offset += envelope_size;
1015 }
1016
1017 let next_out_of_line = decoder.next_out_of_line();
1018 let handles_before = decoder.remaining_handles();
1019 if let Some((inlined, num_bytes, num_handles)) =
1020 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1021 {
1022 let member_inline_size =
1023 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1024 if inlined != (member_inline_size <= 4) {
1025 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1026 }
1027 let inner_offset;
1028 let mut inner_depth = depth.clone();
1029 if inlined {
1030 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1031 inner_offset = next_offset;
1032 } else {
1033 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1034 inner_depth.increment()?;
1035 }
1036 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(i32, D));
1037 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
1038 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1039 {
1040 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1041 }
1042 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1043 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1044 }
1045 }
1046
1047 next_offset += envelope_size;
1048 _next_ordinal_to_read += 1;
1049 if next_offset >= end_offset {
1050 return Ok(());
1051 }
1052
1053 while _next_ordinal_to_read < 2 {
1055 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1056 _next_ordinal_to_read += 1;
1057 next_offset += envelope_size;
1058 }
1059
1060 let next_out_of_line = decoder.next_out_of_line();
1061 let handles_before = decoder.remaining_handles();
1062 if let Some((inlined, num_bytes, num_handles)) =
1063 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1064 {
1065 let member_inline_size =
1066 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1067 if inlined != (member_inline_size <= 4) {
1068 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1069 }
1070 let inner_offset;
1071 let mut inner_depth = depth.clone();
1072 if inlined {
1073 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1074 inner_offset = next_offset;
1075 } else {
1076 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1077 inner_depth.increment()?;
1078 }
1079 let val_ref = self.signal.get_or_insert_with(|| fidl::new_empty!(u64, D));
1080 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1081 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1082 {
1083 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1084 }
1085 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1086 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1087 }
1088 }
1089
1090 next_offset += envelope_size;
1091
1092 while next_offset < end_offset {
1094 _next_ordinal_to_read += 1;
1095 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1096 next_offset += envelope_size;
1097 }
1098
1099 Ok(())
1100 }
1101 }
1102
1103 impl ControllerSetSyscallLogFilterRequest {
1104 #[inline(always)]
1105 fn max_ordinal_present(&self) -> u64 {
1106 if let Some(_) = self.process_name {
1107 return 1;
1108 }
1109 0
1110 }
1111 }
1112
1113 impl fidl::encoding::ValueTypeMarker for ControllerSetSyscallLogFilterRequest {
1114 type Borrowed<'a> = &'a Self;
1115 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1116 value
1117 }
1118 }
1119
1120 unsafe impl fidl::encoding::TypeMarker for ControllerSetSyscallLogFilterRequest {
1121 type Owned = Self;
1122
1123 #[inline(always)]
1124 fn inline_align(_context: fidl::encoding::Context) -> usize {
1125 8
1126 }
1127
1128 #[inline(always)]
1129 fn inline_size(_context: fidl::encoding::Context) -> usize {
1130 16
1131 }
1132 }
1133
1134 unsafe impl<D: fidl::encoding::ResourceDialect>
1135 fidl::encoding::Encode<ControllerSetSyscallLogFilterRequest, D>
1136 for &ControllerSetSyscallLogFilterRequest
1137 {
1138 unsafe fn encode(
1139 self,
1140 encoder: &mut fidl::encoding::Encoder<'_, D>,
1141 offset: usize,
1142 mut depth: fidl::encoding::Depth,
1143 ) -> fidl::Result<()> {
1144 encoder.debug_check_bounds::<ControllerSetSyscallLogFilterRequest>(offset);
1145 let max_ordinal: u64 = self.max_ordinal_present();
1147 encoder.write_num(max_ordinal, offset);
1148 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1149 if max_ordinal == 0 {
1151 return Ok(());
1152 }
1153 depth.increment()?;
1154 let envelope_size = 8;
1155 let bytes_len = max_ordinal as usize * envelope_size;
1156 #[allow(unused_variables)]
1157 let offset = encoder.out_of_line_offset(bytes_len);
1158 let mut _prev_end_offset: usize = 0;
1159 if 1 > max_ordinal {
1160 return Ok(());
1161 }
1162
1163 let cur_offset: usize = (1 - 1) * envelope_size;
1166
1167 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1169
1170 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
1175 self.process_name.as_ref().map(
1176 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
1177 ),
1178 encoder,
1179 offset + cur_offset,
1180 depth,
1181 )?;
1182
1183 _prev_end_offset = cur_offset + envelope_size;
1184
1185 Ok(())
1186 }
1187 }
1188
1189 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1190 for ControllerSetSyscallLogFilterRequest
1191 {
1192 #[inline(always)]
1193 fn new_empty() -> Self {
1194 Self::default()
1195 }
1196
1197 unsafe fn decode(
1198 &mut self,
1199 decoder: &mut fidl::encoding::Decoder<'_, D>,
1200 offset: usize,
1201 mut depth: fidl::encoding::Depth,
1202 ) -> fidl::Result<()> {
1203 decoder.debug_check_bounds::<Self>(offset);
1204 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1205 None => return Err(fidl::Error::NotNullable),
1206 Some(len) => len,
1207 };
1208 if len == 0 {
1210 return Ok(());
1211 };
1212 depth.increment()?;
1213 let envelope_size = 8;
1214 let bytes_len = len * envelope_size;
1215 let offset = decoder.out_of_line_offset(bytes_len)?;
1216 let mut _next_ordinal_to_read = 0;
1218 let mut next_offset = offset;
1219 let end_offset = offset + bytes_len;
1220 _next_ordinal_to_read += 1;
1221 if next_offset >= end_offset {
1222 return Ok(());
1223 }
1224
1225 while _next_ordinal_to_read < 1 {
1227 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1228 _next_ordinal_to_read += 1;
1229 next_offset += envelope_size;
1230 }
1231
1232 let next_out_of_line = decoder.next_out_of_line();
1233 let handles_before = decoder.remaining_handles();
1234 if let Some((inlined, num_bytes, num_handles)) =
1235 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1236 {
1237 let member_inline_size =
1238 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
1239 decoder.context,
1240 );
1241 if inlined != (member_inline_size <= 4) {
1242 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1243 }
1244 let inner_offset;
1245 let mut inner_depth = depth.clone();
1246 if inlined {
1247 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1248 inner_offset = next_offset;
1249 } else {
1250 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1251 inner_depth.increment()?;
1252 }
1253 let val_ref = self
1254 .process_name
1255 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
1256 fidl::decode!(
1257 fidl::encoding::UnboundedString,
1258 D,
1259 val_ref,
1260 decoder,
1261 inner_offset,
1262 inner_depth
1263 )?;
1264 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1265 {
1266 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1267 }
1268 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1269 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1270 }
1271 }
1272
1273 next_offset += envelope_size;
1274
1275 while next_offset < end_offset {
1277 _next_ordinal_to_read += 1;
1278 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1279 next_offset += envelope_size;
1280 }
1281
1282 Ok(())
1283 }
1284 }
1285
1286 impl ControllerGetVmoReferencesResponse {
1287 #[inline(always)]
1288 fn max_ordinal_present(&self) -> u64 {
1289 if let Some(_) = self.references {
1290 return 1;
1291 }
1292 0
1293 }
1294 }
1295
1296 impl fidl::encoding::ValueTypeMarker for ControllerGetVmoReferencesResponse {
1297 type Borrowed<'a> = &'a Self;
1298 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1299 value
1300 }
1301 }
1302
1303 unsafe impl fidl::encoding::TypeMarker for ControllerGetVmoReferencesResponse {
1304 type Owned = Self;
1305
1306 #[inline(always)]
1307 fn inline_align(_context: fidl::encoding::Context) -> usize {
1308 8
1309 }
1310
1311 #[inline(always)]
1312 fn inline_size(_context: fidl::encoding::Context) -> usize {
1313 16
1314 }
1315 }
1316
1317 unsafe impl<D: fidl::encoding::ResourceDialect>
1318 fidl::encoding::Encode<ControllerGetVmoReferencesResponse, D>
1319 for &ControllerGetVmoReferencesResponse
1320 {
1321 unsafe fn encode(
1322 self,
1323 encoder: &mut fidl::encoding::Encoder<'_, D>,
1324 offset: usize,
1325 mut depth: fidl::encoding::Depth,
1326 ) -> fidl::Result<()> {
1327 encoder.debug_check_bounds::<ControllerGetVmoReferencesResponse>(offset);
1328 let max_ordinal: u64 = self.max_ordinal_present();
1330 encoder.write_num(max_ordinal, offset);
1331 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1332 if max_ordinal == 0 {
1334 return Ok(());
1335 }
1336 depth.increment()?;
1337 let envelope_size = 8;
1338 let bytes_len = max_ordinal as usize * envelope_size;
1339 #[allow(unused_variables)]
1340 let offset = encoder.out_of_line_offset(bytes_len);
1341 let mut _prev_end_offset: usize = 0;
1342 if 1 > max_ordinal {
1343 return Ok(());
1344 }
1345
1346 let cur_offset: usize = (1 - 1) * envelope_size;
1349
1350 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1352
1353 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedVector<VmoReference>, D>(
1358 self.references.as_ref().map(<fidl::encoding::UnboundedVector<VmoReference> as fidl::encoding::ValueTypeMarker>::borrow),
1359 encoder, offset + cur_offset, depth
1360 )?;
1361
1362 _prev_end_offset = cur_offset + envelope_size;
1363
1364 Ok(())
1365 }
1366 }
1367
1368 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1369 for ControllerGetVmoReferencesResponse
1370 {
1371 #[inline(always)]
1372 fn new_empty() -> Self {
1373 Self::default()
1374 }
1375
1376 unsafe fn decode(
1377 &mut self,
1378 decoder: &mut fidl::encoding::Decoder<'_, D>,
1379 offset: usize,
1380 mut depth: fidl::encoding::Depth,
1381 ) -> fidl::Result<()> {
1382 decoder.debug_check_bounds::<Self>(offset);
1383 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1384 None => return Err(fidl::Error::NotNullable),
1385 Some(len) => len,
1386 };
1387 if len == 0 {
1389 return Ok(());
1390 };
1391 depth.increment()?;
1392 let envelope_size = 8;
1393 let bytes_len = len * envelope_size;
1394 let offset = decoder.out_of_line_offset(bytes_len)?;
1395 let mut _next_ordinal_to_read = 0;
1397 let mut next_offset = offset;
1398 let end_offset = offset + bytes_len;
1399 _next_ordinal_to_read += 1;
1400 if next_offset >= end_offset {
1401 return Ok(());
1402 }
1403
1404 while _next_ordinal_to_read < 1 {
1406 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1407 _next_ordinal_to_read += 1;
1408 next_offset += envelope_size;
1409 }
1410
1411 let next_out_of_line = decoder.next_out_of_line();
1412 let handles_before = decoder.remaining_handles();
1413 if let Some((inlined, num_bytes, num_handles)) =
1414 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1415 {
1416 let member_inline_size = <fidl::encoding::UnboundedVector<VmoReference> as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1417 if inlined != (member_inline_size <= 4) {
1418 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1419 }
1420 let inner_offset;
1421 let mut inner_depth = depth.clone();
1422 if inlined {
1423 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1424 inner_offset = next_offset;
1425 } else {
1426 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1427 inner_depth.increment()?;
1428 }
1429 let val_ref = self.references.get_or_insert_with(|| {
1430 fidl::new_empty!(fidl::encoding::UnboundedVector<VmoReference>, D)
1431 });
1432 fidl::decode!(
1433 fidl::encoding::UnboundedVector<VmoReference>,
1434 D,
1435 val_ref,
1436 decoder,
1437 inner_offset,
1438 inner_depth
1439 )?;
1440 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1441 {
1442 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1443 }
1444 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1445 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1446 }
1447 }
1448
1449 next_offset += envelope_size;
1450
1451 while next_offset < end_offset {
1453 _next_ordinal_to_read += 1;
1454 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1455 next_offset += envelope_size;
1456 }
1457
1458 Ok(())
1459 }
1460 }
1461
1462 impl InfoGetJobKoidResponse {
1463 #[inline(always)]
1464 fn max_ordinal_present(&self) -> u64 {
1465 if let Some(_) = self.koid {
1466 return 1;
1467 }
1468 0
1469 }
1470 }
1471
1472 impl fidl::encoding::ValueTypeMarker for InfoGetJobKoidResponse {
1473 type Borrowed<'a> = &'a Self;
1474 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1475 value
1476 }
1477 }
1478
1479 unsafe impl fidl::encoding::TypeMarker for InfoGetJobKoidResponse {
1480 type Owned = Self;
1481
1482 #[inline(always)]
1483 fn inline_align(_context: fidl::encoding::Context) -> usize {
1484 8
1485 }
1486
1487 #[inline(always)]
1488 fn inline_size(_context: fidl::encoding::Context) -> usize {
1489 16
1490 }
1491 }
1492
1493 unsafe impl<D: fidl::encoding::ResourceDialect>
1494 fidl::encoding::Encode<InfoGetJobKoidResponse, D> for &InfoGetJobKoidResponse
1495 {
1496 unsafe fn encode(
1497 self,
1498 encoder: &mut fidl::encoding::Encoder<'_, D>,
1499 offset: usize,
1500 mut depth: fidl::encoding::Depth,
1501 ) -> fidl::Result<()> {
1502 encoder.debug_check_bounds::<InfoGetJobKoidResponse>(offset);
1503 let max_ordinal: u64 = self.max_ordinal_present();
1505 encoder.write_num(max_ordinal, offset);
1506 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1507 if max_ordinal == 0 {
1509 return Ok(());
1510 }
1511 depth.increment()?;
1512 let envelope_size = 8;
1513 let bytes_len = max_ordinal as usize * envelope_size;
1514 #[allow(unused_variables)]
1515 let offset = encoder.out_of_line_offset(bytes_len);
1516 let mut _prev_end_offset: usize = 0;
1517 if 1 > max_ordinal {
1518 return Ok(());
1519 }
1520
1521 let cur_offset: usize = (1 - 1) * envelope_size;
1524
1525 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1527
1528 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1533 self.koid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1534 encoder,
1535 offset + cur_offset,
1536 depth,
1537 )?;
1538
1539 _prev_end_offset = cur_offset + envelope_size;
1540
1541 Ok(())
1542 }
1543 }
1544
1545 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
1546 for InfoGetJobKoidResponse
1547 {
1548 #[inline(always)]
1549 fn new_empty() -> Self {
1550 Self::default()
1551 }
1552
1553 unsafe fn decode(
1554 &mut self,
1555 decoder: &mut fidl::encoding::Decoder<'_, D>,
1556 offset: usize,
1557 mut depth: fidl::encoding::Depth,
1558 ) -> fidl::Result<()> {
1559 decoder.debug_check_bounds::<Self>(offset);
1560 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1561 None => return Err(fidl::Error::NotNullable),
1562 Some(len) => len,
1563 };
1564 if len == 0 {
1566 return Ok(());
1567 };
1568 depth.increment()?;
1569 let envelope_size = 8;
1570 let bytes_len = len * envelope_size;
1571 let offset = decoder.out_of_line_offset(bytes_len)?;
1572 let mut _next_ordinal_to_read = 0;
1574 let mut next_offset = offset;
1575 let end_offset = offset + bytes_len;
1576 _next_ordinal_to_read += 1;
1577 if next_offset >= end_offset {
1578 return Ok(());
1579 }
1580
1581 while _next_ordinal_to_read < 1 {
1583 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1584 _next_ordinal_to_read += 1;
1585 next_offset += envelope_size;
1586 }
1587
1588 let next_out_of_line = decoder.next_out_of_line();
1589 let handles_before = decoder.remaining_handles();
1590 if let Some((inlined, num_bytes, num_handles)) =
1591 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1592 {
1593 let member_inline_size =
1594 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1595 if inlined != (member_inline_size <= 4) {
1596 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1597 }
1598 let inner_offset;
1599 let mut inner_depth = depth.clone();
1600 if inlined {
1601 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1602 inner_offset = next_offset;
1603 } else {
1604 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1605 inner_depth.increment()?;
1606 }
1607 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
1608 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1609 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1610 {
1611 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1612 }
1613 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1614 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1615 }
1616 }
1617
1618 next_offset += envelope_size;
1619
1620 while next_offset < end_offset {
1622 _next_ordinal_to_read += 1;
1623 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1624 next_offset += envelope_size;
1625 }
1626
1627 Ok(())
1628 }
1629 }
1630
1631 impl VmoReference {
1632 #[inline(always)]
1633 fn max_ordinal_present(&self) -> u64 {
1634 if let Some(_) = self.koid {
1635 return 4;
1636 }
1637 if let Some(_) = self.fd {
1638 return 3;
1639 }
1640 if let Some(_) = self.pid {
1641 return 2;
1642 }
1643 if let Some(_) = self.process_name {
1644 return 1;
1645 }
1646 0
1647 }
1648 }
1649
1650 impl fidl::encoding::ValueTypeMarker for VmoReference {
1651 type Borrowed<'a> = &'a Self;
1652 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
1653 value
1654 }
1655 }
1656
1657 unsafe impl fidl::encoding::TypeMarker for VmoReference {
1658 type Owned = Self;
1659
1660 #[inline(always)]
1661 fn inline_align(_context: fidl::encoding::Context) -> usize {
1662 8
1663 }
1664
1665 #[inline(always)]
1666 fn inline_size(_context: fidl::encoding::Context) -> usize {
1667 16
1668 }
1669 }
1670
1671 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<VmoReference, D>
1672 for &VmoReference
1673 {
1674 unsafe fn encode(
1675 self,
1676 encoder: &mut fidl::encoding::Encoder<'_, D>,
1677 offset: usize,
1678 mut depth: fidl::encoding::Depth,
1679 ) -> fidl::Result<()> {
1680 encoder.debug_check_bounds::<VmoReference>(offset);
1681 let max_ordinal: u64 = self.max_ordinal_present();
1683 encoder.write_num(max_ordinal, offset);
1684 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
1685 if max_ordinal == 0 {
1687 return Ok(());
1688 }
1689 depth.increment()?;
1690 let envelope_size = 8;
1691 let bytes_len = max_ordinal as usize * envelope_size;
1692 #[allow(unused_variables)]
1693 let offset = encoder.out_of_line_offset(bytes_len);
1694 let mut _prev_end_offset: usize = 0;
1695 if 1 > max_ordinal {
1696 return Ok(());
1697 }
1698
1699 let cur_offset: usize = (1 - 1) * envelope_size;
1702
1703 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1705
1706 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
1711 self.process_name.as_ref().map(
1712 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
1713 ),
1714 encoder,
1715 offset + cur_offset,
1716 depth,
1717 )?;
1718
1719 _prev_end_offset = cur_offset + envelope_size;
1720 if 2 > max_ordinal {
1721 return Ok(());
1722 }
1723
1724 let cur_offset: usize = (2 - 1) * envelope_size;
1727
1728 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1730
1731 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1736 self.pid.as_ref().map(<u64 as fidl::encoding::ValueTypeMarker>::borrow),
1737 encoder,
1738 offset + cur_offset,
1739 depth,
1740 )?;
1741
1742 _prev_end_offset = cur_offset + envelope_size;
1743 if 3 > max_ordinal {
1744 return Ok(());
1745 }
1746
1747 let cur_offset: usize = (3 - 1) * envelope_size;
1750
1751 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1753
1754 fidl::encoding::encode_in_envelope_optional::<i32, D>(
1759 self.fd.as_ref().map(<i32 as fidl::encoding::ValueTypeMarker>::borrow),
1760 encoder,
1761 offset + cur_offset,
1762 depth,
1763 )?;
1764
1765 _prev_end_offset = cur_offset + envelope_size;
1766 if 4 > max_ordinal {
1767 return Ok(());
1768 }
1769
1770 let cur_offset: usize = (4 - 1) * envelope_size;
1773
1774 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
1776
1777 fidl::encoding::encode_in_envelope_optional::<u64, D>(
1782 self.koid.as_ref().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
1790 Ok(())
1791 }
1792 }
1793
1794 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for VmoReference {
1795 #[inline(always)]
1796 fn new_empty() -> Self {
1797 Self::default()
1798 }
1799
1800 unsafe fn decode(
1801 &mut self,
1802 decoder: &mut fidl::encoding::Decoder<'_, D>,
1803 offset: usize,
1804 mut depth: fidl::encoding::Depth,
1805 ) -> fidl::Result<()> {
1806 decoder.debug_check_bounds::<Self>(offset);
1807 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
1808 None => return Err(fidl::Error::NotNullable),
1809 Some(len) => len,
1810 };
1811 if len == 0 {
1813 return Ok(());
1814 };
1815 depth.increment()?;
1816 let envelope_size = 8;
1817 let bytes_len = len * envelope_size;
1818 let offset = decoder.out_of_line_offset(bytes_len)?;
1819 let mut _next_ordinal_to_read = 0;
1821 let mut next_offset = offset;
1822 let end_offset = offset + bytes_len;
1823 _next_ordinal_to_read += 1;
1824 if next_offset >= end_offset {
1825 return Ok(());
1826 }
1827
1828 while _next_ordinal_to_read < 1 {
1830 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1831 _next_ordinal_to_read += 1;
1832 next_offset += envelope_size;
1833 }
1834
1835 let next_out_of_line = decoder.next_out_of_line();
1836 let handles_before = decoder.remaining_handles();
1837 if let Some((inlined, num_bytes, num_handles)) =
1838 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1839 {
1840 let member_inline_size =
1841 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
1842 decoder.context,
1843 );
1844 if inlined != (member_inline_size <= 4) {
1845 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1846 }
1847 let inner_offset;
1848 let mut inner_depth = depth.clone();
1849 if inlined {
1850 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1851 inner_offset = next_offset;
1852 } else {
1853 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1854 inner_depth.increment()?;
1855 }
1856 let val_ref = self
1857 .process_name
1858 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
1859 fidl::decode!(
1860 fidl::encoding::UnboundedString,
1861 D,
1862 val_ref,
1863 decoder,
1864 inner_offset,
1865 inner_depth
1866 )?;
1867 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1868 {
1869 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1870 }
1871 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1872 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1873 }
1874 }
1875
1876 next_offset += envelope_size;
1877 _next_ordinal_to_read += 1;
1878 if next_offset >= end_offset {
1879 return Ok(());
1880 }
1881
1882 while _next_ordinal_to_read < 2 {
1884 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1885 _next_ordinal_to_read += 1;
1886 next_offset += envelope_size;
1887 }
1888
1889 let next_out_of_line = decoder.next_out_of_line();
1890 let handles_before = decoder.remaining_handles();
1891 if let Some((inlined, num_bytes, num_handles)) =
1892 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1893 {
1894 let member_inline_size =
1895 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1896 if inlined != (member_inline_size <= 4) {
1897 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1898 }
1899 let inner_offset;
1900 let mut inner_depth = depth.clone();
1901 if inlined {
1902 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1903 inner_offset = next_offset;
1904 } else {
1905 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1906 inner_depth.increment()?;
1907 }
1908 let val_ref = self.pid.get_or_insert_with(|| fidl::new_empty!(u64, D));
1909 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1910 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1911 {
1912 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1913 }
1914 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1915 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1916 }
1917 }
1918
1919 next_offset += envelope_size;
1920 _next_ordinal_to_read += 1;
1921 if next_offset >= end_offset {
1922 return Ok(());
1923 }
1924
1925 while _next_ordinal_to_read < 3 {
1927 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1928 _next_ordinal_to_read += 1;
1929 next_offset += envelope_size;
1930 }
1931
1932 let next_out_of_line = decoder.next_out_of_line();
1933 let handles_before = decoder.remaining_handles();
1934 if let Some((inlined, num_bytes, num_handles)) =
1935 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1936 {
1937 let member_inline_size =
1938 <i32 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1939 if inlined != (member_inline_size <= 4) {
1940 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1941 }
1942 let inner_offset;
1943 let mut inner_depth = depth.clone();
1944 if inlined {
1945 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1946 inner_offset = next_offset;
1947 } else {
1948 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1949 inner_depth.increment()?;
1950 }
1951 let val_ref = self.fd.get_or_insert_with(|| fidl::new_empty!(i32, D));
1952 fidl::decode!(i32, D, val_ref, decoder, inner_offset, inner_depth)?;
1953 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1954 {
1955 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1956 }
1957 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
1958 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
1959 }
1960 }
1961
1962 next_offset += envelope_size;
1963 _next_ordinal_to_read += 1;
1964 if next_offset >= end_offset {
1965 return Ok(());
1966 }
1967
1968 while _next_ordinal_to_read < 4 {
1970 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
1971 _next_ordinal_to_read += 1;
1972 next_offset += envelope_size;
1973 }
1974
1975 let next_out_of_line = decoder.next_out_of_line();
1976 let handles_before = decoder.remaining_handles();
1977 if let Some((inlined, num_bytes, num_handles)) =
1978 fidl::encoding::decode_envelope_header(decoder, next_offset)?
1979 {
1980 let member_inline_size =
1981 <u64 as fidl::encoding::TypeMarker>::inline_size(decoder.context);
1982 if inlined != (member_inline_size <= 4) {
1983 return Err(fidl::Error::InvalidInlineBitInEnvelope);
1984 }
1985 let inner_offset;
1986 let mut inner_depth = depth.clone();
1987 if inlined {
1988 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
1989 inner_offset = next_offset;
1990 } else {
1991 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
1992 inner_depth.increment()?;
1993 }
1994 let val_ref = self.koid.get_or_insert_with(|| fidl::new_empty!(u64, D));
1995 fidl::decode!(u64, D, val_ref, decoder, inner_offset, inner_depth)?;
1996 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
1997 {
1998 return Err(fidl::Error::InvalidNumBytesInEnvelope);
1999 }
2000 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
2001 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
2002 }
2003 }
2004
2005 next_offset += envelope_size;
2006
2007 while next_offset < end_offset {
2009 _next_ordinal_to_read += 1;
2010 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
2011 next_offset += envelope_size;
2012 }
2013
2014 Ok(())
2015 }
2016 }
2017}