fidl_fuchsia_reloaddriver_test__common/
fidl_fuchsia_reloaddriver_test__common.rs1#![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
11pub const MAX_FROM_LENGTH: u64 = 32;
12
13#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
14pub struct WaiterAckRequest {
15 pub from_node: String,
16 pub from_name: String,
17 pub status: i32,
18}
19
20impl fidl::Persistable for WaiterAckRequest {}
21
22pub mod waiter_ordinals {
23 pub const ACK: u64 = 0x7e80870431180046;
24}
25
26mod internal {
27 use super::*;
28
29 impl fidl::encoding::ValueTypeMarker for WaiterAckRequest {
30 type Borrowed<'a> = &'a Self;
31 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
32 value
33 }
34 }
35
36 unsafe impl fidl::encoding::TypeMarker for WaiterAckRequest {
37 type Owned = Self;
38
39 #[inline(always)]
40 fn inline_align(_context: fidl::encoding::Context) -> usize {
41 8
42 }
43
44 #[inline(always)]
45 fn inline_size(_context: fidl::encoding::Context) -> usize {
46 40
47 }
48 }
49
50 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<WaiterAckRequest, D>
51 for &WaiterAckRequest
52 {
53 #[inline]
54 unsafe fn encode(
55 self,
56 encoder: &mut fidl::encoding::Encoder<'_, D>,
57 offset: usize,
58 _depth: fidl::encoding::Depth,
59 ) -> fidl::Result<()> {
60 encoder.debug_check_bounds::<WaiterAckRequest>(offset);
61 fidl::encoding::Encode::<WaiterAckRequest, D>::encode(
63 (
64 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
65 &self.from_node,
66 ),
67 <fidl::encoding::BoundedString<32> as fidl::encoding::ValueTypeMarker>::borrow(
68 &self.from_name,
69 ),
70 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
71 ),
72 encoder,
73 offset,
74 _depth,
75 )
76 }
77 }
78 unsafe impl<
79 D: fidl::encoding::ResourceDialect,
80 T0: fidl::encoding::Encode<fidl::encoding::BoundedString<32>, D>,
81 T1: fidl::encoding::Encode<fidl::encoding::BoundedString<32>, D>,
82 T2: fidl::encoding::Encode<i32, D>,
83 > fidl::encoding::Encode<WaiterAckRequest, D> for (T0, T1, T2)
84 {
85 #[inline]
86 unsafe fn encode(
87 self,
88 encoder: &mut fidl::encoding::Encoder<'_, D>,
89 offset: usize,
90 depth: fidl::encoding::Depth,
91 ) -> fidl::Result<()> {
92 encoder.debug_check_bounds::<WaiterAckRequest>(offset);
93 unsafe {
96 let ptr = encoder.buf.as_mut_ptr().add(offset).offset(32);
97 (ptr as *mut u64).write_unaligned(0);
98 }
99 self.0.encode(encoder, offset + 0, depth)?;
101 self.1.encode(encoder, offset + 16, depth)?;
102 self.2.encode(encoder, offset + 32, depth)?;
103 Ok(())
104 }
105 }
106
107 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for WaiterAckRequest {
108 #[inline(always)]
109 fn new_empty() -> Self {
110 Self {
111 from_node: fidl::new_empty!(fidl::encoding::BoundedString<32>, D),
112 from_name: fidl::new_empty!(fidl::encoding::BoundedString<32>, D),
113 status: fidl::new_empty!(i32, D),
114 }
115 }
116
117 #[inline]
118 unsafe fn decode(
119 &mut self,
120 decoder: &mut fidl::encoding::Decoder<'_, D>,
121 offset: usize,
122 _depth: fidl::encoding::Depth,
123 ) -> fidl::Result<()> {
124 decoder.debug_check_bounds::<Self>(offset);
125 let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(32) };
127 let padval = unsafe { (ptr as *const u64).read_unaligned() };
128 let mask = 0xffffffff00000000u64;
129 let maskedval = padval & mask;
130 if maskedval != 0 {
131 return Err(fidl::Error::NonZeroPadding {
132 padding_start: offset + 32 + ((mask as u64).trailing_zeros() / 8) as usize,
133 });
134 }
135 fidl::decode!(
136 fidl::encoding::BoundedString<32>,
137 D,
138 &mut self.from_node,
139 decoder,
140 offset + 0,
141 _depth
142 )?;
143 fidl::decode!(
144 fidl::encoding::BoundedString<32>,
145 D,
146 &mut self.from_name,
147 decoder,
148 offset + 16,
149 _depth
150 )?;
151 fidl::decode!(i32, D, &mut self.status, decoder, offset + 32, _depth)?;
152 Ok(())
153 }
154 }
155}