Skip to main content

fidl_fuchsia_ui_scenic/
fidl_fuchsia_ui_scenic.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::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_ui_scenic_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14/// Scenic.TakeScreenshot() returns a raw BGRA formatted image in
15/// sRGB color space and with a non-linear transfer function in this
16/// struct.
17#[derive(Debug, PartialEq)]
18pub struct ScreenshotData {
19    pub info: fidl_fuchsia_images::ImageInfo,
20    pub data: fidl_fuchsia_mem::Buffer,
21}
22
23impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ScreenshotData {}
24
25mod internal {
26    use super::*;
27
28    impl fidl::encoding::ResourceTypeMarker for ScreenshotData {
29        type Borrowed<'a> = &'a mut Self;
30        fn take_or_borrow<'a>(
31            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
32        ) -> Self::Borrowed<'a> {
33            value
34        }
35    }
36
37    unsafe impl fidl::encoding::TypeMarker for ScreenshotData {
38        type Owned = Self;
39
40        #[inline(always)]
41        fn inline_align(_context: fidl::encoding::Context) -> usize {
42            8
43        }
44
45        #[inline(always)]
46        fn inline_size(_context: fidl::encoding::Context) -> usize {
47            48
48        }
49    }
50
51    unsafe impl
52        fidl::encoding::Encode<ScreenshotData, fidl::encoding::DefaultFuchsiaResourceDialect>
53        for &mut ScreenshotData
54    {
55        #[inline]
56        unsafe fn encode(
57            self,
58            encoder: &mut fidl::encoding::Encoder<
59                '_,
60                fidl::encoding::DefaultFuchsiaResourceDialect,
61            >,
62            offset: usize,
63            _depth: fidl::encoding::Depth,
64        ) -> fidl::Result<()> {
65            encoder.debug_check_bounds::<ScreenshotData>(offset);
66            // Delegate to tuple encoding.
67            fidl::encoding::Encode::<ScreenshotData, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
68                (
69                    <fidl_fuchsia_images::ImageInfo as fidl::encoding::ValueTypeMarker>::borrow(&self.info),
70                    <fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.data),
71                ),
72                encoder, offset, _depth
73            )
74        }
75    }
76    unsafe impl<
77        T0: fidl::encoding::Encode<
78                fidl_fuchsia_images::ImageInfo,
79                fidl::encoding::DefaultFuchsiaResourceDialect,
80            >,
81        T1: fidl::encoding::Encode<
82                fidl_fuchsia_mem::Buffer,
83                fidl::encoding::DefaultFuchsiaResourceDialect,
84            >,
85    > fidl::encoding::Encode<ScreenshotData, fidl::encoding::DefaultFuchsiaResourceDialect>
86        for (T0, T1)
87    {
88        #[inline]
89        unsafe fn encode(
90            self,
91            encoder: &mut fidl::encoding::Encoder<
92                '_,
93                fidl::encoding::DefaultFuchsiaResourceDialect,
94            >,
95            offset: usize,
96            depth: fidl::encoding::Depth,
97        ) -> fidl::Result<()> {
98            encoder.debug_check_bounds::<ScreenshotData>(offset);
99            // Zero out padding regions. There's no need to apply masks
100            // because the unmasked parts will be overwritten by fields.
101            // Write the fields.
102            self.0.encode(encoder, offset + 0, depth)?;
103            self.1.encode(encoder, offset + 32, depth)?;
104            Ok(())
105        }
106    }
107
108    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
109        for ScreenshotData
110    {
111        #[inline(always)]
112        fn new_empty() -> Self {
113            Self {
114                info: fidl::new_empty!(
115                    fidl_fuchsia_images::ImageInfo,
116                    fidl::encoding::DefaultFuchsiaResourceDialect
117                ),
118                data: fidl::new_empty!(
119                    fidl_fuchsia_mem::Buffer,
120                    fidl::encoding::DefaultFuchsiaResourceDialect
121                ),
122            }
123        }
124
125        #[inline]
126        unsafe fn decode(
127            &mut self,
128            decoder: &mut fidl::encoding::Decoder<
129                '_,
130                fidl::encoding::DefaultFuchsiaResourceDialect,
131            >,
132            offset: usize,
133            _depth: fidl::encoding::Depth,
134        ) -> fidl::Result<()> {
135            decoder.debug_check_bounds::<Self>(offset);
136            // Verify that padding bytes are zero.
137            fidl::decode!(
138                fidl_fuchsia_images::ImageInfo,
139                fidl::encoding::DefaultFuchsiaResourceDialect,
140                &mut self.info,
141                decoder,
142                offset + 0,
143                _depth
144            )?;
145            fidl::decode!(
146                fidl_fuchsia_mem::Buffer,
147                fidl::encoding::DefaultFuchsiaResourceDialect,
148                &mut self.data,
149                decoder,
150                offset + 32,
151                _depth
152            )?;
153            Ok(())
154        }
155    }
156}