fidl_fuchsia_net_power__common/
fidl_fuchsia_net_power__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
11pub const MAX_NAME_LEN: u8 = 255;
12
13#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
14pub struct Empty;
15
16impl fidl::Persistable for Empty {}
17
18#[derive(Clone, Debug, Default, PartialEq)]
19pub struct WakeGroupOptions {
20 pub debug_name: Option<String>,
24 #[doc(hidden)]
25 pub __source_breaking: fidl::marker::SourceBreaking,
26}
27
28impl fidl::Persistable for WakeGroupOptions {}
29
30pub mod wake_group_ordinals {
31 pub const WAIT_FOR_DATA: u64 = 0x1b9ea0f8e92c2e79;
32 pub const ARM: u64 = 0x4339c3052501e712;
33}
34
35pub mod wake_group_provider_ordinals {
36 pub const CREATE_WAKE_GROUP: u64 = 0x3c6a15f6c6b1447f;
37}
38
39mod internal {
40 use super::*;
41
42 impl fidl::encoding::ValueTypeMarker for Empty {
43 type Borrowed<'a> = &'a Self;
44 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
45 value
46 }
47 }
48
49 unsafe impl fidl::encoding::TypeMarker for Empty {
50 type Owned = Self;
51
52 #[inline(always)]
53 fn inline_align(_context: fidl::encoding::Context) -> usize {
54 1
55 }
56
57 #[inline(always)]
58 fn inline_size(_context: fidl::encoding::Context) -> usize {
59 1
60 }
61 }
62
63 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Empty, D> for &Empty {
64 #[inline]
65 unsafe fn encode(
66 self,
67 encoder: &mut fidl::encoding::Encoder<'_, D>,
68 offset: usize,
69 _depth: fidl::encoding::Depth,
70 ) -> fidl::Result<()> {
71 encoder.debug_check_bounds::<Empty>(offset);
72 encoder.write_num(0u8, offset);
73 Ok(())
74 }
75 }
76
77 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Empty {
78 #[inline(always)]
79 fn new_empty() -> Self {
80 Self
81 }
82
83 #[inline]
84 unsafe fn decode(
85 &mut self,
86 decoder: &mut fidl::encoding::Decoder<'_, D>,
87 offset: usize,
88 _depth: fidl::encoding::Depth,
89 ) -> fidl::Result<()> {
90 decoder.debug_check_bounds::<Self>(offset);
91 match decoder.read_num::<u8>(offset) {
92 0 => Ok(()),
93 _ => Err(fidl::Error::Invalid),
94 }
95 }
96 }
97
98 impl WakeGroupOptions {
99 #[inline(always)]
100 fn max_ordinal_present(&self) -> u64 {
101 if let Some(_) = self.debug_name {
102 return 1;
103 }
104 0
105 }
106 }
107
108 impl fidl::encoding::ValueTypeMarker for WakeGroupOptions {
109 type Borrowed<'a> = &'a Self;
110 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
111 value
112 }
113 }
114
115 unsafe impl fidl::encoding::TypeMarker for WakeGroupOptions {
116 type Owned = Self;
117
118 #[inline(always)]
119 fn inline_align(_context: fidl::encoding::Context) -> usize {
120 8
121 }
122
123 #[inline(always)]
124 fn inline_size(_context: fidl::encoding::Context) -> usize {
125 16
126 }
127 }
128
129 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WakeGroupOptions, D>
130 for &WakeGroupOptions
131 {
132 unsafe fn encode(
133 self,
134 encoder: &mut fidl::encoding::Encoder<'_, D>,
135 offset: usize,
136 mut depth: fidl::encoding::Depth,
137 ) -> fidl::Result<()> {
138 encoder.debug_check_bounds::<WakeGroupOptions>(offset);
139 let max_ordinal: u64 = self.max_ordinal_present();
141 encoder.write_num(max_ordinal, offset);
142 encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
143 if max_ordinal == 0 {
145 return Ok(());
146 }
147 depth.increment()?;
148 let envelope_size = 8;
149 let bytes_len = max_ordinal as usize * envelope_size;
150 #[allow(unused_variables)]
151 let offset = encoder.out_of_line_offset(bytes_len);
152 let mut _prev_end_offset: usize = 0;
153 if 1 > max_ordinal {
154 return Ok(());
155 }
156
157 let cur_offset: usize = (1 - 1) * envelope_size;
160
161 encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
163
164 fidl::encoding::encode_in_envelope_optional::<fidl::encoding::BoundedString<255>, D>(
169 self.debug_name.as_ref().map(
170 <fidl::encoding::BoundedString<255> as fidl::encoding::ValueTypeMarker>::borrow,
171 ),
172 encoder,
173 offset + cur_offset,
174 depth,
175 )?;
176
177 _prev_end_offset = cur_offset + envelope_size;
178
179 Ok(())
180 }
181 }
182
183 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WakeGroupOptions {
184 #[inline(always)]
185 fn new_empty() -> Self {
186 Self::default()
187 }
188
189 unsafe fn decode(
190 &mut self,
191 decoder: &mut fidl::encoding::Decoder<'_, D>,
192 offset: usize,
193 mut depth: fidl::encoding::Depth,
194 ) -> fidl::Result<()> {
195 decoder.debug_check_bounds::<Self>(offset);
196 let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
197 None => return Err(fidl::Error::NotNullable),
198 Some(len) => len,
199 };
200 if len == 0 {
202 return Ok(());
203 };
204 depth.increment()?;
205 let envelope_size = 8;
206 let bytes_len = len * envelope_size;
207 let offset = decoder.out_of_line_offset(bytes_len)?;
208 let mut _next_ordinal_to_read = 0;
210 let mut next_offset = offset;
211 let end_offset = offset + bytes_len;
212 _next_ordinal_to_read += 1;
213 if next_offset >= end_offset {
214 return Ok(());
215 }
216
217 while _next_ordinal_to_read < 1 {
219 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
220 _next_ordinal_to_read += 1;
221 next_offset += envelope_size;
222 }
223
224 let next_out_of_line = decoder.next_out_of_line();
225 let handles_before = decoder.remaining_handles();
226 if let Some((inlined, num_bytes, num_handles)) =
227 fidl::encoding::decode_envelope_header(decoder, next_offset)?
228 {
229 let member_inline_size =
230 <fidl::encoding::BoundedString<255> as fidl::encoding::TypeMarker>::inline_size(
231 decoder.context,
232 );
233 if inlined != (member_inline_size <= 4) {
234 return Err(fidl::Error::InvalidInlineBitInEnvelope);
235 }
236 let inner_offset;
237 let mut inner_depth = depth.clone();
238 if inlined {
239 decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
240 inner_offset = next_offset;
241 } else {
242 inner_offset = decoder.out_of_line_offset(member_inline_size)?;
243 inner_depth.increment()?;
244 }
245 let val_ref = self
246 .debug_name
247 .get_or_insert_with(|| fidl::new_empty!(fidl::encoding::BoundedString<255>, D));
248 fidl::decode!(
249 fidl::encoding::BoundedString<255>,
250 D,
251 val_ref,
252 decoder,
253 inner_offset,
254 inner_depth
255 )?;
256 if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
257 {
258 return Err(fidl::Error::InvalidNumBytesInEnvelope);
259 }
260 if handles_before != decoder.remaining_handles() + (num_handles as usize) {
261 return Err(fidl::Error::InvalidNumHandlesInEnvelope);
262 }
263 }
264
265 next_offset += envelope_size;
266
267 while next_offset < end_offset {
269 _next_ordinal_to_read += 1;
270 fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
271 next_offset += envelope_size;
272 }
273
274 Ok(())
275 }
276 }
277}