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(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
12pub struct Config {
13 pub buffer_count: u32,
14 pub color_scheme: String,
15 pub disable: bool,
16 pub display_rotation: u32,
17 pub dpi: Vec<u32>,
18 pub font_size: String,
19 pub keep_log_visible: bool,
20 pub key_map: String,
21 pub keyrepeat: bool,
22 pub rounded_corners: bool,
23 pub scrollback_rows: u32,
24 pub show_logo: bool,
25}
26
27impl fidl::Persistable for Config {}
28
29mod internal {
30 use super::*;
31
32 impl fidl::encoding::ValueTypeMarker for Config {
33 type Borrowed<'a> = &'a Self;
34 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
35 value
36 }
37 }
38
39 unsafe impl fidl::encoding::TypeMarker for Config {
40 type Owned = Self;
41
42 #[inline(always)]
43 fn inline_align(_context: fidl::encoding::Context) -> usize {
44 8
45 }
46
47 #[inline(always)]
48 fn inline_size(_context: fidl::encoding::Context) -> usize {
49 104
50 }
51 }
52
53 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
54 #[inline]
55 unsafe fn encode(
56 self,
57 encoder: &mut fidl::encoding::Encoder<'_, D>,
58 offset: usize,
59 _depth: fidl::encoding::Depth,
60 ) -> fidl::Result<()> {
61 encoder.debug_check_bounds::<Config>(offset);
62 fidl::encoding::Encode::<Config, D>::encode(
64 (
65 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.buffer_count),
66 <fidl::encoding::BoundedString<20> as fidl::encoding::ValueTypeMarker>::borrow(
67 &self.color_scheme,
68 ),
69 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.disable),
70 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.display_rotation),
71 <fidl::encoding::Vector<u32, 10> as fidl::encoding::ValueTypeMarker>::borrow(
72 &self.dpi,
73 ),
74 <fidl::encoding::BoundedString<10> as fidl::encoding::ValueTypeMarker>::borrow(
75 &self.font_size,
76 ),
77 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.keep_log_visible),
78 <fidl::encoding::BoundedString<10> as fidl::encoding::ValueTypeMarker>::borrow(
79 &self.key_map,
80 ),
81 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.keyrepeat),
82 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.rounded_corners),
83 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.scrollback_rows),
84 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.show_logo),
85 ),
86 encoder,
87 offset,
88 _depth,
89 )
90 }
91 }
92 unsafe impl<
93 D: fidl::encoding::ResourceDialect,
94 T0: fidl::encoding::Encode<u32, D>,
95 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<20>, D>,
96 T2: fidl::encoding::Encode<bool, D>,
97 T3: fidl::encoding::Encode<u32, D>,
98 T4: fidl::encoding::Encode<fidl::encoding::Vector<u32, 10>, D>,
99 T5: fidl::encoding::Encode<fidl::encoding::BoundedString<10>, D>,
100 T6: fidl::encoding::Encode<bool, D>,
101 T7: fidl::encoding::Encode<fidl::encoding::BoundedString<10>, D>,
102 T8: fidl::encoding::Encode<bool, D>,
103 T9: fidl::encoding::Encode<bool, D>,
104 T10: fidl::encoding::Encode<u32, D>,
105 T11: fidl::encoding::Encode<bool, D>,
106 > fidl::encoding::Encode<Config, D> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
107 {
108 #[inline]
109 unsafe fn encode(
110 self,
111 encoder: &mut fidl::encoding::Encoder<'_, D>,
112 offset: usize,
113 depth: fidl::encoding::Depth,
114 ) -> fidl::Result<()> {
115 encoder.debug_check_bounds::<Config>(offset);
116 unsafe {
119 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
120 (ptr as *mut u64).write_unaligned(0);
121 }
122 unsafe {
123 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
124 (ptr as *mut u64).write_unaligned(0);
125 }
126 unsafe {
127 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(64);
128 (ptr as *mut u64).write_unaligned(0);
129 }
130 unsafe {
131 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(88);
132 (ptr as *mut u64).write_unaligned(0);
133 }
134 unsafe {
135 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(96);
136 (ptr as *mut u64).write_unaligned(0);
137 }
138 self.0.encode(encoder, offset + 0, depth)?;
140 self.1.encode(encoder, offset + 8, depth)?;
141 self.2.encode(encoder, offset + 24, depth)?;
142 self.3.encode(encoder, offset + 28, depth)?;
143 self.4.encode(encoder, offset + 32, depth)?;
144 self.5.encode(encoder, offset + 48, depth)?;
145 self.6.encode(encoder, offset + 64, depth)?;
146 self.7.encode(encoder, offset + 72, depth)?;
147 self.8.encode(encoder, offset + 88, depth)?;
148 self.9.encode(encoder, offset + 89, depth)?;
149 self.10.encode(encoder, offset + 92, depth)?;
150 self.11.encode(encoder, offset + 96, depth)?;
151 Ok(())
152 }
153 }
154
155 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
156 #[inline(always)]
157 fn new_empty() -> Self {
158 Self {
159 buffer_count: fidl::new_empty!(u32, D),
160 color_scheme: fidl::new_empty!(fidl::encoding::BoundedString<20>, D),
161 disable: fidl::new_empty!(bool, D),
162 display_rotation: fidl::new_empty!(u32, D),
163 dpi: fidl::new_empty!(fidl::encoding::Vector<u32, 10>, D),
164 font_size: fidl::new_empty!(fidl::encoding::BoundedString<10>, D),
165 keep_log_visible: fidl::new_empty!(bool, D),
166 key_map: fidl::new_empty!(fidl::encoding::BoundedString<10>, D),
167 keyrepeat: fidl::new_empty!(bool, D),
168 rounded_corners: fidl::new_empty!(bool, D),
169 scrollback_rows: fidl::new_empty!(u32, D),
170 show_logo: fidl::new_empty!(bool, D),
171 }
172 }
173
174 #[inline]
175 unsafe fn decode(
176 &mut self,
177 decoder: &mut fidl::encoding::Decoder<'_, D>,
178 offset: usize,
179 _depth: fidl::encoding::Depth,
180 ) -> fidl::Result<()> {
181 decoder.debug_check_bounds::<Self>(offset);
182 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
184 let padval = unsafe { (ptr as *const u64).read_unaligned() };
185 let mask = 0xffffffff00000000u64;
186 let maskedval = padval & mask;
187 if maskedval != 0 {
188 return Err(fidl::Error::NonZeroPadding {
189 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
190 });
191 }
192 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
193 let padval = unsafe { (ptr as *const u64).read_unaligned() };
194 let mask = 0xffffff00u64;
195 let maskedval = padval & mask;
196 if maskedval != 0 {
197 return Err(fidl::Error::NonZeroPadding {
198 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
199 });
200 }
201 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(64) };
202 let padval = unsafe { (ptr as *const u64).read_unaligned() };
203 let mask = 0xffffffffffffff00u64;
204 let maskedval = padval & mask;
205 if maskedval != 0 {
206 return Err(fidl::Error::NonZeroPadding {
207 padding_start: offset + 64 + ((mask as u64).trailing_zeros() / 8) as usize,
208 });
209 }
210 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(88) };
211 let padval = unsafe { (ptr as *const u64).read_unaligned() };
212 let mask = 0xffff0000u64;
213 let maskedval = padval & mask;
214 if maskedval != 0 {
215 return Err(fidl::Error::NonZeroPadding {
216 padding_start: offset + 88 + ((mask as u64).trailing_zeros() / 8) as usize,
217 });
218 }
219 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(96) };
220 let padval = unsafe { (ptr as *const u64).read_unaligned() };
221 let mask = 0xffffffffffffff00u64;
222 let maskedval = padval & mask;
223 if maskedval != 0 {
224 return Err(fidl::Error::NonZeroPadding {
225 padding_start: offset + 96 + ((mask as u64).trailing_zeros() / 8) as usize,
226 });
227 }
228 fidl::decode!(u32, D, &mut self.buffer_count, decoder, offset + 0, _depth)?;
229 fidl::decode!(
230 fidl::encoding::BoundedString<20>,
231 D,
232 &mut self.color_scheme,
233 decoder,
234 offset + 8,
235 _depth
236 )?;
237 fidl::decode!(bool, D, &mut self.disable, decoder, offset + 24, _depth)?;
238 fidl::decode!(u32, D, &mut self.display_rotation, decoder, offset + 28, _depth)?;
239 fidl::decode!(fidl::encoding::Vector<u32, 10>, D, &mut self.dpi, decoder, offset + 32, _depth)?;
240 fidl::decode!(
241 fidl::encoding::BoundedString<10>,
242 D,
243 &mut self.font_size,
244 decoder,
245 offset + 48,
246 _depth
247 )?;
248 fidl::decode!(bool, D, &mut self.keep_log_visible, decoder, offset + 64, _depth)?;
249 fidl::decode!(
250 fidl::encoding::BoundedString<10>,
251 D,
252 &mut self.key_map,
253 decoder,
254 offset + 72,
255 _depth
256 )?;
257 fidl::decode!(bool, D, &mut self.keyrepeat, decoder, offset + 88, _depth)?;
258 fidl::decode!(bool, D, &mut self.rounded_corners, decoder, offset + 89, _depth)?;
259 fidl::decode!(u32, D, &mut self.scrollback_rows, decoder, offset + 92, _depth)?;
260 fidl::decode!(bool, D, &mut self.show_logo, decoder, offset + 96, _depth)?;
261 Ok(())
262 }
263 }
264}