fidl_cf_sc_internal_starnixcontainerstructuredconfig__common/
fidl_cf_sc_internal_starnixcontainerstructuredconfig__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, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
12pub struct Config {
13 pub enable_utc_time_adjustment: bool,
14 pub extra_features: Vec<String>,
15 pub mlock_always_onfault: bool,
16 pub mlock_pin_flavor: String,
17 pub selinux_exceptions: Vec<String>,
18 pub ui_visual_debugging_level: u8,
19}
20
21impl fidl::Persistable for Config {}
22
23mod internal {
24 use super::*;
25
26 impl fidl::encoding::ValueTypeMarker for Config {
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 Config {
34 type Owned = Self;
35
36 #[inline(always)]
37 fn inline_align(_context: fidl::encoding::Context) -> usize {
38 8
39 }
40
41 #[inline(always)]
42 fn inline_size(_context: fidl::encoding::Context) -> usize {
43 72
44 }
45 }
46
47 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
48 #[inline]
49 unsafe fn encode(
50 self,
51 encoder: &mut fidl::encoding::Encoder<'_, D>,
52 offset: usize,
53 _depth: fidl::encoding::Depth,
54 ) -> fidl::Result<()> {
55 encoder.debug_check_bounds::<Config>(offset);
56 fidl::encoding::Encode::<Config, D>::encode(
58 (
59 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enable_utc_time_adjustment),
60 <fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.extra_features),
61 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.mlock_always_onfault),
62 <fidl::encoding::BoundedString<100> as fidl::encoding::ValueTypeMarker>::borrow(&self.mlock_pin_flavor),
63 <fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024> as fidl::encoding::ValueTypeMarker>::borrow(&self.selinux_exceptions),
64 <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.ui_visual_debugging_level),
65 ),
66 encoder, offset, _depth
67 )
68 }
69 }
70 unsafe impl<
71 D: fidl::encoding::ResourceDialect,
72 T0: fidl::encoding::Encode<bool, D>,
73 T1: fidl::encoding::Encode<
74 fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024>,
75 D,
76 >,
77 T2: fidl::encoding::Encode<bool, D>,
78 T3: fidl::encoding::Encode<fidl::encoding::BoundedString<100>, D>,
79 T4: fidl::encoding::Encode<
80 fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024>,
81 D,
82 >,
83 T5: fidl::encoding::Encode<u8, D>,
84 > fidl::encoding::Encode<Config, D> for (T0, T1, T2, T3, T4, T5)
85 {
86 #[inline]
87 unsafe fn encode(
88 self,
89 encoder: &mut fidl::encoding::Encoder<'_, D>,
90 offset: usize,
91 depth: fidl::encoding::Depth,
92 ) -> fidl::Result<()> {
93 encoder.debug_check_bounds::<Config>(offset);
94 unsafe {
97 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
98 (ptr as *mut u64).write_unaligned(0);
99 }
100 unsafe {
101 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
102 (ptr as *mut u64).write_unaligned(0);
103 }
104 unsafe {
105 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(64);
106 (ptr as *mut u64).write_unaligned(0);
107 }
108 self.0.encode(encoder, offset + 0, depth)?;
110 self.1.encode(encoder, offset + 8, depth)?;
111 self.2.encode(encoder, offset + 24, depth)?;
112 self.3.encode(encoder, offset + 32, depth)?;
113 self.4.encode(encoder, offset + 48, depth)?;
114 self.5.encode(encoder, offset + 64, depth)?;
115 Ok(())
116 }
117 }
118
119 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
120 #[inline(always)]
121 fn new_empty() -> Self {
122 Self {
123 enable_utc_time_adjustment: fidl::new_empty!(bool, D),
124 extra_features: fidl::new_empty!(
125 fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024>,
126 D
127 ),
128 mlock_always_onfault: fidl::new_empty!(bool, D),
129 mlock_pin_flavor: fidl::new_empty!(fidl::encoding::BoundedString<100>, D),
130 selinux_exceptions: fidl::new_empty!(
131 fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024>,
132 D
133 ),
134 ui_visual_debugging_level: fidl::new_empty!(u8, D),
135 }
136 }
137
138 #[inline]
139 unsafe fn decode(
140 &mut self,
141 decoder: &mut fidl::encoding::Decoder<'_, D>,
142 offset: usize,
143 _depth: fidl::encoding::Depth,
144 ) -> fidl::Result<()> {
145 decoder.debug_check_bounds::<Self>(offset);
146 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
148 let padval = unsafe { (ptr as *const u64).read_unaligned() };
149 let mask = 0xffffffffffffff00u64;
150 let maskedval = padval & mask;
151 if maskedval != 0 {
152 return Err(fidl::Error::NonZeroPadding {
153 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
154 });
155 }
156 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
157 let padval = unsafe { (ptr as *const u64).read_unaligned() };
158 let mask = 0xffffffffffffff00u64;
159 let maskedval = padval & mask;
160 if maskedval != 0 {
161 return Err(fidl::Error::NonZeroPadding {
162 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
163 });
164 }
165 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(64) };
166 let padval = unsafe { (ptr as *const u64).read_unaligned() };
167 let mask = 0xffffffffffffff00u64;
168 let maskedval = padval & mask;
169 if maskedval != 0 {
170 return Err(fidl::Error::NonZeroPadding {
171 padding_start: offset + 64 + ((mask as u64).trailing_zeros() / 8) as usize,
172 });
173 }
174 fidl::decode!(
175 bool,
176 D,
177 &mut self.enable_utc_time_adjustment,
178 decoder,
179 offset + 0,
180 _depth
181 )?;
182 fidl::decode!(
183 fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024>,
184 D,
185 &mut self.extra_features,
186 decoder,
187 offset + 8,
188 _depth
189 )?;
190 fidl::decode!(bool, D, &mut self.mlock_always_onfault, decoder, offset + 24, _depth)?;
191 fidl::decode!(
192 fidl::encoding::BoundedString<100>,
193 D,
194 &mut self.mlock_pin_flavor,
195 decoder,
196 offset + 32,
197 _depth
198 )?;
199 fidl::decode!(
200 fidl::encoding::Vector<fidl::encoding::BoundedString<1024>, 1024>,
201 D,
202 &mut self.selinux_exceptions,
203 decoder,
204 offset + 48,
205 _depth
206 )?;
207 fidl::decode!(
208 u8,
209 D,
210 &mut self.ui_visual_debugging_level,
211 decoder,
212 offset + 64,
213 _depth
214 )?;
215 Ok(())
216 }
217 }
218}