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<
189                fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8>,
190                D,
191            >,
192        > fidl::encoding::Encode<PeerManagerConnectedPeersResponse, D> for (T0,)
193    {
194        #[inline]
195        unsafe fn encode(
196            self,
197            encoder: &mut fidl::encoding::Encoder<'_, D>,
198            offset: usize,
199            depth: fidl::encoding::Depth,
200        ) -> fidl::Result<()> {
201            encoder.debug_check_bounds::<PeerManagerConnectedPeersResponse>(offset);
202            // Zero out padding regions. There's no need to apply masks
203            // because the unmasked parts will be overwritten by fields.
204            // Write the fields.
205            self.0.encode(encoder, offset + 0, depth)?;
206            Ok(())
207        }
208    }
209
210    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
211        for PeerManagerConnectedPeersResponse
212    {
213        #[inline(always)]
214        fn new_empty() -> Self {
215            Self {
216                peer_ids: fidl::new_empty!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8>, D),
217            }
218        }
219
220        #[inline]
221        unsafe fn decode(
222            &mut self,
223            decoder: &mut fidl::encoding::Decoder<'_, D>,
224            offset: usize,
225            _depth: fidl::encoding::Depth,
226        ) -> fidl::Result<()> {
227            decoder.debug_check_bounds::<Self>(offset);
228            // Verify that padding bytes are zero.
229            fidl::decode!(fidl::encoding::Vector<fidl_fuchsia_bluetooth__common::PeerId, 8>, D, &mut self.peer_ids, decoder, offset + 0, _depth)?;
230            Ok(())
231        }
232    }
233
234    impl fidl::encoding::ValueTypeMarker for PeerManagerOnPeerConnectedRequest {
235        type Borrowed<'a> = &'a Self;
236        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
237            value
238        }
239    }
240
241    unsafe impl fidl::encoding::TypeMarker for PeerManagerOnPeerConnectedRequest {
242        type Owned = Self;
243
244        #[inline(always)]
245        fn inline_align(_context: fidl::encoding::Context) -> usize {
246            8
247        }
248
249        #[inline(always)]
250        fn inline_size(_context: fidl::encoding::Context) -> usize {
251            8
252        }
253    }
254
255    unsafe impl<D: fidl::encoding::ResourceDialect>
256        fidl::encoding::Encode<PeerManagerOnPeerConnectedRequest, D>
257        for &PeerManagerOnPeerConnectedRequest
258    {
259        #[inline]
260        unsafe fn encode(
261            self,
262            encoder: &mut fidl::encoding::Encoder<'_, D>,
263            offset: usize,
264            _depth: fidl::encoding::Depth,
265        ) -> fidl::Result<()> {
266            encoder.debug_check_bounds::<PeerManagerOnPeerConnectedRequest>(offset);
267            // Delegate to tuple encoding.
268            fidl::encoding::Encode::<PeerManagerOnPeerConnectedRequest, D>::encode(
269                (
270                    <fidl_fuchsia_bluetooth__common::PeerId as fidl::encoding::ValueTypeMarker>::borrow(&self.peer_id),
271                ),
272                encoder, offset, _depth
273            )
274        }
275    }
276    unsafe impl<
277            D: fidl::encoding::ResourceDialect,
278            T0: fidl::encoding::Encode<fidl_fuchsia_bluetooth__common::PeerId, D>,
279        > fidl::encoding::Encode<PeerManagerOnPeerConnectedRequest, D> for (T0,)
280    {
281        #[inline]
282        unsafe fn encode(
283            self,
284            encoder: &mut fidl::encoding::Encoder<'_, D>,
285            offset: usize,
286            depth: fidl::encoding::Depth,
287        ) -> fidl::Result<()> {
288            encoder.debug_check_bounds::<PeerManagerOnPeerConnectedRequest>(offset);
289            // Zero out padding regions. There's no need to apply masks
290            // because the unmasked parts will be overwritten by fields.
291            // Write the fields.
292            self.0.encode(encoder, offset + 0, depth)?;
293            Ok(())
294        }
295    }
296
297    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
298        for PeerManagerOnPeerConnectedRequest
299    {
300        #[inline(always)]
301        fn new_empty() -> Self {
302            Self { peer_id: fidl::new_empty!(fidl_fuchsia_bluetooth__common::PeerId, D) }
303        }
304
305        #[inline]
306        unsafe fn decode(
307            &mut self,
308            decoder: &mut fidl::encoding::Decoder<'_, D>,
309            offset: usize,
310            _depth: fidl::encoding::Depth,
311        ) -> fidl::Result<()> {
312            decoder.debug_check_bounds::<Self>(offset);
313            // Verify that padding bytes are zero.
314            fidl::decode!(
315                fidl_fuchsia_bluetooth__common::PeerId,
316                D,
317                &mut self.peer_id,
318                decoder,
319                offset + 0,
320                _depth
321            )?;
322            Ok(())
323        }
324    }
325}