fidl_test_exampletester__common/
fidl_test_exampletester__common.rs1#![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 SimpleAddRequest {
14 pub augend: u8,
15 pub addend: u8,
16}
17
18impl fidl::Persistable for SimpleAddRequest {}
19
20#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
21#[repr(C)]
22pub struct SimpleAddResponse {
23 pub sum: u16,
24}
25
26impl fidl::Persistable for SimpleAddResponse {}
27
28pub mod simple_ordinals {
29 pub const ADD: u64 = 0x6f3077f69a049823;
30}
31
32mod internal {
33 use super::*;
34
35 impl fidl::encoding::ValueTypeMarker for SimpleAddRequest {
36 type Borrowed<'a> = &'a Self;
37 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
38 value
39 }
40 }
41
42 unsafe impl fidl::encoding::TypeMarker for SimpleAddRequest {
43 type Owned = Self;
44
45 #[inline(always)]
46 fn inline_align(_context: fidl::encoding::Context) -> usize {
47 1
48 }
49
50 #[inline(always)]
51 fn inline_size(_context: fidl::encoding::Context) -> usize {
52 2
53 }
54 #[inline(always)]
55 fn encode_is_copy() -> bool {
56 true
57 }
58
59 #[inline(always)]
60 fn decode_is_copy() -> bool {
61 true
62 }
63 }
64
65 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SimpleAddRequest, D>
66 for &SimpleAddRequest
67 {
68 #[inline]
69 unsafe fn encode(
70 self,
71 encoder: &mut fidl::encoding::Encoder<'_, D>,
72 offset: usize,
73 _depth: fidl::encoding::Depth,
74 ) -> fidl::Result<()> {
75 encoder.debug_check_bounds::<SimpleAddRequest>(offset);
76 unsafe {
77 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
79 (buf_ptr as *mut SimpleAddRequest)
80 .write_unaligned((self as *const SimpleAddRequest).read());
81 }
84 Ok(())
85 }
86 }
87 unsafe impl<
88 D: fidl::encoding::ResourceDialect,
89 T0: fidl::encoding::Encode<u8, D>,
90 T1: fidl::encoding::Encode<u8, D>,
91 > fidl::encoding::Encode<SimpleAddRequest, D> for (T0, T1)
92 {
93 #[inline]
94 unsafe fn encode(
95 self,
96 encoder: &mut fidl::encoding::Encoder<'_, D>,
97 offset: usize,
98 depth: fidl::encoding::Depth,
99 ) -> fidl::Result<()> {
100 encoder.debug_check_bounds::<SimpleAddRequest>(offset);
101 self.0.encode(encoder, offset + 0, depth)?;
105 self.1.encode(encoder, offset + 1, depth)?;
106 Ok(())
107 }
108 }
109
110 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SimpleAddRequest {
111 #[inline(always)]
112 fn new_empty() -> Self {
113 Self { augend: fidl::new_empty!(u8, D), addend: fidl::new_empty!(u8, D) }
114 }
115
116 #[inline]
117 unsafe fn decode(
118 &mut self,
119 decoder: &mut fidl::encoding::Decoder<'_, D>,
120 offset: usize,
121 _depth: fidl::encoding::Depth,
122 ) -> fidl::Result<()> {
123 decoder.debug_check_bounds::<Self>(offset);
124 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
125 unsafe {
128 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
129 }
130 Ok(())
131 }
132 }
133
134 impl fidl::encoding::ValueTypeMarker for SimpleAddResponse {
135 type Borrowed<'a> = &'a Self;
136 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
137 value
138 }
139 }
140
141 unsafe impl fidl::encoding::TypeMarker for SimpleAddResponse {
142 type Owned = Self;
143
144 #[inline(always)]
145 fn inline_align(_context: fidl::encoding::Context) -> usize {
146 2
147 }
148
149 #[inline(always)]
150 fn inline_size(_context: fidl::encoding::Context) -> usize {
151 2
152 }
153 #[inline(always)]
154 fn encode_is_copy() -> bool {
155 true
156 }
157
158 #[inline(always)]
159 fn decode_is_copy() -> bool {
160 true
161 }
162 }
163
164 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<SimpleAddResponse, D>
165 for &SimpleAddResponse
166 {
167 #[inline]
168 unsafe fn encode(
169 self,
170 encoder: &mut fidl::encoding::Encoder<'_, D>,
171 offset: usize,
172 _depth: fidl::encoding::Depth,
173 ) -> fidl::Result<()> {
174 encoder.debug_check_bounds::<SimpleAddResponse>(offset);
175 unsafe {
176 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
178 (buf_ptr as *mut SimpleAddResponse)
179 .write_unaligned((self as *const SimpleAddResponse).read());
180 }
183 Ok(())
184 }
185 }
186 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u16, D>>
187 fidl::encoding::Encode<SimpleAddResponse, D> for (T0,)
188 {
189 #[inline]
190 unsafe fn encode(
191 self,
192 encoder: &mut fidl::encoding::Encoder<'_, D>,
193 offset: usize,
194 depth: fidl::encoding::Depth,
195 ) -> fidl::Result<()> {
196 encoder.debug_check_bounds::<SimpleAddResponse>(offset);
197 self.0.encode(encoder, offset + 0, depth)?;
201 Ok(())
202 }
203 }
204
205 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for SimpleAddResponse {
206 #[inline(always)]
207 fn new_empty() -> Self {
208 Self { sum: fidl::new_empty!(u16, D) }
209 }
210
211 #[inline]
212 unsafe fn decode(
213 &mut self,
214 decoder: &mut fidl::encoding::Decoder<'_, D>,
215 offset: usize,
216 _depth: fidl::encoding::Depth,
217 ) -> fidl::Result<()> {
218 decoder.debug_check_bounds::<Self>(offset);
219 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
220 unsafe {
223 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 2);
224 }
225 Ok(())
226 }
227 }
228}