fidl_test_wlan_realm_common/
fidl_test_wlan_realm_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(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
12#[repr(u32)]
13pub enum TraceManagerHermeticity {
14 Hermetic = 0,
15 NonHermetic = 1,
16}
17
18impl TraceManagerHermeticity {
19 #[inline]
20 pub fn from_primitive(prim: u32) -> Option<Self> {
21 match prim {
22 0 => Some(Self::Hermetic),
23 1 => Some(Self::NonHermetic),
24 _ => None,
25 }
26 }
27
28 #[inline]
29 pub const fn into_primitive(self) -> u32 {
30 self as u32
31 }
32}
33
34#[derive(Clone, Debug, Default, PartialEq)]
35pub struct CreateRealmResponse {
36 pub wlan_policy_moniker: Option<String>,
37 pub wlandevicemonitor_moniker: Option<String>,
38 #[doc(hidden)]
39 pub __source_breaking: fidl::marker::SourceBreaking,
40}
41
42impl fidl::Persistable for CreateRealmResponse {}
43
44pub mod realm_factory_ordinals {
45 pub const CREATE_REALM: u64 = 0x51aac08d328c3ae4;
46}
47
48mod internal {
49 use super::*;
50 unsafe impl fidl::encoding::TypeMarker for TraceManagerHermeticity {
51 type Owned = Self;
52
53 #[inline(always)]
54 fn inline_align(_context: fidl::encoding::Context) -> usize {
55 std::mem::align_of::<u32>()
56 }
57
58 #[inline(always)]
59 fn inline_size(_context: fidl::encoding::Context) -> usize {
60 std::mem::size_of::<u32>()
61 }
62
63 #[inline(always)]
64 fn encode_is_copy() -> bool {
65 true
66 }
67
68 #[inline(always)]
69 fn decode_is_copy() -> bool {
70 false
71 }
72 }
73
74 impl fidl::encoding::ValueTypeMarker for TraceManagerHermeticity {
75 type Borrowed<'a> = Self;
76 #[inline(always)]
77 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
78 *value
79 }
80 }
81
82 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D>
83 for TraceManagerHermeticity
84 {
85 #[inline]
86 unsafe fn encode(
87 self,
88 encoder: &mut fidl::encoding::Encoder<'_, D>,
89 offset: usize,
90 _depth: fidl::encoding::Depth,
91 ) -> fidl::Result<()> {
92 encoder.debug_check_bounds::<Self>(offset);
93 encoder.write_num(self.into_primitive(), offset);
94 Ok(())
95 }
96 }
97
98 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
99 for TraceManagerHermeticity
100 {
101 #[inline(always)]
102 fn new_empty() -> Self {
103 Self::Hermetic
104 }
105
106 #[inline]
107 unsafe fn decode(
108 &mut self,
109 decoder: &mut fidl::encoding::Decoder<'_, D>,
110 offset: usize,
111 _depth: fidl::encoding::Depth,
112 ) -> fidl::Result<()> {
113 decoder.debug_check_bounds::<Self>(offset);
114 let prim = decoder.read_num::<u32>(offset);
115
116 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
117 Ok(())
118 }
119 }
120
121 impl CreateRealmResponse {
122 #[inline(always)]
123 fn max_ordinal_present(&self) -> u64 {
124 if let Some(_) = self.wlandevicemonitor_moniker {
125 return 2;
126 }
127 if let Some(_) = self.wlan_policy_moniker {
128 return 1;
129 }
130 0
131 }
132 }
133
134 impl fidl::encoding::ValueTypeMarker for CreateRealmResponse {
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 CreateRealmResponse {
142 type Owned = Self;
143
144 #[inline(always)]
145 fn inline_align(_context: fidl::encoding::Context) -> usize {
146 8
147 }
148
149 #[inline(always)]
150 fn inline_size(_context: fidl::encoding::Context) -> usize {
151 16
152 }
153 }
154
155 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<CreateRealmResponse, D>
156 for &CreateRealmResponse
157 {
158 unsafe fn encode(
159 self,
160 encoder: &mut fidl::encoding::Encoder<'_, D>,
161 offset: usize,
162 mut depth: fidl::encoding::Depth,
163 ) -> fidl::Result<()> {
164 encoder.debug_check_bounds::<CreateRealmResponse>(offset);
165 let max_ordinal: u64 = self.max_ordinal_present();
167 encoder.write_num(max_ordinal, offset);
168 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
169 if max_ordinal == 0 {
171 return Ok(());
172 }
173 depth.increment()?;
174 let envelope_size = 8;
175 let bytes_len = max_ordinal as usize * envelope_size;
176 #[allow(unused_variables)]
177 let offset = encoder.out_of_line_offset(bytes_len);
178 let mut _prev_end_offset: usize = 0;
179 if 1 > max_ordinal {
180 return Ok(());
181 }
182
183 let cur_offset: usize = (1 - 1) * envelope_size;
186
187 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
189
190 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
195 self.wlan_policy_moniker.as_ref().map(
196 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
197 ),
198 encoder,
199 offset + cur_offset,
200 depth,
201 )?;
202
203 _prev_end_offset = cur_offset + envelope_size;
204 if 2 > max_ordinal {
205 return Ok(());
206 }
207
208 let cur_offset: usize = (2 - 1) * envelope_size;
211
212 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
214
215 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::UnboundedString, D>(
220 self.wlandevicemonitor_moniker.as_ref().map(
221 <fidl::encoding::UnboundedString as fidl::encoding::ValueTypeMarker>::borrow,
222 ),
223 encoder,
224 offset + cur_offset,
225 depth,
226 )?;
227
228 _prev_end_offset = cur_offset + envelope_size;
229
230 Ok(())
231 }
232 }
233
234 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for CreateRealmResponse {
235 #[inline(always)]
236 fn new_empty() -> Self {
237 Self::default()
238 }
239
240 unsafe fn decode(
241 &mut self,
242 decoder: &mut fidl::encoding::Decoder<'_, D>,
243 offset: usize,
244 mut depth: fidl::encoding::Depth,
245 ) -> fidl::Result<()> {
246 decoder.debug_check_bounds::<Self>(offset);
247 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
248 None => return Err(fidl::Error::NotNullable),
249 Some(len) => len,
250 };
251 if len == 0 {
253 return Ok(());
254 };
255 depth.increment()?;
256 let envelope_size = 8;
257 let bytes_len = len * envelope_size;
258 let offset = decoder.out_of_line_offset(bytes_len)?;
259 let mut _next_ordinal_to_read = 0;
261 let mut next_offset = offset;
262 let end_offset = offset + bytes_len;
263 _next_ordinal_to_read += 1;
264 if next_offset >= end_offset {
265 return Ok(());
266 }
267
268 while _next_ordinal_to_read < 1 {
270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
271 _next_ordinal_to_read += 1;
272 next_offset += envelope_size;
273 }
274
275 let next_out_of_line = decoder.next_out_of_line();
276 let handles_before = decoder.remaining_handles();
277 if let Some((inlined, num_bytes, num_handles)) =
278 fidl::encoding::decode_envelope_header(decoder, next_offset)?
279 {
280 let member_inline_size =
281 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
282 decoder.context,
283 );
284 if inlined != (member_inline_size <= 4) {
285 return Err(fidl::Error::InvalidInlineBitInEnvelope);
286 }
287 let inner_offset;
288 let mut inner_depth = depth.clone();
289 if inlined {
290 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
291 inner_offset = next_offset;
292 } else {
293 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
294 inner_depth.increment()?;
295 }
296 let val_ref = self
297 .wlan_policy_moniker
298 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
299 fidl::decode!(
300 fidl::encoding::UnboundedString,
301 D,
302 val_ref,
303 decoder,
304 inner_offset,
305 inner_depth
306 )?;
307 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
308 {
309 return Err(fidl::Error::InvalidNumBytesInEnvelope);
310 }
311 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
312 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
313 }
314 }
315
316 next_offset += envelope_size;
317 _next_ordinal_to_read += 1;
318 if next_offset >= end_offset {
319 return Ok(());
320 }
321
322 while _next_ordinal_to_read < 2 {
324 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
325 _next_ordinal_to_read += 1;
326 next_offset += envelope_size;
327 }
328
329 let next_out_of_line = decoder.next_out_of_line();
330 let handles_before = decoder.remaining_handles();
331 if let Some((inlined, num_bytes, num_handles)) =
332 fidl::encoding::decode_envelope_header(decoder, next_offset)?
333 {
334 let member_inline_size =
335 <fidl::encoding::UnboundedString as fidl::encoding::TypeMarker>::inline_size(
336 decoder.context,
337 );
338 if inlined != (member_inline_size <= 4) {
339 return Err(fidl::Error::InvalidInlineBitInEnvelope);
340 }
341 let inner_offset;
342 let mut inner_depth = depth.clone();
343 if inlined {
344 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
345 inner_offset = next_offset;
346 } else {
347 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
348 inner_depth.increment()?;
349 }
350 let val_ref = self
351 .wlandevicemonitor_moniker
352 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::UnboundedString, D));
353 fidl::decode!(
354 fidl::encoding::UnboundedString,
355 D,
356 val_ref,
357 decoder,
358 inner_offset,
359 inner_depth
360 )?;
361 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
362 {
363 return Err(fidl::Error::InvalidNumBytesInEnvelope);
364 }
365 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
366 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
367 }
368 }
369
370 next_offset += envelope_size;
371
372 while next_offset < end_offset {
374 _next_ordinal_to_read += 1;
375 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
376 next_offset += envelope_size;
377 }
378
379 Ok(())
380 }
381 }
382}