fidl_fuchsia_hardware_adb__common/
fidl_fuchsia_hardware_adb__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/// Max length of arguments passed in adb OPEN message.
12pub const MAX_ARGS_LENGTH: u64 = 1024;
13
14bitflags! {
15    /// ADB USB interface status flags.
16    #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
17    pub struct StatusFlags: u32 {
18        const ONLINE = 1;
19    }
20}
21
22impl StatusFlags {
23    #[inline(always)]
24    pub fn from_bits_allow_unknown(bits: u32) -> Self {
25        Self::from_bits_retain(bits)
26    }
27
28    #[inline(always)]
29    pub fn has_unknown_bits(&self) -> bool {
30        self.get_unknown_bits() != 0
31    }
32
33    #[inline(always)]
34    pub fn get_unknown_bits(&self) -> u32 {
35        self.bits() & !Self::all().bits()
36    }
37}
38
39#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
40pub struct UsbAdbImplOnStatusChangedRequest {
41    pub status: StatusFlags,
42}
43
44impl fidl::Persistable for UsbAdbImplOnStatusChangedRequest {}
45
46#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
47pub struct UsbAdbImplQueueTxRequest {
48    pub data: Vec<u8>,
49}
50
51impl fidl::Persistable for UsbAdbImplQueueTxRequest {}
52
53#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
54pub struct UsbAdbImplReceiveResponse {
55    pub data: Vec<u8>,
56}
57
58impl fidl::Persistable for UsbAdbImplReceiveResponse {}
59
60pub mod device_ordinals {
61    pub const START_ADB: u64 = 0x286c2e31de2159a5;
62    pub const STOP_ADB: u64 = 0x6d7d1816750fd3d0;
63}
64
65pub mod provider_ordinals {
66    pub const CONNECT_TO_SERVICE: u64 = 0x303e4a312d85292b;
67}
68
69pub mod usb_adb_impl__ordinals {
70    pub const QUEUE_TX: u64 = 0x4c0af0efa9701dc9;
71    pub const RECEIVE: u64 = 0x68382fff953be5c4;
72    pub const ON_STATUS_CHANGED: u64 = 0x2f2926086c0a5b6e;
73}
74
75mod internal {
76    use super::*;
77    unsafe impl fidl::encoding::TypeMarker for StatusFlags {
78        type Owned = Self;
79
80        #[inline(always)]
81        fn inline_align(_context: fidl::encoding::Context) -> usize {
82            4
83        }
84
85        #[inline(always)]
86        fn inline_size(_context: fidl::encoding::Context) -> usize {
87            4
88        }
89    }
90
91    impl fidl::encoding::ValueTypeMarker for StatusFlags {
92        type Borrowed<'a> = Self;
93        #[inline(always)]
94        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
95            *value
96        }
97    }
98
99    unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for StatusFlags {
100        #[inline]
101        unsafe fn encode(
102            self,
103            encoder: &mut fidl::encoding::Encoder<'_, D>,
104            offset: usize,
105            _depth: fidl::encoding::Depth,
106        ) -> fidl::Result<()> {
107            encoder.debug_check_bounds::<Self>(offset);
108            encoder.write_num(self.bits(), offset);
109            Ok(())
110        }
111    }
112
113    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for StatusFlags {
114        #[inline(always)]
115        fn new_empty() -> Self {
116            Self::empty()
117        }
118
119        #[inline]
120        unsafe fn decode(
121            &mut self,
122            decoder: &mut fidl::encoding::Decoder<'_, D>,
123            offset: usize,
124            _depth: fidl::encoding::Depth,
125        ) -> fidl::Result<()> {
126            decoder.debug_check_bounds::<Self>(offset);
127            let prim = decoder.read_num::<u32>(offset);
128            *self = Self::from_bits_allow_unknown(prim);
129            Ok(())
130        }
131    }
132
133    impl fidl::encoding::ValueTypeMarker for UsbAdbImplOnStatusChangedRequest {
134        type Borrowed<'a> = &'a Self;
135        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
136            value
137        }
138    }
139
140    unsafe impl fidl::encoding::TypeMarker for UsbAdbImplOnStatusChangedRequest {
141        type Owned = Self;
142
143        #[inline(always)]
144        fn inline_align(_context: fidl::encoding::Context) -> usize {
145            4
146        }
147
148        #[inline(always)]
149        fn inline_size(_context: fidl::encoding::Context) -> usize {
150            4
151        }
152    }
153
154    unsafe impl<D: fidl::encoding::ResourceDialect>
155        fidl::encoding::Encode<UsbAdbImplOnStatusChangedRequest, D>
156        for &UsbAdbImplOnStatusChangedRequest
157    {
158        #[inline]
159        unsafe fn encode(
160            self,
161            encoder: &mut fidl::encoding::Encoder<'_, D>,
162            offset: usize,
163            _depth: fidl::encoding::Depth,
164        ) -> fidl::Result<()> {
165            encoder.debug_check_bounds::<UsbAdbImplOnStatusChangedRequest>(offset);
166            // Delegate to tuple encoding.
167            fidl::encoding::Encode::<UsbAdbImplOnStatusChangedRequest, D>::encode(
168                (<StatusFlags as fidl::encoding::ValueTypeMarker>::borrow(&self.status),),
169                encoder,
170                offset,
171                _depth,
172            )
173        }
174    }
175    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<StatusFlags, D>>
176        fidl::encoding::Encode<UsbAdbImplOnStatusChangedRequest, D> for (T0,)
177    {
178        #[inline]
179        unsafe fn encode(
180            self,
181            encoder: &mut fidl::encoding::Encoder<'_, D>,
182            offset: usize,
183            depth: fidl::encoding::Depth,
184        ) -> fidl::Result<()> {
185            encoder.debug_check_bounds::<UsbAdbImplOnStatusChangedRequest>(offset);
186            // Zero out padding regions. There's no need to apply masks
187            // because the unmasked parts will be overwritten by fields.
188            // Write the fields.
189            self.0.encode(encoder, offset + 0, depth)?;
190            Ok(())
191        }
192    }
193
194    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
195        for UsbAdbImplOnStatusChangedRequest
196    {
197        #[inline(always)]
198        fn new_empty() -> Self {
199            Self { status: fidl::new_empty!(StatusFlags, D) }
200        }
201
202        #[inline]
203        unsafe fn decode(
204            &mut self,
205            decoder: &mut fidl::encoding::Decoder<'_, D>,
206            offset: usize,
207            _depth: fidl::encoding::Depth,
208        ) -> fidl::Result<()> {
209            decoder.debug_check_bounds::<Self>(offset);
210            // Verify that padding bytes are zero.
211            fidl::decode!(StatusFlags, D, &mut self.status, decoder, offset + 0, _depth)?;
212            Ok(())
213        }
214    }
215
216    impl fidl::encoding::ValueTypeMarker for UsbAdbImplQueueTxRequest {
217        type Borrowed<'a> = &'a Self;
218        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
219            value
220        }
221    }
222
223    unsafe impl fidl::encoding::TypeMarker for UsbAdbImplQueueTxRequest {
224        type Owned = Self;
225
226        #[inline(always)]
227        fn inline_align(_context: fidl::encoding::Context) -> usize {
228            8
229        }
230
231        #[inline(always)]
232        fn inline_size(_context: fidl::encoding::Context) -> usize {
233            16
234        }
235    }
236
237    unsafe impl<D: fidl::encoding::ResourceDialect>
238        fidl::encoding::Encode<UsbAdbImplQueueTxRequest, D> for &UsbAdbImplQueueTxRequest
239    {
240        #[inline]
241        unsafe fn encode(
242            self,
243            encoder: &mut fidl::encoding::Encoder<'_, D>,
244            offset: usize,
245            _depth: fidl::encoding::Depth,
246        ) -> fidl::Result<()> {
247            encoder.debug_check_bounds::<UsbAdbImplQueueTxRequest>(offset);
248            // Delegate to tuple encoding.
249            fidl::encoding::Encode::<UsbAdbImplQueueTxRequest, D>::encode(
250                (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
251                    &self.data,
252                ),),
253                encoder,
254                offset,
255                _depth,
256            )
257        }
258    }
259    unsafe impl<
260            D: fidl::encoding::ResourceDialect,
261            T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
262        > fidl::encoding::Encode<UsbAdbImplQueueTxRequest, D> for (T0,)
263    {
264        #[inline]
265        unsafe fn encode(
266            self,
267            encoder: &mut fidl::encoding::Encoder<'_, D>,
268            offset: usize,
269            depth: fidl::encoding::Depth,
270        ) -> fidl::Result<()> {
271            encoder.debug_check_bounds::<UsbAdbImplQueueTxRequest>(offset);
272            // Zero out padding regions. There's no need to apply masks
273            // because the unmasked parts will be overwritten by fields.
274            // Write the fields.
275            self.0.encode(encoder, offset + 0, depth)?;
276            Ok(())
277        }
278    }
279
280    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
281        for UsbAdbImplQueueTxRequest
282    {
283        #[inline(always)]
284        fn new_empty() -> Self {
285            Self { data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
286        }
287
288        #[inline]
289        unsafe fn decode(
290            &mut self,
291            decoder: &mut fidl::encoding::Decoder<'_, D>,
292            offset: usize,
293            _depth: fidl::encoding::Depth,
294        ) -> fidl::Result<()> {
295            decoder.debug_check_bounds::<Self>(offset);
296            // Verify that padding bytes are zero.
297            fidl::decode!(
298                fidl::encoding::UnboundedVector<u8>,
299                D,
300                &mut self.data,
301                decoder,
302                offset + 0,
303                _depth
304            )?;
305            Ok(())
306        }
307    }
308
309    impl fidl::encoding::ValueTypeMarker for UsbAdbImplReceiveResponse {
310        type Borrowed<'a> = &'a Self;
311        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
312            value
313        }
314    }
315
316    unsafe impl fidl::encoding::TypeMarker for UsbAdbImplReceiveResponse {
317        type Owned = Self;
318
319        #[inline(always)]
320        fn inline_align(_context: fidl::encoding::Context) -> usize {
321            8
322        }
323
324        #[inline(always)]
325        fn inline_size(_context: fidl::encoding::Context) -> usize {
326            16
327        }
328    }
329
330    unsafe impl<D: fidl::encoding::ResourceDialect>
331        fidl::encoding::Encode<UsbAdbImplReceiveResponse, D> for &UsbAdbImplReceiveResponse
332    {
333        #[inline]
334        unsafe fn encode(
335            self,
336            encoder: &mut fidl::encoding::Encoder<'_, D>,
337            offset: usize,
338            _depth: fidl::encoding::Depth,
339        ) -> fidl::Result<()> {
340            encoder.debug_check_bounds::<UsbAdbImplReceiveResponse>(offset);
341            // Delegate to tuple encoding.
342            fidl::encoding::Encode::<UsbAdbImplReceiveResponse, D>::encode(
343                (<fidl::encoding::UnboundedVector<u8> as fidl::encoding::ValueTypeMarker>::borrow(
344                    &self.data,
345                ),),
346                encoder,
347                offset,
348                _depth,
349            )
350        }
351    }
352    unsafe impl<
353            D: fidl::encoding::ResourceDialect,
354            T0: fidl::encoding::Encode<fidl::encoding::UnboundedVector<u8>, D>,
355        > fidl::encoding::Encode<UsbAdbImplReceiveResponse, D> for (T0,)
356    {
357        #[inline]
358        unsafe fn encode(
359            self,
360            encoder: &mut fidl::encoding::Encoder<'_, D>,
361            offset: usize,
362            depth: fidl::encoding::Depth,
363        ) -> fidl::Result<()> {
364            encoder.debug_check_bounds::<UsbAdbImplReceiveResponse>(offset);
365            // Zero out padding regions. There's no need to apply masks
366            // because the unmasked parts will be overwritten by fields.
367            // Write the fields.
368            self.0.encode(encoder, offset + 0, depth)?;
369            Ok(())
370        }
371    }
372
373    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
374        for UsbAdbImplReceiveResponse
375    {
376        #[inline(always)]
377        fn new_empty() -> Self {
378            Self { data: fidl::new_empty!(fidl::encoding::UnboundedVector<u8>, D) }
379        }
380
381        #[inline]
382        unsafe fn decode(
383            &mut self,
384            decoder: &mut fidl::encoding::Decoder<'_, D>,
385            offset: usize,
386            _depth: fidl::encoding::Depth,
387        ) -> fidl::Result<()> {
388            decoder.debug_check_bounds::<Self>(offset);
389            // Verify that padding bytes are zero.
390            fidl::decode!(
391                fidl::encoding::UnboundedVector<u8>,
392                D,
393                &mut self.data,
394                decoder,
395                offset + 0,
396                _depth
397            )?;
398            Ok(())
399        }
400    }
401}