Skip to main content

fidl_cf_sc_internal_bthostconfig_common/
fidl_cf_sc_internal_bthostconfig_common.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![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 device_path: String,
14    pub enable_suspend: bool,
15    pub hci_command_timeout_seconds: u16,
16    pub le_active_scan_interval: u16,
17    pub le_active_scan_window: u16,
18    pub le_fast_adv_interval_max: u16,
19    pub le_fast_adv_interval_min: u16,
20    pub le_fast_adv_max_tx_power: i8,
21    pub le_slow_adv_interval_max: u16,
22    pub le_slow_adv_interval_min: u16,
23    pub le_slow_adv_max_tx_power: i8,
24    pub le_very_fast_adv_interval_max: u16,
25    pub le_very_fast_adv_interval_min: u16,
26    pub le_very_fast_adv_max_tx_power: i8,
27    pub legacy_pairing_enabled: bool,
28    pub override_vendor_capabilites_version: u16,
29    pub sco_offload_path_index: u8,
30}
31
32impl fidl::Persistable for Config {}
33
34mod internal {
35    use super::*;
36
37    impl fidl::encoding::ValueTypeMarker for Config {
38        type Borrowed<'a> = &'a Self;
39        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
40            value
41        }
42    }
43
44    unsafe impl fidl::encoding::TypeMarker for Config {
45        type Owned = Self;
46
47        #[inline(always)]
48        fn inline_align(_context: fidl::encoding::Context) -> usize {
49            8
50        }
51
52        #[inline(always)]
53        fn inline_size(_context: fidl::encoding::Context) -> usize {
54            48
55        }
56    }
57
58    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
59        #[inline]
60        unsafe fn encode(
61            self,
62            encoder: &mut fidl::encoding::Encoder<'_, D>,
63            offset: usize,
64            _depth: fidl::encoding::Depth,
65        ) -> fidl::Result<()> {
66            encoder.debug_check_bounds::<Config>(offset);
67            // Delegate to tuple encoding.
68            fidl::encoding::Encode::<Config, D>::encode(
69                (
70                    <fidl::encoding::BoundedString<512> as fidl::encoding::ValueTypeMarker>::borrow(
71                        &self.device_path,
72                    ),
73                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.enable_suspend),
74                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
75                        &self.hci_command_timeout_seconds,
76                    ),
77                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.le_active_scan_interval),
78                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(&self.le_active_scan_window),
79                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
80                        &self.le_fast_adv_interval_max,
81                    ),
82                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
83                        &self.le_fast_adv_interval_min,
84                    ),
85                    <i8 as fidl::encoding::ValueTypeMarker>::borrow(&self.le_fast_adv_max_tx_power),
86                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
87                        &self.le_slow_adv_interval_max,
88                    ),
89                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
90                        &self.le_slow_adv_interval_min,
91                    ),
92                    <i8 as fidl::encoding::ValueTypeMarker>::borrow(&self.le_slow_adv_max_tx_power),
93                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
94                        &self.le_very_fast_adv_interval_max,
95                    ),
96                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
97                        &self.le_very_fast_adv_interval_min,
98                    ),
99                    <i8 as fidl::encoding::ValueTypeMarker>::borrow(
100                        &self.le_very_fast_adv_max_tx_power,
101                    ),
102                    <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.legacy_pairing_enabled),
103                    <u16 as fidl::encoding::ValueTypeMarker>::borrow(
104                        &self.override_vendor_capabilites_version,
105                    ),
106                    <u8 as fidl::encoding::ValueTypeMarker>::borrow(&self.sco_offload_path_index),
107                ),
108                encoder,
109                offset,
110                _depth,
111            )
112        }
113    }
114    unsafe impl<
115        D: fidl::encoding::ResourceDialect,
116        T0: fidl::encoding::Encode<fidl::encoding::BoundedString<512>, D>,
117        T1: fidl::encoding::Encode<bool, D>,
118        T2: fidl::encoding::Encode<u16, D>,
119        T3: fidl::encoding::Encode<u16, D>,
120        T4: fidl::encoding::Encode<u16, D>,
121        T5: fidl::encoding::Encode<u16, D>,
122        T6: fidl::encoding::Encode<u16, D>,
123        T7: fidl::encoding::Encode<i8, D>,
124        T8: fidl::encoding::Encode<u16, D>,
125        T9: fidl::encoding::Encode<u16, D>,
126        T10: fidl::encoding::Encode<i8, D>,
127        T11: fidl::encoding::Encode<u16, D>,
128        T12: fidl::encoding::Encode<u16, D>,
129        T13: fidl::encoding::Encode<i8, D>,
130        T14: fidl::encoding::Encode<bool, D>,
131        T15: fidl::encoding::Encode<u16, D>,
132        T16: fidl::encoding::Encode<u8, D>,
133    > fidl::encoding::Encode<Config, D>
134        for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)
135    {
136        #[inline]
137        unsafe fn encode(
138            self,
139            encoder: &mut fidl::encoding::Encoder<'_, D>,
140            offset: usize,
141            depth: fidl::encoding::Depth,
142        ) -> fidl::Result<()> {
143            encoder.debug_check_bounds::<Config>(offset);
144            // Zero out padding regions. There's no need to apply masks
145            // because the unmasked parts will be overwritten by fields.
146            unsafe {
147                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
148                (ptr as *mut u64).write_unaligned(0);
149            }
150            unsafe {
151                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
152                (ptr as *mut u64).write_unaligned(0);
153            }
154            unsafe {
155                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
156                (ptr as *mut u64).write_unaligned(0);
157            }
158            unsafe {
159                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(40);
160                (ptr as *mut u64).write_unaligned(0);
161            }
162            // Write the fields.
163            self.0.encode(encoder, offset + 0, depth)?;
164            self.1.encode(encoder, offset + 16, depth)?;
165            self.2.encode(encoder, offset + 18, depth)?;
166            self.3.encode(encoder, offset + 20, depth)?;
167            self.4.encode(encoder, offset + 22, depth)?;
168            self.5.encode(encoder, offset + 24, depth)?;
169            self.6.encode(encoder, offset + 26, depth)?;
170            self.7.encode(encoder, offset + 28, depth)?;
171            self.8.encode(encoder, offset + 30, depth)?;
172            self.9.encode(encoder, offset + 32, depth)?;
173            self.10.encode(encoder, offset + 34, depth)?;
174            self.11.encode(encoder, offset + 36, depth)?;
175            self.12.encode(encoder, offset + 38, depth)?;
176            self.13.encode(encoder, offset + 40, depth)?;
177            self.14.encode(encoder, offset + 41, depth)?;
178            self.15.encode(encoder, offset + 42, depth)?;
179            self.16.encode(encoder, offset + 44, depth)?;
180            Ok(())
181        }
182    }
183
184    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
185        #[inline(always)]
186        fn new_empty() -> Self {
187            Self {
188                device_path: fidl::new_empty!(fidl::encoding::BoundedString<512>, D),
189                enable_suspend: fidl::new_empty!(bool, D),
190                hci_command_timeout_seconds: fidl::new_empty!(u16, D),
191                le_active_scan_interval: fidl::new_empty!(u16, D),
192                le_active_scan_window: fidl::new_empty!(u16, D),
193                le_fast_adv_interval_max: fidl::new_empty!(u16, D),
194                le_fast_adv_interval_min: fidl::new_empty!(u16, D),
195                le_fast_adv_max_tx_power: fidl::new_empty!(i8, D),
196                le_slow_adv_interval_max: fidl::new_empty!(u16, D),
197                le_slow_adv_interval_min: fidl::new_empty!(u16, D),
198                le_slow_adv_max_tx_power: fidl::new_empty!(i8, D),
199                le_very_fast_adv_interval_max: fidl::new_empty!(u16, D),
200                le_very_fast_adv_interval_min: fidl::new_empty!(u16, D),
201                le_very_fast_adv_max_tx_power: fidl::new_empty!(i8, D),
202                legacy_pairing_enabled: fidl::new_empty!(bool, D),
203                override_vendor_capabilites_version: fidl::new_empty!(u16, D),
204                sco_offload_path_index: fidl::new_empty!(u8, D),
205            }
206        }
207
208        #[inline]
209        unsafe fn decode(
210            &mut self,
211            decoder: &mut fidl::encoding::Decoder<'_, D>,
212            offset: usize,
213            _depth: fidl::encoding::Depth,
214        ) -> fidl::Result<()> {
215            decoder.debug_check_bounds::<Self>(offset);
216            // Verify that padding bytes are zero.
217            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
218            let padval = unsafe { (ptr as *const u64).read_unaligned() };
219            let mask = 0xff00u64;
220            let maskedval = padval & mask;
221            if maskedval != 0 {
222                return Err(fidl::Error::NonZeroPadding {
223                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
224                });
225            }
226            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
227            let padval = unsafe { (ptr as *const u64).read_unaligned() };
228            let mask = 0xff0000000000u64;
229            let maskedval = padval & mask;
230            if maskedval != 0 {
231                return Err(fidl::Error::NonZeroPadding {
232                    padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
233                });
234            }
235            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
236            let padval = unsafe { (ptr as *const u64).read_unaligned() };
237            let mask = 0xff000000u64;
238            let maskedval = padval & mask;
239            if maskedval != 0 {
240                return Err(fidl::Error::NonZeroPadding {
241                    padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
242                });
243            }
244            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(40) };
245            let padval = unsafe { (ptr as *const u64).read_unaligned() };
246            let mask = 0xffffff0000000000u64;
247            let maskedval = padval & mask;
248            if maskedval != 0 {
249                return Err(fidl::Error::NonZeroPadding {
250                    padding_start: offset + 40 + ((mask as u64).trailing_zeros() / 8) as usize,
251                });
252            }
253            fidl::decode!(
254                fidl::encoding::BoundedString<512>,
255                D,
256                &mut self.device_path,
257                decoder,
258                offset + 0,
259                _depth
260            )?;
261            fidl::decode!(bool, D, &mut self.enable_suspend, decoder, offset + 16, _depth)?;
262            fidl::decode!(
263                u16,
264                D,
265                &mut self.hci_command_timeout_seconds,
266                decoder,
267                offset + 18,
268                _depth
269            )?;
270            fidl::decode!(u16, D, &mut self.le_active_scan_interval, decoder, offset + 20, _depth)?;
271            fidl::decode!(u16, D, &mut self.le_active_scan_window, decoder, offset + 22, _depth)?;
272            fidl::decode!(
273                u16,
274                D,
275                &mut self.le_fast_adv_interval_max,
276                decoder,
277                offset + 24,
278                _depth
279            )?;
280            fidl::decode!(
281                u16,
282                D,
283                &mut self.le_fast_adv_interval_min,
284                decoder,
285                offset + 26,
286                _depth
287            )?;
288            fidl::decode!(i8, D, &mut self.le_fast_adv_max_tx_power, decoder, offset + 28, _depth)?;
289            fidl::decode!(
290                u16,
291                D,
292                &mut self.le_slow_adv_interval_max,
293                decoder,
294                offset + 30,
295                _depth
296            )?;
297            fidl::decode!(
298                u16,
299                D,
300                &mut self.le_slow_adv_interval_min,
301                decoder,
302                offset + 32,
303                _depth
304            )?;
305            fidl::decode!(i8, D, &mut self.le_slow_adv_max_tx_power, decoder, offset + 34, _depth)?;
306            fidl::decode!(
307                u16,
308                D,
309                &mut self.le_very_fast_adv_interval_max,
310                decoder,
311                offset + 36,
312                _depth
313            )?;
314            fidl::decode!(
315                u16,
316                D,
317                &mut self.le_very_fast_adv_interval_min,
318                decoder,
319                offset + 38,
320                _depth
321            )?;
322            fidl::decode!(
323                i8,
324                D,
325                &mut self.le_very_fast_adv_max_tx_power,
326                decoder,
327                offset + 40,
328                _depth
329            )?;
330            fidl::decode!(bool, D, &mut self.legacy_pairing_enabled, decoder, offset + 41, _depth)?;
331            fidl::decode!(
332                u16,
333                D,
334                &mut self.override_vendor_capabilites_version,
335                decoder,
336                offset + 42,
337                _depth
338            )?;
339            fidl::decode!(u8, D, &mut self.sco_offload_path_index, decoder, offset + 44, _depth)?;
340            Ok(())
341        }
342    }
343}