fidl_fuchsia_bluetooth_avdtp_test__common/
fidl_fuchsia_bluetooth_avdtp_test__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/// Maximum number of peers that can be connected to a node.
12/// (Core Spec 5.0, Vol 2, Part B, Section 1)
13pub const MAX_PICONET_SIZE: u64 = 8;
14
15/// Represents the return status of a [`fuchsia.bluetooth.avdtp.Peer`] method
16#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
17#[repr(u32)]
18pub enum PeerError {
19    /// Failure reason is not known
20    UnknownFailure = 1,
21    /// The peer is unable to perform the request
22    ProtocolError = 2,
23}
24
25impl PeerError {
26    #[inline]
27    pub fn from_primitive(prim: u32) -> Option<Self> {
28        match prim {
29            1 => Some(Self::UnknownFailure),
30            2 => Some(Self::ProtocolError),
31            _ => None,
32        }
33    }
34
35    #[inline]
36    pub const fn into_primitive(self) -> u32 {
37        self as u32
38    }
39}
40
41#[derive(Clone, Debug, PartialEq)]
42pub struct PeerManagerConnectedPeersResponse {
43    pub peer_ids: Vec<fidl_fuchsia_bluetooth__common::PeerId>,
44}
45
46impl fidl::Persistable for PeerManagerConnectedPeersResponse {}
47
48#[derive(Clone, Debug, PartialEq)]
49pub struct PeerManagerOnPeerConnectedRequest {
50    pub peer_id: fidl_fuchsia_bluetooth__common::PeerId,
51}
52
53impl fidl::Persistable for PeerManagerOnPeerConnectedRequest {}
54
55mod internal {
56    use super::*;
57    unsafe impl fidl::encoding::TypeMarker for PeerError {
58        type Owned = Self;
59
60        #[inline(always)]
61        fn inline_align(_context: fidl::encoding::Context) -> usize {
62            std::mem::align_of::<u32>()
63        }
64
65        #[inline(always)]
66        fn inline_size(_context: fidl::encoding::Context) -> usize {
67            std::mem::size_of::<u32>()
68        }
69
70        #[inline(always)]
71        fn encode_is_copy() -> bool {
72            true
73        }
74
75        #[inline(always)]
76        fn decode_is_copy() -> bool {
77            false
78        }
79    }
80
81    impl fidl::encoding::ValueTypeMarker for PeerError {
82        type Borrowed<'a> = Self;
83        #[inline(always)]
84        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
85            *value
86        }
87    }
88
89    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PeerError {
90        #[inline]
91        unsafe fn encode(
92            self,
93            encoder: &mut fidl::encoding::Encoder<'_, D>,
94            offset: usize,
95            _depth: fidl::encoding::Depth,
96        ) -> fidl::Result<()> {
97            encoder.debug_check_bounds::<Self>(offset);
98            encoder.write_num(self.into_primitive(), offset);
99            Ok(())
100        }
101    }
102
103    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeerError {
104        #[inline(always)]
105        fn new_empty() -> Self {
106            Self::UnknownFailure
107        }
108
109        #[inline]
110        unsafe fn decode(
111            &mut self,
112            decoder: &mut fidl::encoding::Decoder<'_, D>,
113            offset: usize,
114            _depth: fidl::encoding::Depth,
115        ) -> fidl::Result<()> {
116            decoder.debug_check_bounds::<Self>(offset);
117            let prim = decoder.read_num::<u32>(offset);
118
119            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
120            Ok(())
121        }
122    }
123
124    impl fidl::encoding::ValueTypeMarker for PeerManagerConnectedPeersResponse {
125        type Borrowed<'a> = &'a Self;
126        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
127            value
128        }
129    }
130
131    unsafe impl fidl::encoding::TypeMarker for PeerManagerConnectedPeersResponse {
132        type Owned = Self;
133
134        #[inline(always)]
135        fn inline_align(_context: fidl::encoding::Context) -> usize {
136            8
137        }
138
139        #[inline(always)]
140        fn inline_size(_context: fidl::encoding::Context) -> usize {
141            16
142        }
143    }
144
145    unsafe impl<D: fidl::encoding::ResourceDialect>
146        fidl::encoding::Encode<PeerManagerConnectedPeersResponse, D>
147        for &PeerManagerConnectedPeersResponse
148    {
149        #[inline]
150        unsafe fn encode(
151            self,
152            encoder: &mut fidl::encoding::Encoder<'_, D>,
153            offset: usize,
154            _depth: fidl::encoding::Depth,
155        ) -> fidl::Result<()> {
156            encoder.debug_check_bounds::<PeerManagerConnectedPeersResponse>(offset);
157            // Delegate to tuple encoding.
158            fidl::encoding::Encode::<PeerManagerConnectedPeersResponse, D>::encode(
159                (
160                    <fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.peer_ids),
161                ),
162                encoder, offset, _depth
163            )
164        }
165    }
166    unsafe impl<
167            D: fidl::encoding::ResourceDialect,
168            T0: fidl::encoding::Encode<
169                fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8>,
170                D,
171            >,
172        > fidl::encoding::Encode<PeerManagerConnectedPeersResponse, D> for (T0,)
173    {
174        #[inline]
175        unsafe fn encode(
176            self,
177            encoder: &mut fidl::encoding::Encoder<'_, D>,
178            offset: usize,
179            depth: fidl::encoding::Depth,
180        ) -> fidl::Result<()> {
181            encoder.debug_check_bounds::<PeerManagerConnectedPeersResponse>(offset);
182            // Zero out padding regions. There's no need to apply masks
183            // because the unmasked parts will be overwritten by fields.
184            // Write the fields.
185            self.0.encode(encoder, offset + 0, depth)?;
186            Ok(())
187        }
188    }
189
190    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
191        for PeerManagerConnectedPeersResponse
192    {
193        #[inline(always)]
194        fn new_empty() -> Self {
195            Self {
196                peer_ids: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8>, D),
197            }
198        }
199
200        #[inline]
201        unsafe fn decode(
202            &mut self,
203            decoder: &mut fidl::encoding::Decoder<'_, D>,
204            offset: usize,
205            _depth: fidl::encoding::Depth,
206        ) -> fidl::Result<()> {
207            decoder.debug_check_bounds::<Self>(offset);
208            // Verify that padding bytes are zero.
209            fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8>, D, &mut self.peer_ids, decoder, offset + 0, _depth)?;
210            Ok(())
211        }
212    }
213
214    impl fidl::encoding::ValueTypeMarker for PeerManagerOnPeerConnectedRequest {
215        type Borrowed<'a> = &'a Self;
216        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
217            value
218        }
219    }
220
221    unsafe impl fidl::encoding::TypeMarker for PeerManagerOnPeerConnectedRequest {
222        type Owned = Self;
223
224        #[inline(always)]
225        fn inline_align(_context: fidl::encoding::Context) -> usize {
226            8
227        }
228
229        #[inline(always)]
230        fn inline_size(_context: fidl::encoding::Context) -> usize {
231            8
232        }
233    }
234
235    unsafe impl<D: fidl::encoding::ResourceDialect>
236        fidl::encoding::Encode<PeerManagerOnPeerConnectedRequest, D>
237        for &PeerManagerOnPeerConnectedRequest
238    {
239        #[inline]
240        unsafe fn encode(
241            self,
242            encoder: &mut fidl::encoding::Encoder<'_, D>,
243            offset: usize,
244            _depth: fidl::encoding::Depth,
245        ) -> fidl::Result<()> {
246            encoder.debug_check_bounds::<PeerManagerOnPeerConnectedRequest>(offset);
247            // Delegate to tuple encoding.
248            fidl::encoding::Encode::<PeerManagerOnPeerConnectedRequest, D>::encode(
249                (
250                    <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.peer_id),
251                ),
252                encoder, offset, _depth
253            )
254        }
255    }
256    unsafe impl<
257            D: fidl::encoding::ResourceDialect,
258            T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
259        > fidl::encoding::Encode<PeerManagerOnPeerConnectedRequest, D> for (T0,)
260    {
261        #[inline]
262        unsafe fn encode(
263            self,
264            encoder: &mut fidl::encoding::Encoder<'_, D>,
265            offset: usize,
266            depth: fidl::encoding::Depth,
267        ) -> fidl::Result<()> {
268            encoder.debug_check_bounds::<PeerManagerOnPeerConnectedRequest>(offset);
269            // Zero out padding regions. There's no need to apply masks
270            // because the unmasked parts will be overwritten by fields.
271            // Write the fields.
272            self.0.encode(encoder, offset + 0, depth)?;
273            Ok(())
274        }
275    }
276
277    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
278        for PeerManagerOnPeerConnectedRequest
279    {
280        #[inline(always)]
281        fn new_empty() -> Self {
282            Self { peer_id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D) }
283        }
284
285        #[inline]
286        unsafe fn decode(
287            &mut self,
288            decoder: &mut fidl::encoding::Decoder<'_, D>,
289            offset: usize,
290            _depth: fidl::encoding::Depth,
291        ) -> fidl::Result<()> {
292            decoder.debug_check_bounds::<Self>(offset);
293            // Verify that padding bytes are zero.
294            fidl::decode!(
295                fidl_fuchsia_bluetooth__common::PeerId,
296                D,
297                &mut self.peer_id,
298                decoder,
299                offset + 0,
300                _depth
301            )?;
302            Ok(())
303        }
304    }
305}