Skip to main content

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
55pub mod peer_controller_ordinals {
56    pub const SET_CONFIGURATION: u64 = 0x35f45144acf701ae;
57    pub const GET_CONFIGURATION: u64 = 0x507eb0483e8d50d;
58    pub const SUSPEND_STREAM: u64 = 0x43465c9341d472eb;
59    pub const SUSPEND_AND_RECONFIGURE: u64 = 0x7ce8e3b693e20fe3;
60    pub const ESTABLISH_STREAM: u64 = 0x438e16ccd91eb5e5;
61    pub const RELEASE_STREAM: u64 = 0x4884104b373151c6;
62    pub const ABORT_STREAM: u64 = 0xf85b067ed144997;
63    pub const START_STREAM: u64 = 0xd0ead9aec2ebf77;
64    pub const RECONFIGURE_STREAM: u64 = 0x559404d6a9629c60;
65    pub const GET_CAPABILITIES: u64 = 0x16884c07e6d969a7;
66    pub const GET_ALL_CAPABILITIES: u64 = 0x1e2c5b438e288cea;
67}
68
69pub mod peer_manager_ordinals {
70    pub const GET_PEER: u64 = 0x2a506872f2b04086;
71    pub const CONNECTED_PEERS: u64 = 0x1deaca0295d5f8d6;
72    pub const ON_PEER_CONNECTED: u64 = 0x154e6b9e519774d1;
73}
74
75mod internal {
76    use super::*;
77    unsafe impl fidl::encoding::TypeMarker for PeerError {
78        type Owned = Self;
79
80        #[inline(always)]
81        fn inline_align(_context: fidl::encoding::Context) -> usize {
82            std::mem::align_of::<u32>()
83        }
84
85        #[inline(always)]
86        fn inline_size(_context: fidl::encoding::Context) -> usize {
87            std::mem::size_of::<u32>()
88        }
89
90        #[inline(always)]
91        fn encode_is_copy() -> bool {
92            true
93        }
94
95        #[inline(always)]
96        fn decode_is_copy() -> bool {
97            false
98        }
99    }
100
101    impl fidl::encoding::ValueTypeMarker for PeerError {
102        type Borrowed<'a> = Self;
103        #[inline(always)]
104        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
105            *value
106        }
107    }
108
109    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PeerError {
110        #[inline]
111        unsafe fn encode(
112            self,
113            encoder: &mut fidl::encoding::Encoder<'_, D>,
114            offset: usize,
115            _depth: fidl::encoding::Depth,
116        ) -> fidl::Result<()> {
117            encoder.debug_check_bounds::<Self>(offset);
118            encoder.write_num(self.into_primitive(), offset);
119            Ok(())
120        }
121    }
122
123    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PeerError {
124        #[inline(always)]
125        fn new_empty() -> Self {
126            Self::UnknownFailure
127        }
128
129        #[inline]
130        unsafe fn decode(
131            &mut self,
132            decoder: &mut fidl::encoding::Decoder<'_, D>,
133            offset: usize,
134            _depth: fidl::encoding::Depth,
135        ) -> fidl::Result<()> {
136            decoder.debug_check_bounds::<Self>(offset);
137            let prim = decoder.read_num::<u32>(offset);
138
139            *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
140            Ok(())
141        }
142    }
143
144    impl fidl::encoding::ValueTypeMarker for PeerManagerConnectedPeersResponse {
145        type Borrowed<'a> = &'a Self;
146        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
147            value
148        }
149    }
150
151    unsafe impl fidl::encoding::TypeMarker for PeerManagerConnectedPeersResponse {
152        type Owned = Self;
153
154        #[inline(always)]
155        fn inline_align(_context: fidl::encoding::Context) -> usize {
156            8
157        }
158
159        #[inline(always)]
160        fn inline_size(_context: fidl::encoding::Context) -> usize {
161            16
162        }
163    }
164
165    unsafe impl<D: fidl::encoding::ResourceDialect>
166        fidl::encoding::Encode<PeerManagerConnectedPeersResponse, D>
167        for &PeerManagerConnectedPeersResponse
168    {
169        #[inline]
170        unsafe fn encode(
171            self,
172            encoder: &mut fidl::encoding::Encoder<'_, D>,
173            offset: usize,
174            _depth: fidl::encoding::Depth,
175        ) -> fidl::Result<()> {
176            encoder.debug_check_bounds::<PeerManagerConnectedPeersResponse>(offset);
177            // Delegate to tuple encoding.
178            fidl::encoding::Encode::<PeerManagerConnectedPeersResponse, D>::encode(
179                (
180                    <fidl::encoding::Vector<fidl_fuchsia_bluetooth_common::PeerId, 8> as fidl::encoding::ValueTypeMarker>::borrow(&self.peer_ids),
181                ),
182                encoder, offset, _depth
183            )
184        }
185    }
186    unsafe impl<
187        D: fidl::encoding::ResourceDialect,
188        T0: fidl::encoding::Encode<fidl::encoding::Vector<fidl_fuchsia_bluetooth_common::PeerId, 8>, D>,
189    > fidl::encoding::Encode<PeerManagerConnectedPeersResponse, D> for (T0,)
190    {
191        #[inline]
192        unsafe fn encode(
193            self,
194            encoder: &mut fidl::encoding::Encoder<'_, D>,
195            offset: usize,
196            depth: fidl::encoding::Depth,
197        ) -> fidl::Result<()> {
198            encoder.debug_check_bounds::<PeerManagerConnectedPeersResponse>(offset);
199            // Zero out padding regions. There's no need to apply masks
200            // because the unmasked parts will be overwritten by fields.
201            // Write the fields.
202            self.0.encode(encoder, offset + 0, depth)?;
203            Ok(())
204        }
205    }
206
207    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
208        for PeerManagerConnectedPeersResponse
209    {
210        #[inline(always)]
211        fn new_empty() -> Self {
212            Self {
213                peer_ids: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth_common::PeerId, 8>, D),
214            }
215        }
216
217        #[inline]
218        unsafe fn decode(
219            &mut self,
220            decoder: &mut fidl::encoding::Decoder<'_, D>,
221            offset: usize,
222            _depth: fidl::encoding::Depth,
223        ) -> fidl::Result<()> {
224            decoder.debug_check_bounds::<Self>(offset);
225            // Verify that padding bytes are zero.
226            fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth_common::PeerId, 8>, D, &mut self.peer_ids, decoder, offset + 0, _depth)?;
227            Ok(())
228        }
229    }
230
231    impl fidl::encoding::ValueTypeMarker for PeerManagerOnPeerConnectedRequest {
232        type Borrowed<'a> = &'a Self;
233        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
234            value
235        }
236    }
237
238    unsafe impl fidl::encoding::TypeMarker for PeerManagerOnPeerConnectedRequest {
239        type Owned = Self;
240
241        #[inline(always)]
242        fn inline_align(_context: fidl::encoding::Context) -> usize {
243            8
244        }
245
246        #[inline(always)]
247        fn inline_size(_context: fidl::encoding::Context) -> usize {
248            8
249        }
250    }
251
252    unsafe impl<D: fidl::encoding::ResourceDialect>
253        fidl::encoding::Encode<PeerManagerOnPeerConnectedRequest, D>
254        for &PeerManagerOnPeerConnectedRequest
255    {
256        #[inline]
257        unsafe fn encode(
258            self,
259            encoder: &mut fidl::encoding::Encoder<'_, D>,
260            offset: usize,
261            _depth: fidl::encoding::Depth,
262        ) -> fidl::Result<()> {
263            encoder.debug_check_bounds::<PeerManagerOnPeerConnectedRequest>(offset);
264            // Delegate to tuple encoding.
265            fidl::encoding::Encode::<PeerManagerOnPeerConnectedRequest, D>::encode(
266                (
267                    <fidl_fuchsia_bluetooth_common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.peer_id),
268                ),
269                encoder, offset, _depth
270            )
271        }
272    }
273    unsafe impl<
274        D: fidl::encoding::ResourceDialect,
275        T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth_common::PeerId, D>,
276    > fidl::encoding::Encode<PeerManagerOnPeerConnectedRequest, D> for (T0,)
277    {
278        #[inline]
279        unsafe fn encode(
280            self,
281            encoder: &mut fidl::encoding::Encoder<'_, D>,
282            offset: usize,
283            depth: fidl::encoding::Depth,
284        ) -> fidl::Result<()> {
285            encoder.debug_check_bounds::<PeerManagerOnPeerConnectedRequest>(offset);
286            // Zero out padding regions. There's no need to apply masks
287            // because the unmasked parts will be overwritten by fields.
288            // Write the fields.
289            self.0.encode(encoder, offset + 0, depth)?;
290            Ok(())
291        }
292    }
293
294    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
295        for PeerManagerOnPeerConnectedRequest
296    {
297        #[inline(always)]
298        fn new_empty() -> Self {
299            Self { peer_id: fidl::new_empty!(fidl_fuchsia_bluetooth_common::PeerId, D) }
300        }
301
302        #[inline]
303        unsafe fn decode(
304            &mut self,
305            decoder: &mut fidl::encoding::Decoder<'_, D>,
306            offset: usize,
307            _depth: fidl::encoding::Depth,
308        ) -> fidl::Result<()> {
309            decoder.debug_check_bounds::<Self>(offset);
310            // Verify that padding bytes are zero.
311            fidl::decode!(
312                fidl_fuchsia_bluetooth_common::PeerId,
313                D,
314                &mut self.peer_id,
315                decoder,
316                offset + 0,
317                _depth
318            )?;
319            Ok(())
320        }
321    }
322}