fidl_fuchsia_hardware_power_sensor__common/
fidl_fuchsia_hardware_power_sensor__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/// An arbritrary, human-readable string that uniquely identifies a power sensor.
12pub type SensorName = String;
13
14pub const MAX_SENSOR_NAME_LEN: u32 = 256;
15
16#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
17pub struct DeviceGetSensorNameResponse {
18    pub name: String,
19}
20
21impl fidl::Persistable for DeviceGetSensorNameResponse {}
22
23#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
24pub struct DeviceGetPowerWattsResponse {
25    pub power: f32,
26}
27
28impl fidl::Persistable for DeviceGetPowerWattsResponse {}
29
30#[derive(Clone, Copy, Debug, PartialEq, PartialOrd)]
31pub struct DeviceGetVoltageVoltsResponse {
32    pub voltage: f32,
33}
34
35impl fidl::Persistable for DeviceGetVoltageVoltsResponse {}
36
37pub mod device_ordinals {
38    pub const GET_POWER_WATTS: u64 = 0x552bb46982c1957b;
39    pub const GET_VOLTAGE_VOLTS: u64 = 0x4b0d0841e3445c37;
40    pub const GET_SENSOR_NAME: u64 = 0x3cf646dfaf29b21a;
41}
42
43mod internal {
44    use super::*;
45
46    impl fidl::encoding::ValueTypeMarker for DeviceGetSensorNameResponse {
47        type Borrowed<'a> = &'a Self;
48        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
49            value
50        }
51    }
52
53    unsafe impl fidl::encoding::TypeMarker for DeviceGetSensorNameResponse {
54        type Owned = Self;
55
56        #[inline(always)]
57        fn inline_align(_context: fidl::encoding::Context) -> usize {
58            8
59        }
60
61        #[inline(always)]
62        fn inline_size(_context: fidl::encoding::Context) -> usize {
63            16
64        }
65    }
66
67    unsafe impl<D: fidl::encoding::ResourceDialect>
68        fidl::encoding::Encode<DeviceGetSensorNameResponse, D> for &DeviceGetSensorNameResponse
69    {
70        #[inline]
71        unsafe fn encode(
72            self,
73            encoder: &mut fidl::encoding::Encoder<'_, D>,
74            offset: usize,
75            _depth: fidl::encoding::Depth,
76        ) -> fidl::Result<()> {
77            encoder.debug_check_bounds::<DeviceGetSensorNameResponse>(offset);
78            // Delegate to tuple encoding.
79            fidl::encoding::Encode::<DeviceGetSensorNameResponse, D>::encode(
80                (<fidl::encoding::BoundedString<256> as fidl::encoding::ValueTypeMarker>::borrow(
81                    &self.name,
82                ),),
83                encoder,
84                offset,
85                _depth,
86            )
87        }
88    }
89    unsafe impl<
90        D: fidl::encoding::ResourceDialect,
91        T0: fidl::encoding::Encode<fidl::encoding::BoundedString<256>, D>,
92    > fidl::encoding::Encode<DeviceGetSensorNameResponse, D> for (T0,)
93    {
94        #[inline]
95        unsafe fn encode(
96            self,
97            encoder: &mut fidl::encoding::Encoder<'_, D>,
98            offset: usize,
99            depth: fidl::encoding::Depth,
100        ) -> fidl::Result<()> {
101            encoder.debug_check_bounds::<DeviceGetSensorNameResponse>(offset);
102            // Zero out padding regions. There's no need to apply masks
103            // because the unmasked parts will be overwritten by fields.
104            // Write the fields.
105            self.0.encode(encoder, offset + 0, depth)?;
106            Ok(())
107        }
108    }
109
110    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
111        for DeviceGetSensorNameResponse
112    {
113        #[inline(always)]
114        fn new_empty() -> Self {
115            Self { name: fidl::new_empty!(fidl::encoding::BoundedString<256>, D) }
116        }
117
118        #[inline]
119        unsafe fn decode(
120            &mut self,
121            decoder: &mut fidl::encoding::Decoder<'_, D>,
122            offset: usize,
123            _depth: fidl::encoding::Depth,
124        ) -> fidl::Result<()> {
125            decoder.debug_check_bounds::<Self>(offset);
126            // Verify that padding bytes are zero.
127            fidl::decode!(
128                fidl::encoding::BoundedString<256>,
129                D,
130                &mut self.name,
131                decoder,
132                offset + 0,
133                _depth
134            )?;
135            Ok(())
136        }
137    }
138
139    impl fidl::encoding::ValueTypeMarker for DeviceGetPowerWattsResponse {
140        type Borrowed<'a> = &'a Self;
141        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
142            value
143        }
144    }
145
146    unsafe impl fidl::encoding::TypeMarker for DeviceGetPowerWattsResponse {
147        type Owned = Self;
148
149        #[inline(always)]
150        fn inline_align(_context: fidl::encoding::Context) -> usize {
151            4
152        }
153
154        #[inline(always)]
155        fn inline_size(_context: fidl::encoding::Context) -> usize {
156            4
157        }
158    }
159
160    unsafe impl<D: fidl::encoding::ResourceDialect>
161        fidl::encoding::Encode<DeviceGetPowerWattsResponse, D> for &DeviceGetPowerWattsResponse
162    {
163        #[inline]
164        unsafe fn encode(
165            self,
166            encoder: &mut fidl::encoding::Encoder<'_, D>,
167            offset: usize,
168            _depth: fidl::encoding::Depth,
169        ) -> fidl::Result<()> {
170            encoder.debug_check_bounds::<DeviceGetPowerWattsResponse>(offset);
171            // Delegate to tuple encoding.
172            fidl::encoding::Encode::<DeviceGetPowerWattsResponse, D>::encode(
173                (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.power),),
174                encoder,
175                offset,
176                _depth,
177            )
178        }
179    }
180    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
181        fidl::encoding::Encode<DeviceGetPowerWattsResponse, D> for (T0,)
182    {
183        #[inline]
184        unsafe fn encode(
185            self,
186            encoder: &mut fidl::encoding::Encoder<'_, D>,
187            offset: usize,
188            depth: fidl::encoding::Depth,
189        ) -> fidl::Result<()> {
190            encoder.debug_check_bounds::<DeviceGetPowerWattsResponse>(offset);
191            // Zero out padding regions. There's no need to apply masks
192            // because the unmasked parts will be overwritten by fields.
193            // Write the fields.
194            self.0.encode(encoder, offset + 0, depth)?;
195            Ok(())
196        }
197    }
198
199    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
200        for DeviceGetPowerWattsResponse
201    {
202        #[inline(always)]
203        fn new_empty() -> Self {
204            Self { power: fidl::new_empty!(f32, D) }
205        }
206
207        #[inline]
208        unsafe fn decode(
209            &mut self,
210            decoder: &mut fidl::encoding::Decoder<'_, D>,
211            offset: usize,
212            _depth: fidl::encoding::Depth,
213        ) -> fidl::Result<()> {
214            decoder.debug_check_bounds::<Self>(offset);
215            // Verify that padding bytes are zero.
216            fidl::decode!(f32, D, &mut self.power, decoder, offset + 0, _depth)?;
217            Ok(())
218        }
219    }
220
221    impl fidl::encoding::ValueTypeMarker for DeviceGetVoltageVoltsResponse {
222        type Borrowed<'a> = &'a Self;
223        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
224            value
225        }
226    }
227
228    unsafe impl fidl::encoding::TypeMarker for DeviceGetVoltageVoltsResponse {
229        type Owned = Self;
230
231        #[inline(always)]
232        fn inline_align(_context: fidl::encoding::Context) -> usize {
233            4
234        }
235
236        #[inline(always)]
237        fn inline_size(_context: fidl::encoding::Context) -> usize {
238            4
239        }
240    }
241
242    unsafe impl<D: fidl::encoding::ResourceDialect>
243        fidl::encoding::Encode<DeviceGetVoltageVoltsResponse, D>
244        for &DeviceGetVoltageVoltsResponse
245    {
246        #[inline]
247        unsafe fn encode(
248            self,
249            encoder: &mut fidl::encoding::Encoder<'_, D>,
250            offset: usize,
251            _depth: fidl::encoding::Depth,
252        ) -> fidl::Result<()> {
253            encoder.debug_check_bounds::<DeviceGetVoltageVoltsResponse>(offset);
254            // Delegate to tuple encoding.
255            fidl::encoding::Encode::<DeviceGetVoltageVoltsResponse, D>::encode(
256                (<f32 as fidl::encoding::ValueTypeMarker>::borrow(&self.voltage),),
257                encoder,
258                offset,
259                _depth,
260            )
261        }
262    }
263    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<f32, D>>
264        fidl::encoding::Encode<DeviceGetVoltageVoltsResponse, D> for (T0,)
265    {
266        #[inline]
267        unsafe fn encode(
268            self,
269            encoder: &mut fidl::encoding::Encoder<'_, D>,
270            offset: usize,
271            depth: fidl::encoding::Depth,
272        ) -> fidl::Result<()> {
273            encoder.debug_check_bounds::<DeviceGetVoltageVoltsResponse>(offset);
274            // Zero out padding regions. There's no need to apply masks
275            // because the unmasked parts will be overwritten by fields.
276            // Write the fields.
277            self.0.encode(encoder, offset + 0, depth)?;
278            Ok(())
279        }
280    }
281
282    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
283        for DeviceGetVoltageVoltsResponse
284    {
285        #[inline(always)]
286        fn new_empty() -> Self {
287            Self { voltage: fidl::new_empty!(f32, D) }
288        }
289
290        #[inline]
291        unsafe fn decode(
292            &mut self,
293            decoder: &mut fidl::encoding::Decoder<'_, D>,
294            offset: usize,
295            _depth: fidl::encoding::Depth,
296        ) -> fidl::Result<()> {
297            decoder.debug_check_bounds::<Self>(offset);
298            // Verify that padding bytes are zero.
299            fidl::decode!(f32, D, &mut self.voltage, decoder, offset + 0, _depth)?;
300            Ok(())
301        }
302    }
303}