fidl_test_pkgdir__common/
fidl_test_pkgdir__common.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![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(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
12#[repr(C)]
13pub struct PkgDirOpenPackageDirectoryRequest {
14    pub meta_far: [u8; 32],
15}
16
17impl fidl::Persistable for PkgDirOpenPackageDirectoryRequest {}
18
19pub mod pkg_dir_ordinals {
20    pub const OPEN_PACKAGE_DIRECTORY: u64 = 0x4589b1c39651e01;
21}
22
23mod internal {
24    use super::*;
25
26    impl fidl::encoding::ValueTypeMarker for PkgDirOpenPackageDirectoryRequest {
27        type Borrowed<'a> = &'a Self;
28        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
29            value
30        }
31    }
32
33    unsafe impl fidl::encoding::TypeMarker for PkgDirOpenPackageDirectoryRequest {
34        type Owned = Self;
35
36        #[inline(always)]
37        fn inline_align(_context: fidl::encoding::Context) -> usize {
38            1
39        }
40
41        #[inline(always)]
42        fn inline_size(_context: fidl::encoding::Context) -> usize {
43            32
44        }
45        #[inline(always)]
46        fn encode_is_copy() -> bool {
47            true
48        }
49
50        #[inline(always)]
51        fn decode_is_copy() -> bool {
52            true
53        }
54    }
55
56    unsafe impl<D: fidl::encoding::ResourceDialect>
57        fidl::encoding::Encode<PkgDirOpenPackageDirectoryRequest, D>
58        for &PkgDirOpenPackageDirectoryRequest
59    {
60        #[inline]
61        unsafe fn encode(
62            self,
63            encoder: &mut fidl::encoding::Encoder<'_, D>,
64            offset: usize,
65            _depth: fidl::encoding::Depth,
66        ) -> fidl::Result<()> {
67            encoder.debug_check_bounds::<PkgDirOpenPackageDirectoryRequest>(offset);
68            unsafe {
69                // Copy the object into the buffer.
70                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
71                (buf_ptr as *mut PkgDirOpenPackageDirectoryRequest)
72                    .write_unaligned((self as *const PkgDirOpenPackageDirectoryRequest).read());
73                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
74                // done second because the memcpy will write garbage to these bytes.
75            }
76            Ok(())
77        }
78    }
79    unsafe impl<
80            D: fidl::encoding::ResourceDialect,
81            T0: fidl::encoding::Encode<fidl::encoding::Array<u8, 32>, D>,
82        > fidl::encoding::Encode<PkgDirOpenPackageDirectoryRequest, D> for (T0,)
83    {
84        #[inline]
85        unsafe fn encode(
86            self,
87            encoder: &mut fidl::encoding::Encoder<'_, D>,
88            offset: usize,
89            depth: fidl::encoding::Depth,
90        ) -> fidl::Result<()> {
91            encoder.debug_check_bounds::<PkgDirOpenPackageDirectoryRequest>(offset);
92            // Zero out padding regions. There's no need to apply masks
93            // because the unmasked parts will be overwritten by fields.
94            // Write the fields.
95            self.0.encode(encoder, offset + 0, depth)?;
96            Ok(())
97        }
98    }
99
100    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
101        for PkgDirOpenPackageDirectoryRequest
102    {
103        #[inline(always)]
104        fn new_empty() -> Self {
105            Self { meta_far: fidl::new_empty!(fidl::encoding::Array<u8, 32>, D) }
106        }
107
108        #[inline]
109        unsafe fn decode(
110            &mut self,
111            decoder: &mut fidl::encoding::Decoder<'_, D>,
112            offset: usize,
113            _depth: fidl::encoding::Depth,
114        ) -> fidl::Result<()> {
115            decoder.debug_check_bounds::<Self>(offset);
116            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
117            // Verify that padding bytes are zero.
118            // Copy from the buffer into the object.
119            unsafe {
120                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 32);
121            }
122            Ok(())
123        }
124    }
125}