fidl_cf_sc_internal_btgapconfig/
fidl_cf_sc_internal_btgapconfig.rs1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10use futures::future::{self, MaybeDone, TryFutureExt};
11use zx_status;
12
13#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
14pub struct Config {
15 pub bredr_connectable: bool,
16 pub bredr_security_mode: String,
17 pub le_background_scanning: bool,
18 pub le_privacy: bool,
19 pub le_security_mode: String,
20}
21
22impl fidl::Persistable for Config {}
23
24mod internal {
25 use super::*;
26
27 impl fidl::encoding::ValueTypeMarker for Config {
28 type Borrowed<'a> = &'a Self;
29 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
30 value
31 }
32 }
33
34 unsafe impl fidl::encoding::TypeMarker for Config {
35 type Owned = Self;
36
37 #[inline(always)]
38 fn inline_align(_context: fidl::encoding::Context) -> usize {
39 8
40 }
41
42 #[inline(always)]
43 fn inline_size(_context: fidl::encoding::Context) -> usize {
44 48
45 }
46 }
47
48 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Config, D> for &Config {
49 #[inline]
50 unsafe fn encode(
51 self,
52 encoder: &mut fidl::encoding::Encoder<'_, D>,
53 offset: usize,
54 _depth: fidl::encoding::Depth,
55 ) -> fidl::Result<()> {
56 encoder.debug_check_bounds::<Config>(offset);
57 fidl::encoding::Encode::<Config, D>::encode(
59 (
60 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.bredr_connectable),
61 <fidl::encoding::BoundedString<21> as fidl::encoding::ValueTypeMarker>::borrow(
62 &self.bredr_security_mode,
63 ),
64 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.le_background_scanning),
65 <bool as fidl::encoding::ValueTypeMarker>::borrow(&self.le_privacy),
66 <fidl::encoding::BoundedString<21> as fidl::encoding::ValueTypeMarker>::borrow(
67 &self.le_security_mode,
68 ),
69 ),
70 encoder,
71 offset,
72 _depth,
73 )
74 }
75 }
76 unsafe impl<
77 D: fidl::encoding::ResourceDialect,
78 T0: fidl::encoding::Encode<bool, D>,
79 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<21>, D>,
80 T2: fidl::encoding::Encode<bool, D>,
81 T3: fidl::encoding::Encode<bool, D>,
82 T4: fidl::encoding::Encode<fidl::encoding::BoundedString<21>, D>,
83 > fidl::encoding::Encode<Config, D> for (T0, T1, T2, T3, T4)
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::<Config>(offset);
93 unsafe {
96 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
97 (ptr as *mut u64).write_unaligned(0);
98 }
99 unsafe {
100 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(24);
101 (ptr as *mut u64).write_unaligned(0);
102 }
103 self.0.encode(encoder, offset + 0, depth)?;
105 self.1.encode(encoder, offset + 8, depth)?;
106 self.2.encode(encoder, offset + 24, depth)?;
107 self.3.encode(encoder, offset + 25, depth)?;
108 self.4.encode(encoder, offset + 32, depth)?;
109 Ok(())
110 }
111 }
112
113 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for Config {
114 #[inline(always)]
115 fn new_empty() -> Self {
116 Self {
117 bredr_connectable: fidl::new_empty!(bool, D),
118 bredr_security_mode: fidl::new_empty!(fidl::encoding::BoundedString<21>, D),
119 le_background_scanning: fidl::new_empty!(bool, D),
120 le_privacy: fidl::new_empty!(bool, D),
121 le_security_mode: fidl::new_empty!(fidl::encoding::BoundedString<21>, D),
122 }
123 }
124
125 #[inline]
126 unsafe fn decode(
127 &mut self,
128 decoder: &mut fidl::encoding::Decoder<'_, D>,
129 offset: usize,
130 _depth: fidl::encoding::Depth,
131 ) -> fidl::Result<()> {
132 decoder.debug_check_bounds::<Self>(offset);
133 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
135 let padval = unsafe { (ptr as *const u64).read_unaligned() };
136 let mask = 0xffffffffffffff00u64;
137 let maskedval = padval & mask;
138 if maskedval != 0 {
139 return Err(fidl::Error::NonZeroPadding {
140 padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
141 });
142 }
143 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(24) };
144 let padval = unsafe { (ptr as *const u64).read_unaligned() };
145 let mask = 0xffffffffffff0000u64;
146 let maskedval = padval & mask;
147 if maskedval != 0 {
148 return Err(fidl::Error::NonZeroPadding {
149 padding_start: offset + 24 + ((mask as u64).trailing_zeros() / 8) as usize,
150 });
151 }
152 fidl::decode!(bool, D, &mut self.bredr_connectable, decoder, offset + 0, _depth)?;
153 fidl::decode!(
154 fidl::encoding::BoundedString<21>,
155 D,
156 &mut self.bredr_security_mode,
157 decoder,
158 offset + 8,
159 _depth
160 )?;
161 fidl::decode!(bool, D, &mut self.le_background_scanning, decoder, offset + 24, _depth)?;
162 fidl::decode!(bool, D, &mut self.le_privacy, decoder, offset + 25, _depth)?;
163 fidl::decode!(
164 fidl::encoding::BoundedString<21>,
165 D,
166 &mut self.le_security_mode,
167 decoder,
168 offset + 32,
169 _depth
170 )?;
171 Ok(())
172 }
173 }
174}