fidl_fuchsia_process__common/
fidl_fuchsia_process__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/// The maximum size for a name used by `Resolver`.
12pub const MAX_RESOLVE_NAME_SIZE: u32 = 2048;
13
14#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct LauncherAddArgsRequest {
16    pub args: Vec<Vec<u8>>,
17}
18
19impl fidl::Persistable for LauncherAddArgsRequest {}
20
21#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
22pub struct LauncherAddEnvironsRequest {
23    pub environ: Vec<Vec<u8>>,
24}
25
26impl fidl::Persistable for LauncherAddEnvironsRequest {}
27
28#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
29#[repr(C)]
30pub struct LauncherSetOptionsRequest {
31    /// These options are expected to be valid process creation options. The options are checked
32    /// on `Launch` or `CreateWithoutStarting`.
33    ///
34    /// See <https://fuchsia.dev/fuchsia-src/reference/syscalls/process_create> for details.
35    pub options: u32,
36}
37
38impl fidl::Persistable for LauncherSetOptionsRequest {}
39
40#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
41pub struct ResolverResolveRequest {
42    pub name: String,
43}
44
45impl fidl::Persistable for ResolverResolveRequest {}
46
47pub mod launcher_ordinals {
48    pub const LAUNCH: u64 = 0x11335a9928afbfa4;
49    pub const CREATE_WITHOUT_STARTING: u64 = 0x755f8263fe51cb61;
50    pub const ADD_ARGS: u64 = 0x3be445d3e4fd6512;
51    pub const ADD_ENVIRONS: u64 = 0x73a3c97fa7fe1779;
52    pub const ADD_NAMES: u64 = 0x2579ee2c7be28662;
53    pub const ADD_HANDLES: u64 = 0x51025267a537a615;
54    pub const SET_OPTIONS: u64 = 0x5b92576147ebfd87;
55}
56
57pub mod resolver_ordinals {
58    pub const RESOLVE: u64 = 0x3c15951efde89c90;
59}
60
61mod internal {
62    use super::*;
63
64    impl fidl::encoding::ValueTypeMarker for LauncherAddArgsRequest {
65        type Borrowed<'a> = &'a Self;
66        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
67            value
68        }
69    }
70
71    unsafe impl fidl::encoding::TypeMarker for LauncherAddArgsRequest {
72        type Owned = Self;
73
74        #[inline(always)]
75        fn inline_align(_context: fidl::encoding::Context) -> usize {
76            8
77        }
78
79        #[inline(always)]
80        fn inline_size(_context: fidl::encoding::Context) -> usize {
81            16
82        }
83    }
84
85    unsafe impl<D: fidl::encoding::ResourceDialect>
86        fidl::encoding::Encode<LauncherAddArgsRequest, D> for &LauncherAddArgsRequest
87    {
88        #[inline]
89        unsafe fn encode(
90            self,
91            encoder: &mut fidl::encoding::Encoder<'_, D>,
92            offset: usize,
93            _depth: fidl::encoding::Depth,
94        ) -> fidl::Result<()> {
95            encoder.debug_check_bounds::<LauncherAddArgsRequest>(offset);
96            // Delegate to tuple encoding.
97            fidl::encoding::Encode::<LauncherAddArgsRequest, D>::encode(
98                (
99                    <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>> as fidl::encoding::ValueTypeMarker>::borrow(&self.args),
100                ),
101                encoder, offset, _depth
102            )
103        }
104    }
105    unsafe impl<
106            D: fidl::encoding::ResourceDialect,
107            T0: fidl::encoding::Encode<
108                fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>>,
109                D,
110            >,
111        > fidl::encoding::Encode<LauncherAddArgsRequest, D> for (T0,)
112    {
113        #[inline]
114        unsafe fn encode(
115            self,
116            encoder: &mut fidl::encoding::Encoder<'_, D>,
117            offset: usize,
118            depth: fidl::encoding::Depth,
119        ) -> fidl::Result<()> {
120            encoder.debug_check_bounds::<LauncherAddArgsRequest>(offset);
121            // Zero out padding regions. There's no need to apply masks
122            // because the unmasked parts will be overwritten by fields.
123            // Write the fields.
124            self.0.encode(encoder, offset + 0, depth)?;
125            Ok(())
126        }
127    }
128
129    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
130        for LauncherAddArgsRequest
131    {
132        #[inline(always)]
133        fn new_empty() -> Self {
134            Self {
135                args: fidl::new_empty!(
136                    fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>>,
137                    D
138                ),
139            }
140        }
141
142        #[inline]
143        unsafe fn decode(
144            &mut self,
145            decoder: &mut fidl::encoding::Decoder<'_, D>,
146            offset: usize,
147            _depth: fidl::encoding::Depth,
148        ) -> fidl::Result<()> {
149            decoder.debug_check_bounds::<Self>(offset);
150            // Verify that padding bytes are zero.
151            fidl::decode!(
152                fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>>,
153                D,
154                &mut self.args,
155                decoder,
156                offset + 0,
157                _depth
158            )?;
159            Ok(())
160        }
161    }
162
163    impl fidl::encoding::ValueTypeMarker for LauncherAddEnvironsRequest {
164        type Borrowed<'a> = &'a Self;
165        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
166            value
167        }
168    }
169
170    unsafe impl fidl::encoding::TypeMarker for LauncherAddEnvironsRequest {
171        type Owned = Self;
172
173        #[inline(always)]
174        fn inline_align(_context: fidl::encoding::Context) -> usize {
175            8
176        }
177
178        #[inline(always)]
179        fn inline_size(_context: fidl::encoding::Context) -> usize {
180            16
181        }
182    }
183
184    unsafe impl<D: fidl::encoding::ResourceDialect>
185        fidl::encoding::Encode<LauncherAddEnvironsRequest, D> for &LauncherAddEnvironsRequest
186    {
187        #[inline]
188        unsafe fn encode(
189            self,
190            encoder: &mut fidl::encoding::Encoder<'_, D>,
191            offset: usize,
192            _depth: fidl::encoding::Depth,
193        ) -> fidl::Result<()> {
194            encoder.debug_check_bounds::<LauncherAddEnvironsRequest>(offset);
195            // Delegate to tuple encoding.
196            fidl::encoding::Encode::<LauncherAddEnvironsRequest, D>::encode(
197                (
198                    <fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>> as fidl::encoding::ValueTypeMarker>::borrow(&self.environ),
199                ),
200                encoder, offset, _depth
201            )
202        }
203    }
204    unsafe impl<
205            D: fidl::encoding::ResourceDialect,
206            T0: fidl::encoding::Encode<
207                fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>>,
208                D,
209            >,
210        > fidl::encoding::Encode<LauncherAddEnvironsRequest, D> for (T0,)
211    {
212        #[inline]
213        unsafe fn encode(
214            self,
215            encoder: &mut fidl::encoding::Encoder<'_, D>,
216            offset: usize,
217            depth: fidl::encoding::Depth,
218        ) -> fidl::Result<()> {
219            encoder.debug_check_bounds::<LauncherAddEnvironsRequest>(offset);
220            // Zero out padding regions. There's no need to apply masks
221            // because the unmasked parts will be overwritten by fields.
222            // Write the fields.
223            self.0.encode(encoder, offset + 0, depth)?;
224            Ok(())
225        }
226    }
227
228    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
229        for LauncherAddEnvironsRequest
230    {
231        #[inline(always)]
232        fn new_empty() -> Self {
233            Self {
234                environ: fidl::new_empty!(
235                    fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>>,
236                    D
237                ),
238            }
239        }
240
241        #[inline]
242        unsafe fn decode(
243            &mut self,
244            decoder: &mut fidl::encoding::Decoder<'_, D>,
245            offset: usize,
246            _depth: fidl::encoding::Depth,
247        ) -> fidl::Result<()> {
248            decoder.debug_check_bounds::<Self>(offset);
249            // Verify that padding bytes are zero.
250            fidl::decode!(
251                fidl::encoding::UnboundedVector<fidl::encoding::UnboundedVector<u8>>,
252                D,
253                &mut self.environ,
254                decoder,
255                offset + 0,
256                _depth
257            )?;
258            Ok(())
259        }
260    }
261
262    impl fidl::encoding::ValueTypeMarker for LauncherSetOptionsRequest {
263        type Borrowed<'a> = &'a Self;
264        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
265            value
266        }
267    }
268
269    unsafe impl fidl::encoding::TypeMarker for LauncherSetOptionsRequest {
270        type Owned = Self;
271
272        #[inline(always)]
273        fn inline_align(_context: fidl::encoding::Context) -> usize {
274            4
275        }
276
277        #[inline(always)]
278        fn inline_size(_context: fidl::encoding::Context) -> usize {
279            4
280        }
281        #[inline(always)]
282        fn encode_is_copy() -> bool {
283            true
284        }
285
286        #[inline(always)]
287        fn decode_is_copy() -> bool {
288            true
289        }
290    }
291
292    unsafe impl<D: fidl::encoding::ResourceDialect>
293        fidl::encoding::Encode<LauncherSetOptionsRequest, D> for &LauncherSetOptionsRequest
294    {
295        #[inline]
296        unsafe fn encode(
297            self,
298            encoder: &mut fidl::encoding::Encoder<'_, D>,
299            offset: usize,
300            _depth: fidl::encoding::Depth,
301        ) -> fidl::Result<()> {
302            encoder.debug_check_bounds::<LauncherSetOptionsRequest>(offset);
303            unsafe {
304                // Copy the object into the buffer.
305                let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
306                (buf_ptr as *mut LauncherSetOptionsRequest)
307                    .write_unaligned((self as *const LauncherSetOptionsRequest).read());
308                // Zero out padding regions. Unlike `fidl_struct_impl_noncopy!`, this must be
309                // done second because the memcpy will write garbage to these bytes.
310            }
311            Ok(())
312        }
313    }
314    unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
315        fidl::encoding::Encode<LauncherSetOptionsRequest, D> for (T0,)
316    {
317        #[inline]
318        unsafe fn encode(
319            self,
320            encoder: &mut fidl::encoding::Encoder<'_, D>,
321            offset: usize,
322            depth: fidl::encoding::Depth,
323        ) -> fidl::Result<()> {
324            encoder.debug_check_bounds::<LauncherSetOptionsRequest>(offset);
325            // Zero out padding regions. There's no need to apply masks
326            // because the unmasked parts will be overwritten by fields.
327            // Write the fields.
328            self.0.encode(encoder, offset + 0, depth)?;
329            Ok(())
330        }
331    }
332
333    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
334        for LauncherSetOptionsRequest
335    {
336        #[inline(always)]
337        fn new_empty() -> Self {
338            Self { options: fidl::new_empty!(u32, D) }
339        }
340
341        #[inline]
342        unsafe fn decode(
343            &mut self,
344            decoder: &mut fidl::encoding::Decoder<'_, D>,
345            offset: usize,
346            _depth: fidl::encoding::Depth,
347        ) -> fidl::Result<()> {
348            decoder.debug_check_bounds::<Self>(offset);
349            let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
350            // Verify that padding bytes are zero.
351            // Copy from the buffer into the object.
352            unsafe {
353                std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
354            }
355            Ok(())
356        }
357    }
358
359    impl fidl::encoding::ValueTypeMarker for ResolverResolveRequest {
360        type Borrowed<'a> = &'a Self;
361        fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
362            value
363        }
364    }
365
366    unsafe impl fidl::encoding::TypeMarker for ResolverResolveRequest {
367        type Owned = Self;
368
369        #[inline(always)]
370        fn inline_align(_context: fidl::encoding::Context) -> usize {
371            8
372        }
373
374        #[inline(always)]
375        fn inline_size(_context: fidl::encoding::Context) -> usize {
376            16
377        }
378    }
379
380    unsafe impl<D: fidl::encoding::ResourceDialect>
381        fidl::encoding::Encode<ResolverResolveRequest, D> for &ResolverResolveRequest
382    {
383        #[inline]
384        unsafe fn encode(
385            self,
386            encoder: &mut fidl::encoding::Encoder<'_, D>,
387            offset: usize,
388            _depth: fidl::encoding::Depth,
389        ) -> fidl::Result<()> {
390            encoder.debug_check_bounds::<ResolverResolveRequest>(offset);
391            // Delegate to tuple encoding.
392            fidl::encoding::Encode::<ResolverResolveRequest, D>::encode(
393                (<fidl::encoding::BoundedString<2048> as fidl::encoding::ValueTypeMarker>::borrow(
394                    &self.name,
395                ),),
396                encoder,
397                offset,
398                _depth,
399            )
400        }
401    }
402    unsafe impl<
403            D: fidl::encoding::ResourceDialect,
404            T0: fidl::encoding::Encode<fidl::encoding::BoundedString<2048>, D>,
405        > fidl::encoding::Encode<ResolverResolveRequest, D> for (T0,)
406    {
407        #[inline]
408        unsafe fn encode(
409            self,
410            encoder: &mut fidl::encoding::Encoder<'_, D>,
411            offset: usize,
412            depth: fidl::encoding::Depth,
413        ) -> fidl::Result<()> {
414            encoder.debug_check_bounds::<ResolverResolveRequest>(offset);
415            // Zero out padding regions. There's no need to apply masks
416            // because the unmasked parts will be overwritten by fields.
417            // Write the fields.
418            self.0.encode(encoder, offset + 0, depth)?;
419            Ok(())
420        }
421    }
422
423    impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
424        for ResolverResolveRequest
425    {
426        #[inline(always)]
427        fn new_empty() -> Self {
428            Self { name: fidl::new_empty!(fidl::encoding::BoundedString<2048>, D) }
429        }
430
431        #[inline]
432        unsafe fn decode(
433            &mut self,
434            decoder: &mut fidl::encoding::Decoder<'_, D>,
435            offset: usize,
436            _depth: fidl::encoding::Depth,
437        ) -> fidl::Result<()> {
438            decoder.debug_check_bounds::<Self>(offset);
439            // Verify that padding bytes are zero.
440            fidl::decode!(
441                fidl::encoding::BoundedString<2048>,
442                D,
443                &mut self.name,
444                decoder,
445                offset + 0,
446                _depth
447            )?;
448            Ok(())
449        }
450    }
451}