fidl_fuchsia_ui_gfx/
fidl_fuchsia_ui_gfx.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_gfx__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14/// Instructs the compositor to create the specified `Resource`, and to register
15/// it in a table so that it can be referenced by subsequent commands.
16#[derive(Debug, PartialEq)]
17pub struct CreateResourceCmd {
18    /// An ID that is currently not used within the session.
19    pub id: u32,
20    pub resource: ResourceArgs,
21}
22
23impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for CreateResourceCmd {}
24
25/// Create an external reference to the specified resource, which can then be
26/// imported into another Session by passing a handle to `token`'s peer to
27/// ImportResourceCmd; see that comment for more details.
28///
29/// The importing client is typically in a different process than the exporter.
30/// No specific mechanism is provided for transferring a token from an exporter
31/// to an importer; collaborators may choose any out-of-band API they wish to do
32/// so.
33#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
34pub struct ExportResourceCmdDeprecated {
35    pub id: u32,
36    pub token: fidl::EventPair,
37}
38
39impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
40    for ExportResourceCmdDeprecated
41{
42}
43
44/// Token that uniquely identifies a root point for a subgraph in the global
45/// scene graph. Each `ExportToken` has exactly one corresponding `ImportToken`.
46///
47/// A Scenic client can have its contents referenced from another client by
48/// creating a typed resource using this token.  The other client must also
49/// create a correspondingly typed resource using the corresponding
50/// `ImportToken`.
51///
52/// The exact nature of the inter-client reference depends on the specific
53/// resources created from the tokens.  For example, creating a `View`
54/// resource from this token allows everything attached to the `View` to be
55/// embedded in another clients `ViewHolder`.
56#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
57pub struct ExportToken {
58    pub value: fidl::EventPair,
59}
60
61impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ExportToken {}
62
63/// An image that is backed by a `BufferCollection` registered with `Allocator`.
64#[derive(Debug, PartialEq)]
65pub struct ImageArgs3 {
66    pub width: u32,
67    pub height: u32,
68    /// Image creation requires an allocated `BufferCollection` registered with Allocator.
69    /// `import_token` should be the other end of a BufferCollectionExportToken that is
70    /// successfully registered. All clients of the specified BufferCollection must have set
71    /// their constraints and buffers should be allocated before calling.
72    pub import_token: fidl_fuchsia_ui_composition::BufferCollectionImportToken,
73    /// The index of the VMO from the `BufferCollection` that backs this image.
74    pub buffer_collection_index: u32,
75}
76
77impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ImageArgs3 {}
78
79/// `ImagePipe2` is a `Resource` that can be used as a `Texture` for a `Material`.
80#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
81pub struct ImagePipe2Args {
82    pub image_pipe_request: fidl::endpoints::ServerEnd<fidl_fuchsia_images::ImagePipe2Marker>,
83}
84
85impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ImagePipe2Args {}
86
87/// Import a resource that was exported via ExportResourceCmd().  `token` is
88/// a handle to the eventpair peer that was used to export the resource, and
89/// `spec` describes the type of the imported resource, and the commands which
90/// can legally be applied to it.  Afterward, `id` can be used to refer to the
91/// resource in an Command, similarly (but not identically: see below) to a
92/// resource that was created in the session.  For example, you can add children
93/// to an imported EntityNode via AddChildCmd.
94///
95/// However, note that the importer does not gain full access to the imported
96/// resource, but rather to an attenuated subset of its capabilities.  For
97/// example, you cannot use a DetachCmd to detach an imported EntityNode from
98/// its parent.
99///
100/// Unlike ExportResourceCmd, there is no configurable timeout.  There is an
101/// expectation that the exported resource will become available in a short
102/// amount of time.  TODO: this needs elaboration... e.g. we might notify via the
103/// SessionListener when we know that the link will never be made (e.g. if the
104/// peer of the import token is destroyed).
105#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
106pub struct ImportResourceCmdDeprecated {
107    pub id: u32,
108    pub token: fidl::EventPair,
109    pub spec: ImportSpec,
110}
111
112impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
113    for ImportResourceCmdDeprecated
114{
115}
116
117/// Token that uniquely identifies an attachment point for a subgraph in the
118/// global scene graph.  Each `ImportToken` has exactly one corresponding
119/// `ExportToken`.
120///
121/// A Scenic client can reference contents from another client by creating a
122/// typed resource using this token.  The other client must also create a
123/// correspondingly typed resource using the corresponding `ExportToken`.
124///
125/// The exact nature of the inter-client reference depends on the specific
126/// resources created from the tokens.  For example, creating a `ViewHolder`
127/// resource from this token allows a client to embed another client's `View`.
128#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
129pub struct ImportToken {
130    pub value: fidl::EventPair,
131}
132
133impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ImportToken {}
134
135/// `Memory` is a `Resource` that wraps a client-provided Zircon vmo to register
136/// it with Scenic.
137#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
138pub struct MemoryArgs {
139    /// The VMO which backs this memory.
140    pub vmo: fidl::Vmo,
141    /// The amount of memory from `vmo` that should be utilized.
142    pub allocation_size: u64,
143    /// The type of memory stored in the VMO, namely whether it's GPU memory or
144    /// host memory.
145    pub memory_type: fidl_fuchsia_images::MemoryType,
146}
147
148impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for MemoryArgs {}
149
150#[derive(Debug, PartialEq)]
151pub struct SnapshotCallbackDeprecatedOnDataRequest {
152    pub data: fidl_fuchsia_mem::Buffer,
153}
154
155impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
156    for SnapshotCallbackDeprecatedOnDataRequest
157{
158}
159
160#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
161pub struct TakeSnapshotCmdDeprecated {
162    pub node_id: u32,
163    pub callback: fidl::endpoints::ClientEnd<SnapshotCallbackDeprecatedMarker>,
164}
165
166impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for TakeSnapshotCmdDeprecated {}
167
168/// Represents the root of a subgraph within a larger scene graph.  Nodes can be
169/// attached to the `View` as children, and these Nodes will have the `View`s'
170/// coordinate transform applied to their own, in addition to being clipped to
171/// the `View`s' bounding box.
172/// See `ViewProperties`.
173///
174/// Each `View` is linked to a paired `ViewHolder` via a shared token pair.
175///
176/// Usually the `View` and its associated `ViewHolder` exist in separate
177/// processes.  By combining them, the UI for an entire system can be built
178/// using content contributed from many different processes.
179#[derive(Debug, PartialEq)]
180pub struct ViewArgs {
181    pub token: fidl_fuchsia_ui_views::ViewToken,
182    pub debug_name: Option<String>,
183}
184
185impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ViewArgs {}
186
187/// Represents the root of a subgraph within a larger scene graph.  Nodes can be
188/// attached to the `View` as children, and these Nodes will have the `View`s'
189/// coordinate transform applied to their own, in addition to being clipped to
190/// the `View`s' bounding box.
191/// See `ViewProperties`.
192///
193/// Each `View` is linked to a paired `ViewHolder` via a shared token pair.
194///
195/// Usually the `View` and its associated `ViewHolder` exist in separate
196/// processes.  By combining them, the UI for an entire system can be built
197/// using content contributed from many different processes.
198///
199/// Clients self-identify their `View` with a `ViewRef`, which is a stable
200/// identifier that may be cloned and passed to other components in a
201/// feed-forward style. It is accompanied by a `ViewRefControl`, which Scenic
202/// uses to signal `View` destruction across the system; the `ViewRefControl`
203/// must be unique - do not clone it.
204#[derive(Debug, PartialEq)]
205pub struct ViewArgs3 {
206    pub token: fidl_fuchsia_ui_views::ViewToken,
207    /// `control_ref.reference` must have default eventpair rights (i.e., with
208    /// signaling), minus ZX_RIGHT_DUPLICATE.
209    pub control_ref: fidl_fuchsia_ui_views::ViewRefControl,
210    /// `view_ref.reference` must have basic rights (i.e., no signaling).
211    pub view_ref: fidl_fuchsia_ui_views::ViewRef,
212    pub debug_name: Option<String>,
213}
214
215impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ViewArgs3 {}
216
217/// Represents an attachment point for a subgraph within a larger scene graph.
218/// The `ViewHolder` can be attached to a Node as a child, and the contents of
219/// the linked `View` will become a child of the Node as well.
220///
221/// Each `ViewHolder` is linked to a paired `View` via a shared token pair.
222///
223/// Usually the `ViewHolder` and its associated `View` exist in separate
224/// processes.  By combining them, the UI for an entire system can be built
225/// using content contributed from many different processes.
226#[derive(Debug, PartialEq)]
227pub struct ViewHolderArgs {
228    pub token: fidl_fuchsia_ui_views::ViewHolderToken,
229    pub debug_name: Option<String>,
230}
231
232impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ViewHolderArgs {}
233
234/// Commands that are used to modify the state of a `Session`.
235#[derive(Debug, PartialEq)]
236pub enum Command {
237    CreateResource(CreateResourceCmd),
238    ReleaseResource(ReleaseResourceCmd),
239    ExportResource(ExportResourceCmdDeprecated),
240    ImportResource(ImportResourceCmdDeprecated),
241    /// Tagging commands.
242    SetTag(SetTagCmd),
243    /// Grouping commands.
244    Detach(DetachCmd),
245    /// Spatial commands.
246    SetTranslation(SetTranslationCmd),
247    SetScale(SetScaleCmd),
248    SetRotation(SetRotationCmd),
249    SetAnchor(SetAnchorCmd),
250    SetSize(SetSizeCmd),
251    SetOpacity(SetOpacityCmd),
252    SendSizeChangeHintHack(SendSizeChangeHintCmdHack),
253    /// Node-specific commands.
254    AddChild(AddChildCmd),
255    /// re-parenting?
256    AddPart(AddPartCmd),
257    DetachChildren(DetachChildrenCmd),
258    SetShape(SetShapeCmd),
259    SetMaterial(SetMaterialCmd),
260    SetClip(SetClipCmd),
261    SetHitTestBehavior(SetHitTestBehaviorCmd),
262    SetViewProperties(SetViewPropertiesCmd),
263    TakeSnapshotCmd(TakeSnapshotCmdDeprecated),
264    /// Camera and lighting commands.
265    SetCamera(SetCameraCmd),
266    SetCameraTransform(SetCameraTransformCmd),
267    SetCameraProjection(SetCameraProjectionCmd),
268    SetStereoCameraProjection(SetStereoCameraProjectionCmd),
269    SetCameraPoseBuffer(SetCameraPoseBufferCmd),
270    SetLightColor(SetLightColorCmd),
271    SetLightDirection(SetLightDirectionCmd),
272    AddLight(AddLightCmd),
273    DetachLight(DetachLightCmd),
274    DetachLights(DetachLightsCmd),
275    SetTexture(SetTextureCmd),
276    SetColor(SetColorCmd),
277    /// Mesh commands.
278    BindMeshBuffers(BindMeshBuffersCmd),
279    /// Layer and renderer commands.
280    AddLayer(AddLayerCmd),
281    RemoveLayer(RemoveLayerCmd),
282    RemoveAllLayers(RemoveAllLayersCmd),
283    SetLayerStack(SetLayerStackCmd),
284    SetRenderer(SetRendererCmd),
285    SetRendererParam(SetRendererParamCmd),
286    /// Events.
287    SetEventMask(SetEventMaskCmd),
288    /// Diagnostic commands.
289    SetLabel(SetLabelCmd),
290    /// Debugging commands.
291    SetDisableClipping(SetDisableClippingCmd),
292    SetImportFocus(SetImportFocusCmdDeprecated),
293    SetClipPlanes(SetClipPlanesCmd),
294    SetPointLightPosition(SetPointLightPositionCmd),
295    SetPointLightFalloff(SetPointLightFalloffCmd),
296    Scene_AddAmbientLight(SceneAddAmbientLightCmd),
297    Scene_AddDirectionalLight(SceneAddDirectionalLightCmd),
298    Scene_AddPointLight(SceneAddPointLightCmd),
299    SetDisplayColorConversion(SetDisplayColorConversionCmdHack),
300    SetDisplayRotation(SetDisplayRotationCmdHack),
301    SetEnableViewDebugBounds(SetEnableDebugViewBoundsCmd),
302    SetViewHolderBoundsColor(SetViewHolderBoundsColorCmd),
303    SetCameraClipSpaceTransform(SetCameraClipSpaceTransformCmd),
304    SetDisplayMinimumRgb(SetDisplayMinimumRgbCmdHack),
305    SetSemanticVisibility(SetSemanticVisibilityCmd),
306}
307
308impl Command {
309    #[inline]
310    pub fn ordinal(&self) -> u64 {
311        match *self {
312            Self::CreateResource(_) => 1,
313            Self::ReleaseResource(_) => 2,
314            Self::ExportResource(_) => 3,
315            Self::ImportResource(_) => 4,
316            Self::SetTag(_) => 5,
317            Self::Detach(_) => 6,
318            Self::SetTranslation(_) => 7,
319            Self::SetScale(_) => 8,
320            Self::SetRotation(_) => 9,
321            Self::SetAnchor(_) => 10,
322            Self::SetSize(_) => 11,
323            Self::SetOpacity(_) => 12,
324            Self::SendSizeChangeHintHack(_) => 13,
325            Self::AddChild(_) => 14,
326            Self::AddPart(_) => 15,
327            Self::DetachChildren(_) => 16,
328            Self::SetShape(_) => 17,
329            Self::SetMaterial(_) => 18,
330            Self::SetClip(_) => 19,
331            Self::SetHitTestBehavior(_) => 20,
332            Self::SetViewProperties(_) => 21,
333            Self::TakeSnapshotCmd(_) => 22,
334            Self::SetCamera(_) => 23,
335            Self::SetCameraTransform(_) => 24,
336            Self::SetCameraProjection(_) => 25,
337            Self::SetStereoCameraProjection(_) => 26,
338            Self::SetCameraPoseBuffer(_) => 27,
339            Self::SetLightColor(_) => 28,
340            Self::SetLightDirection(_) => 29,
341            Self::AddLight(_) => 30,
342            Self::DetachLight(_) => 31,
343            Self::DetachLights(_) => 32,
344            Self::SetTexture(_) => 33,
345            Self::SetColor(_) => 34,
346            Self::BindMeshBuffers(_) => 35,
347            Self::AddLayer(_) => 36,
348            Self::RemoveLayer(_) => 37,
349            Self::RemoveAllLayers(_) => 38,
350            Self::SetLayerStack(_) => 39,
351            Self::SetRenderer(_) => 40,
352            Self::SetRendererParam(_) => 41,
353            Self::SetEventMask(_) => 42,
354            Self::SetLabel(_) => 43,
355            Self::SetDisableClipping(_) => 44,
356            Self::SetImportFocus(_) => 45,
357            Self::SetClipPlanes(_) => 46,
358            Self::SetPointLightPosition(_) => 47,
359            Self::SetPointLightFalloff(_) => 48,
360            Self::Scene_AddAmbientLight(_) => 49,
361            Self::Scene_AddDirectionalLight(_) => 50,
362            Self::Scene_AddPointLight(_) => 51,
363            Self::SetDisplayColorConversion(_) => 52,
364            Self::SetDisplayRotation(_) => 53,
365            Self::SetEnableViewDebugBounds(_) => 54,
366            Self::SetViewHolderBoundsColor(_) => 55,
367            Self::SetCameraClipSpaceTransform(_) => 56,
368            Self::SetDisplayMinimumRgb(_) => 57,
369            Self::SetSemanticVisibility(_) => 58,
370        }
371    }
372}
373
374impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for Command {}
375
376/// These are all of the types of resources that can be created within a
377/// `Session`. Add new fields only to the bottom of the list.
378#[derive(Debug, PartialEq)]
379pub enum ResourceArgs {
380    Memory(MemoryArgs),
381    Image(ImageArgs),
382    Buffer(BufferArgs),
383    View(ViewArgs),
384    ViewHolder(ViewHolderArgs),
385    Rectangle(RectangleArgs),
386    RoundedRectangle(RoundedRectangleArgs),
387    Circle(CircleArgs),
388    Mesh(MeshArgs),
389    ShapeNode(ShapeNodeArgs),
390    ClipNode(ClipNodeArgs),
391    EntityNode(EntityNodeArgs),
392    OpacityNode(OpacityNodeArgsHack),
393    Material(MaterialArgs),
394    Compositor(CompositorArgs),
395    DisplayCompositor(DisplayCompositorArgs),
396    LayerStack(LayerStackArgs),
397    Layer(LayerArgs),
398    Scene(SceneArgs),
399    Camera(CameraArgs),
400    StereoCamera(StereoCameraArgs),
401    Renderer(RendererArgs),
402    AmbientLight(AmbientLightArgs),
403    DirectionalLight(DirectionalLightArgs),
404    Variable(VariableArgs),
405    PointLight(PointLightArgs),
406    View3(ViewArgs3),
407    ImagePipe2(ImagePipe2Args),
408    Image2(ImageArgs2),
409    Image3(ImageArgs3),
410}
411
412impl ResourceArgs {
413    #[inline]
414    pub fn ordinal(&self) -> u64 {
415        match *self {
416            Self::Memory(_) => 1,
417            Self::Image(_) => 2,
418            Self::Buffer(_) => 4,
419            Self::View(_) => 5,
420            Self::ViewHolder(_) => 6,
421            Self::Rectangle(_) => 7,
422            Self::RoundedRectangle(_) => 8,
423            Self::Circle(_) => 9,
424            Self::Mesh(_) => 10,
425            Self::ShapeNode(_) => 11,
426            Self::ClipNode(_) => 12,
427            Self::EntityNode(_) => 13,
428            Self::OpacityNode(_) => 14,
429            Self::Material(_) => 15,
430            Self::Compositor(_) => 16,
431            Self::DisplayCompositor(_) => 17,
432            Self::LayerStack(_) => 19,
433            Self::Layer(_) => 20,
434            Self::Scene(_) => 21,
435            Self::Camera(_) => 22,
436            Self::StereoCamera(_) => 23,
437            Self::Renderer(_) => 24,
438            Self::AmbientLight(_) => 25,
439            Self::DirectionalLight(_) => 26,
440            Self::Variable(_) => 27,
441            Self::PointLight(_) => 28,
442            Self::View3(_) => 31,
443            Self::ImagePipe2(_) => 32,
444            Self::Image2(_) => 33,
445            Self::Image3(_) => 34,
446        }
447    }
448}
449
450impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ResourceArgs {}
451
452#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
453pub struct SnapshotCallbackDeprecatedMarker;
454
455impl fidl::endpoints::ProtocolMarker for SnapshotCallbackDeprecatedMarker {
456    type Proxy = SnapshotCallbackDeprecatedProxy;
457    type RequestStream = SnapshotCallbackDeprecatedRequestStream;
458    #[cfg(target_os = "fuchsia")]
459    type SynchronousProxy = SnapshotCallbackDeprecatedSynchronousProxy;
460
461    const DEBUG_NAME: &'static str = "(anonymous) SnapshotCallbackDeprecated";
462}
463
464pub trait SnapshotCallbackDeprecatedProxyInterface: Send + Sync {
465    fn r#on_data(&self, data: fidl_fuchsia_mem::Buffer) -> Result<(), fidl::Error>;
466}
467#[derive(Debug)]
468#[cfg(target_os = "fuchsia")]
469pub struct SnapshotCallbackDeprecatedSynchronousProxy {
470    client: fidl::client::sync::Client,
471}
472
473#[cfg(target_os = "fuchsia")]
474impl fidl::endpoints::SynchronousProxy for SnapshotCallbackDeprecatedSynchronousProxy {
475    type Proxy = SnapshotCallbackDeprecatedProxy;
476    type Protocol = SnapshotCallbackDeprecatedMarker;
477
478    fn from_channel(inner: fidl::Channel) -> Self {
479        Self::new(inner)
480    }
481
482    fn into_channel(self) -> fidl::Channel {
483        self.client.into_channel()
484    }
485
486    fn as_channel(&self) -> &fidl::Channel {
487        self.client.as_channel()
488    }
489}
490
491#[cfg(target_os = "fuchsia")]
492impl SnapshotCallbackDeprecatedSynchronousProxy {
493    pub fn new(channel: fidl::Channel) -> Self {
494        let protocol_name =
495            <SnapshotCallbackDeprecatedMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
496        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
497    }
498
499    pub fn into_channel(self) -> fidl::Channel {
500        self.client.into_channel()
501    }
502
503    /// Waits until an event arrives and returns it. It is safe for other
504    /// threads to make concurrent requests while waiting for an event.
505    pub fn wait_for_event(
506        &self,
507        deadline: zx::MonotonicInstant,
508    ) -> Result<SnapshotCallbackDeprecatedEvent, fidl::Error> {
509        SnapshotCallbackDeprecatedEvent::decode(self.client.wait_for_event(deadline)?)
510    }
511
512    pub fn r#on_data(&self, mut data: fidl_fuchsia_mem::Buffer) -> Result<(), fidl::Error> {
513        self.client.send::<SnapshotCallbackDeprecatedOnDataRequest>(
514            (&mut data,),
515            0x11d1a93b419b7d9f,
516            fidl::encoding::DynamicFlags::empty(),
517        )
518    }
519}
520
521#[cfg(target_os = "fuchsia")]
522impl From<SnapshotCallbackDeprecatedSynchronousProxy> for zx::Handle {
523    fn from(value: SnapshotCallbackDeprecatedSynchronousProxy) -> Self {
524        value.into_channel().into()
525    }
526}
527
528#[cfg(target_os = "fuchsia")]
529impl From<fidl::Channel> for SnapshotCallbackDeprecatedSynchronousProxy {
530    fn from(value: fidl::Channel) -> Self {
531        Self::new(value)
532    }
533}
534
535#[cfg(target_os = "fuchsia")]
536impl fidl::endpoints::FromClient for SnapshotCallbackDeprecatedSynchronousProxy {
537    type Protocol = SnapshotCallbackDeprecatedMarker;
538
539    fn from_client(value: fidl::endpoints::ClientEnd<SnapshotCallbackDeprecatedMarker>) -> Self {
540        Self::new(value.into_channel())
541    }
542}
543
544#[derive(Debug, Clone)]
545pub struct SnapshotCallbackDeprecatedProxy {
546    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
547}
548
549impl fidl::endpoints::Proxy for SnapshotCallbackDeprecatedProxy {
550    type Protocol = SnapshotCallbackDeprecatedMarker;
551
552    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
553        Self::new(inner)
554    }
555
556    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
557        self.client.into_channel().map_err(|client| Self { client })
558    }
559
560    fn as_channel(&self) -> &::fidl::AsyncChannel {
561        self.client.as_channel()
562    }
563}
564
565impl SnapshotCallbackDeprecatedProxy {
566    /// Create a new Proxy for fuchsia.ui.gfx/SnapshotCallbackDEPRECATED.
567    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
568        let protocol_name =
569            <SnapshotCallbackDeprecatedMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
570        Self { client: fidl::client::Client::new(channel, protocol_name) }
571    }
572
573    /// Get a Stream of events from the remote end of the protocol.
574    ///
575    /// # Panics
576    ///
577    /// Panics if the event stream was already taken.
578    pub fn take_event_stream(&self) -> SnapshotCallbackDeprecatedEventStream {
579        SnapshotCallbackDeprecatedEventStream { event_receiver: self.client.take_event_receiver() }
580    }
581
582    pub fn r#on_data(&self, mut data: fidl_fuchsia_mem::Buffer) -> Result<(), fidl::Error> {
583        SnapshotCallbackDeprecatedProxyInterface::r#on_data(self, data)
584    }
585}
586
587impl SnapshotCallbackDeprecatedProxyInterface for SnapshotCallbackDeprecatedProxy {
588    fn r#on_data(&self, mut data: fidl_fuchsia_mem::Buffer) -> Result<(), fidl::Error> {
589        self.client.send::<SnapshotCallbackDeprecatedOnDataRequest>(
590            (&mut data,),
591            0x11d1a93b419b7d9f,
592            fidl::encoding::DynamicFlags::empty(),
593        )
594    }
595}
596
597pub struct SnapshotCallbackDeprecatedEventStream {
598    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
599}
600
601impl std::marker::Unpin for SnapshotCallbackDeprecatedEventStream {}
602
603impl futures::stream::FusedStream for SnapshotCallbackDeprecatedEventStream {
604    fn is_terminated(&self) -> bool {
605        self.event_receiver.is_terminated()
606    }
607}
608
609impl futures::Stream for SnapshotCallbackDeprecatedEventStream {
610    type Item = Result<SnapshotCallbackDeprecatedEvent, fidl::Error>;
611
612    fn poll_next(
613        mut self: std::pin::Pin<&mut Self>,
614        cx: &mut std::task::Context<'_>,
615    ) -> std::task::Poll<Option<Self::Item>> {
616        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
617            &mut self.event_receiver,
618            cx
619        )?) {
620            Some(buf) => std::task::Poll::Ready(Some(SnapshotCallbackDeprecatedEvent::decode(buf))),
621            None => std::task::Poll::Ready(None),
622        }
623    }
624}
625
626#[derive(Debug)]
627pub enum SnapshotCallbackDeprecatedEvent {}
628
629impl SnapshotCallbackDeprecatedEvent {
630    /// Decodes a message buffer as a [`SnapshotCallbackDeprecatedEvent`].
631    fn decode(
632        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
633    ) -> Result<SnapshotCallbackDeprecatedEvent, fidl::Error> {
634        let (bytes, _handles) = buf.split_mut();
635        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
636        debug_assert_eq!(tx_header.tx_id, 0);
637        match tx_header.ordinal {
638            _ => Err(fidl::Error::UnknownOrdinal {
639                ordinal: tx_header.ordinal,
640                protocol_name: <SnapshotCallbackDeprecatedMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
641            })
642        }
643    }
644}
645
646/// A Stream of incoming requests for fuchsia.ui.gfx/SnapshotCallbackDEPRECATED.
647pub struct SnapshotCallbackDeprecatedRequestStream {
648    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
649    is_terminated: bool,
650}
651
652impl std::marker::Unpin for SnapshotCallbackDeprecatedRequestStream {}
653
654impl futures::stream::FusedStream for SnapshotCallbackDeprecatedRequestStream {
655    fn is_terminated(&self) -> bool {
656        self.is_terminated
657    }
658}
659
660impl fidl::endpoints::RequestStream for SnapshotCallbackDeprecatedRequestStream {
661    type Protocol = SnapshotCallbackDeprecatedMarker;
662    type ControlHandle = SnapshotCallbackDeprecatedControlHandle;
663
664    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
665        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
666    }
667
668    fn control_handle(&self) -> Self::ControlHandle {
669        SnapshotCallbackDeprecatedControlHandle { inner: self.inner.clone() }
670    }
671
672    fn into_inner(
673        self,
674    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
675    {
676        (self.inner, self.is_terminated)
677    }
678
679    fn from_inner(
680        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
681        is_terminated: bool,
682    ) -> Self {
683        Self { inner, is_terminated }
684    }
685}
686
687impl futures::Stream for SnapshotCallbackDeprecatedRequestStream {
688    type Item = Result<SnapshotCallbackDeprecatedRequest, fidl::Error>;
689
690    fn poll_next(
691        mut self: std::pin::Pin<&mut Self>,
692        cx: &mut std::task::Context<'_>,
693    ) -> std::task::Poll<Option<Self::Item>> {
694        let this = &mut *self;
695        if this.inner.check_shutdown(cx) {
696            this.is_terminated = true;
697            return std::task::Poll::Ready(None);
698        }
699        if this.is_terminated {
700            panic!("polled SnapshotCallbackDeprecatedRequestStream after completion");
701        }
702        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
703            |bytes, handles| {
704                match this.inner.channel().read_etc(cx, bytes, handles) {
705                    std::task::Poll::Ready(Ok(())) => {}
706                    std::task::Poll::Pending => return std::task::Poll::Pending,
707                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
708                        this.is_terminated = true;
709                        return std::task::Poll::Ready(None);
710                    }
711                    std::task::Poll::Ready(Err(e)) => {
712                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
713                            e.into(),
714                        ))));
715                    }
716                }
717
718                // A message has been received from the channel
719                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
720
721                std::task::Poll::Ready(Some(match header.ordinal {
722                0x11d1a93b419b7d9f => {
723                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
724                    let mut req = fidl::new_empty!(SnapshotCallbackDeprecatedOnDataRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
725                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<SnapshotCallbackDeprecatedOnDataRequest>(&header, _body_bytes, handles, &mut req)?;
726                    let control_handle = SnapshotCallbackDeprecatedControlHandle {
727                        inner: this.inner.clone(),
728                    };
729                    Ok(SnapshotCallbackDeprecatedRequest::OnData {data: req.data,
730
731                        control_handle,
732                    })
733                }
734                _ => Err(fidl::Error::UnknownOrdinal {
735                    ordinal: header.ordinal,
736                    protocol_name: <SnapshotCallbackDeprecatedMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
737                }),
738            }))
739            },
740        )
741    }
742}
743
744#[derive(Debug)]
745pub enum SnapshotCallbackDeprecatedRequest {
746    OnData {
747        data: fidl_fuchsia_mem::Buffer,
748        control_handle: SnapshotCallbackDeprecatedControlHandle,
749    },
750}
751
752impl SnapshotCallbackDeprecatedRequest {
753    #[allow(irrefutable_let_patterns)]
754    pub fn into_on_data(
755        self,
756    ) -> Option<(fidl_fuchsia_mem::Buffer, SnapshotCallbackDeprecatedControlHandle)> {
757        if let SnapshotCallbackDeprecatedRequest::OnData { data, control_handle } = self {
758            Some((data, control_handle))
759        } else {
760            None
761        }
762    }
763
764    /// Name of the method defined in FIDL
765    pub fn method_name(&self) -> &'static str {
766        match *self {
767            SnapshotCallbackDeprecatedRequest::OnData { .. } => "on_data",
768        }
769    }
770}
771
772#[derive(Debug, Clone)]
773pub struct SnapshotCallbackDeprecatedControlHandle {
774    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
775}
776
777impl fidl::endpoints::ControlHandle for SnapshotCallbackDeprecatedControlHandle {
778    fn shutdown(&self) {
779        self.inner.shutdown()
780    }
781    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
782        self.inner.shutdown_with_epitaph(status)
783    }
784
785    fn is_closed(&self) -> bool {
786        self.inner.channel().is_closed()
787    }
788    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
789        self.inner.channel().on_closed()
790    }
791
792    #[cfg(target_os = "fuchsia")]
793    fn signal_peer(
794        &self,
795        clear_mask: zx::Signals,
796        set_mask: zx::Signals,
797    ) -> Result<(), zx_status::Status> {
798        use fidl::Peered;
799        self.inner.channel().signal_peer(clear_mask, set_mask)
800    }
801}
802
803impl SnapshotCallbackDeprecatedControlHandle {}
804
805mod internal {
806    use super::*;
807
808    impl fidl::encoding::ResourceTypeMarker for CreateResourceCmd {
809        type Borrowed<'a> = &'a mut Self;
810        fn take_or_borrow<'a>(
811            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
812        ) -> Self::Borrowed<'a> {
813            value
814        }
815    }
816
817    unsafe impl fidl::encoding::TypeMarker for CreateResourceCmd {
818        type Owned = Self;
819
820        #[inline(always)]
821        fn inline_align(_context: fidl::encoding::Context) -> usize {
822            8
823        }
824
825        #[inline(always)]
826        fn inline_size(_context: fidl::encoding::Context) -> usize {
827            24
828        }
829    }
830
831    unsafe impl
832        fidl::encoding::Encode<CreateResourceCmd, fidl::encoding::DefaultFuchsiaResourceDialect>
833        for &mut CreateResourceCmd
834    {
835        #[inline]
836        unsafe fn encode(
837            self,
838            encoder: &mut fidl::encoding::Encoder<
839                '_,
840                fidl::encoding::DefaultFuchsiaResourceDialect,
841            >,
842            offset: usize,
843            _depth: fidl::encoding::Depth,
844        ) -> fidl::Result<()> {
845            encoder.debug_check_bounds::<CreateResourceCmd>(offset);
846            // Delegate to tuple encoding.
847            fidl::encoding::Encode::<CreateResourceCmd, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
848                (
849                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
850                    <ResourceArgs as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.resource),
851                ),
852                encoder, offset, _depth
853            )
854        }
855    }
856    unsafe impl<
857        T0: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
858        T1: fidl::encoding::Encode<ResourceArgs, fidl::encoding::DefaultFuchsiaResourceDialect>,
859    > fidl::encoding::Encode<CreateResourceCmd, fidl::encoding::DefaultFuchsiaResourceDialect>
860        for (T0, T1)
861    {
862        #[inline]
863        unsafe fn encode(
864            self,
865            encoder: &mut fidl::encoding::Encoder<
866                '_,
867                fidl::encoding::DefaultFuchsiaResourceDialect,
868            >,
869            offset: usize,
870            depth: fidl::encoding::Depth,
871        ) -> fidl::Result<()> {
872            encoder.debug_check_bounds::<CreateResourceCmd>(offset);
873            // Zero out padding regions. There's no need to apply masks
874            // because the unmasked parts will be overwritten by fields.
875            unsafe {
876                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
877                (ptr as *mut u64).write_unaligned(0);
878            }
879            // Write the fields.
880            self.0.encode(encoder, offset + 0, depth)?;
881            self.1.encode(encoder, offset + 8, depth)?;
882            Ok(())
883        }
884    }
885
886    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
887        for CreateResourceCmd
888    {
889        #[inline(always)]
890        fn new_empty() -> Self {
891            Self {
892                id: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
893                resource: fidl::new_empty!(
894                    ResourceArgs,
895                    fidl::encoding::DefaultFuchsiaResourceDialect
896                ),
897            }
898        }
899
900        #[inline]
901        unsafe fn decode(
902            &mut self,
903            decoder: &mut fidl::encoding::Decoder<
904                '_,
905                fidl::encoding::DefaultFuchsiaResourceDialect,
906            >,
907            offset: usize,
908            _depth: fidl::encoding::Depth,
909        ) -> fidl::Result<()> {
910            decoder.debug_check_bounds::<Self>(offset);
911            // Verify that padding bytes are zero.
912            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
913            let padval = unsafe { (ptr as *const u64).read_unaligned() };
914            let mask = 0xffffffff00000000u64;
915            let maskedval = padval & mask;
916            if maskedval != 0 {
917                return Err(fidl::Error::NonZeroPadding {
918                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
919                });
920            }
921            fidl::decode!(
922                u32,
923                fidl::encoding::DefaultFuchsiaResourceDialect,
924                &mut self.id,
925                decoder,
926                offset + 0,
927                _depth
928            )?;
929            fidl::decode!(
930                ResourceArgs,
931                fidl::encoding::DefaultFuchsiaResourceDialect,
932                &mut self.resource,
933                decoder,
934                offset + 8,
935                _depth
936            )?;
937            Ok(())
938        }
939    }
940
941    impl fidl::encoding::ResourceTypeMarker for ExportResourceCmdDeprecated {
942        type Borrowed<'a> = &'a mut Self;
943        fn take_or_borrow<'a>(
944            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
945        ) -> Self::Borrowed<'a> {
946            value
947        }
948    }
949
950    unsafe impl fidl::encoding::TypeMarker for ExportResourceCmdDeprecated {
951        type Owned = Self;
952
953        #[inline(always)]
954        fn inline_align(_context: fidl::encoding::Context) -> usize {
955            4
956        }
957
958        #[inline(always)]
959        fn inline_size(_context: fidl::encoding::Context) -> usize {
960            8
961        }
962    }
963
964    unsafe impl
965        fidl::encoding::Encode<
966            ExportResourceCmdDeprecated,
967            fidl::encoding::DefaultFuchsiaResourceDialect,
968        > for &mut ExportResourceCmdDeprecated
969    {
970        #[inline]
971        unsafe fn encode(
972            self,
973            encoder: &mut fidl::encoding::Encoder<
974                '_,
975                fidl::encoding::DefaultFuchsiaResourceDialect,
976            >,
977            offset: usize,
978            _depth: fidl::encoding::Depth,
979        ) -> fidl::Result<()> {
980            encoder.debug_check_bounds::<ExportResourceCmdDeprecated>(offset);
981            // Delegate to tuple encoding.
982            fidl::encoding::Encode::<
983                ExportResourceCmdDeprecated,
984                fidl::encoding::DefaultFuchsiaResourceDialect,
985            >::encode(
986                (
987                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
988                    <fidl::encoding::HandleType<
989                        fidl::EventPair,
990                        { fidl::ObjectType::EVENTPAIR.into_raw() },
991                        2147483648,
992                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
993                        &mut self.token
994                    ),
995                ),
996                encoder,
997                offset,
998                _depth,
999            )
1000        }
1001    }
1002    unsafe impl<
1003        T0: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
1004        T1: fidl::encoding::Encode<
1005                fidl::encoding::HandleType<
1006                    fidl::EventPair,
1007                    { fidl::ObjectType::EVENTPAIR.into_raw() },
1008                    2147483648,
1009                >,
1010                fidl::encoding::DefaultFuchsiaResourceDialect,
1011            >,
1012    >
1013        fidl::encoding::Encode<
1014            ExportResourceCmdDeprecated,
1015            fidl::encoding::DefaultFuchsiaResourceDialect,
1016        > for (T0, T1)
1017    {
1018        #[inline]
1019        unsafe fn encode(
1020            self,
1021            encoder: &mut fidl::encoding::Encoder<
1022                '_,
1023                fidl::encoding::DefaultFuchsiaResourceDialect,
1024            >,
1025            offset: usize,
1026            depth: fidl::encoding::Depth,
1027        ) -> fidl::Result<()> {
1028            encoder.debug_check_bounds::<ExportResourceCmdDeprecated>(offset);
1029            // Zero out padding regions. There's no need to apply masks
1030            // because the unmasked parts will be overwritten by fields.
1031            // Write the fields.
1032            self.0.encode(encoder, offset + 0, depth)?;
1033            self.1.encode(encoder, offset + 4, depth)?;
1034            Ok(())
1035        }
1036    }
1037
1038    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1039        for ExportResourceCmdDeprecated
1040    {
1041        #[inline(always)]
1042        fn new_empty() -> Self {
1043            Self {
1044                id: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
1045                token: fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1046            }
1047        }
1048
1049        #[inline]
1050        unsafe fn decode(
1051            &mut self,
1052            decoder: &mut fidl::encoding::Decoder<
1053                '_,
1054                fidl::encoding::DefaultFuchsiaResourceDialect,
1055            >,
1056            offset: usize,
1057            _depth: fidl::encoding::Depth,
1058        ) -> fidl::Result<()> {
1059            decoder.debug_check_bounds::<Self>(offset);
1060            // Verify that padding bytes are zero.
1061            fidl::decode!(
1062                u32,
1063                fidl::encoding::DefaultFuchsiaResourceDialect,
1064                &mut self.id,
1065                decoder,
1066                offset + 0,
1067                _depth
1068            )?;
1069            fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.token, decoder, offset + 4, _depth)?;
1070            Ok(())
1071        }
1072    }
1073
1074    impl fidl::encoding::ResourceTypeMarker for ExportToken {
1075        type Borrowed<'a> = &'a mut Self;
1076        fn take_or_borrow<'a>(
1077            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1078        ) -> Self::Borrowed<'a> {
1079            value
1080        }
1081    }
1082
1083    unsafe impl fidl::encoding::TypeMarker for ExportToken {
1084        type Owned = Self;
1085
1086        #[inline(always)]
1087        fn inline_align(_context: fidl::encoding::Context) -> usize {
1088            4
1089        }
1090
1091        #[inline(always)]
1092        fn inline_size(_context: fidl::encoding::Context) -> usize {
1093            4
1094        }
1095    }
1096
1097    unsafe impl fidl::encoding::Encode<ExportToken, fidl::encoding::DefaultFuchsiaResourceDialect>
1098        for &mut ExportToken
1099    {
1100        #[inline]
1101        unsafe fn encode(
1102            self,
1103            encoder: &mut fidl::encoding::Encoder<
1104                '_,
1105                fidl::encoding::DefaultFuchsiaResourceDialect,
1106            >,
1107            offset: usize,
1108            _depth: fidl::encoding::Depth,
1109        ) -> fidl::Result<()> {
1110            encoder.debug_check_bounds::<ExportToken>(offset);
1111            // Delegate to tuple encoding.
1112            fidl::encoding::Encode::<ExportToken, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1113                (
1114                    <fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.value),
1115                ),
1116                encoder, offset, _depth
1117            )
1118        }
1119    }
1120    unsafe impl<
1121        T0: fidl::encoding::Encode<
1122                fidl::encoding::HandleType<
1123                    fidl::EventPair,
1124                    { fidl::ObjectType::EVENTPAIR.into_raw() },
1125                    2147483648,
1126                >,
1127                fidl::encoding::DefaultFuchsiaResourceDialect,
1128            >,
1129    > fidl::encoding::Encode<ExportToken, fidl::encoding::DefaultFuchsiaResourceDialect> for (T0,)
1130    {
1131        #[inline]
1132        unsafe fn encode(
1133            self,
1134            encoder: &mut fidl::encoding::Encoder<
1135                '_,
1136                fidl::encoding::DefaultFuchsiaResourceDialect,
1137            >,
1138            offset: usize,
1139            depth: fidl::encoding::Depth,
1140        ) -> fidl::Result<()> {
1141            encoder.debug_check_bounds::<ExportToken>(offset);
1142            // Zero out padding regions. There's no need to apply masks
1143            // because the unmasked parts will be overwritten by fields.
1144            // Write the fields.
1145            self.0.encode(encoder, offset + 0, depth)?;
1146            Ok(())
1147        }
1148    }
1149
1150    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ExportToken {
1151        #[inline(always)]
1152        fn new_empty() -> Self {
1153            Self {
1154                value: fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1155            }
1156        }
1157
1158        #[inline]
1159        unsafe fn decode(
1160            &mut self,
1161            decoder: &mut fidl::encoding::Decoder<
1162                '_,
1163                fidl::encoding::DefaultFuchsiaResourceDialect,
1164            >,
1165            offset: usize,
1166            _depth: fidl::encoding::Depth,
1167        ) -> fidl::Result<()> {
1168            decoder.debug_check_bounds::<Self>(offset);
1169            // Verify that padding bytes are zero.
1170            fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.value, decoder, offset + 0, _depth)?;
1171            Ok(())
1172        }
1173    }
1174
1175    impl fidl::encoding::ResourceTypeMarker for ImageArgs3 {
1176        type Borrowed<'a> = &'a mut Self;
1177        fn take_or_borrow<'a>(
1178            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1179        ) -> Self::Borrowed<'a> {
1180            value
1181        }
1182    }
1183
1184    unsafe impl fidl::encoding::TypeMarker for ImageArgs3 {
1185        type Owned = Self;
1186
1187        #[inline(always)]
1188        fn inline_align(_context: fidl::encoding::Context) -> usize {
1189            4
1190        }
1191
1192        #[inline(always)]
1193        fn inline_size(_context: fidl::encoding::Context) -> usize {
1194            16
1195        }
1196    }
1197
1198    unsafe impl fidl::encoding::Encode<ImageArgs3, fidl::encoding::DefaultFuchsiaResourceDialect>
1199        for &mut ImageArgs3
1200    {
1201        #[inline]
1202        unsafe fn encode(
1203            self,
1204            encoder: &mut fidl::encoding::Encoder<
1205                '_,
1206                fidl::encoding::DefaultFuchsiaResourceDialect,
1207            >,
1208            offset: usize,
1209            _depth: fidl::encoding::Depth,
1210        ) -> fidl::Result<()> {
1211            encoder.debug_check_bounds::<ImageArgs3>(offset);
1212            // Delegate to tuple encoding.
1213            fidl::encoding::Encode::<ImageArgs3, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1214                (
1215                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.width),
1216                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.height),
1217                    <fidl_fuchsia_ui_composition::BufferCollectionImportToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.import_token),
1218                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.buffer_collection_index),
1219                ),
1220                encoder, offset, _depth
1221            )
1222        }
1223    }
1224    unsafe impl<
1225        T0: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
1226        T1: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
1227        T2: fidl::encoding::Encode<
1228                fidl_fuchsia_ui_composition::BufferCollectionImportToken,
1229                fidl::encoding::DefaultFuchsiaResourceDialect,
1230            >,
1231        T3: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
1232    > fidl::encoding::Encode<ImageArgs3, fidl::encoding::DefaultFuchsiaResourceDialect>
1233        for (T0, T1, T2, T3)
1234    {
1235        #[inline]
1236        unsafe fn encode(
1237            self,
1238            encoder: &mut fidl::encoding::Encoder<
1239                '_,
1240                fidl::encoding::DefaultFuchsiaResourceDialect,
1241            >,
1242            offset: usize,
1243            depth: fidl::encoding::Depth,
1244        ) -> fidl::Result<()> {
1245            encoder.debug_check_bounds::<ImageArgs3>(offset);
1246            // Zero out padding regions. There's no need to apply masks
1247            // because the unmasked parts will be overwritten by fields.
1248            // Write the fields.
1249            self.0.encode(encoder, offset + 0, depth)?;
1250            self.1.encode(encoder, offset + 4, depth)?;
1251            self.2.encode(encoder, offset + 8, depth)?;
1252            self.3.encode(encoder, offset + 12, depth)?;
1253            Ok(())
1254        }
1255    }
1256
1257    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ImageArgs3 {
1258        #[inline(always)]
1259        fn new_empty() -> Self {
1260            Self {
1261                width: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
1262                height: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
1263                import_token: fidl::new_empty!(
1264                    fidl_fuchsia_ui_composition::BufferCollectionImportToken,
1265                    fidl::encoding::DefaultFuchsiaResourceDialect
1266                ),
1267                buffer_collection_index: fidl::new_empty!(
1268                    u32,
1269                    fidl::encoding::DefaultFuchsiaResourceDialect
1270                ),
1271            }
1272        }
1273
1274        #[inline]
1275        unsafe fn decode(
1276            &mut self,
1277            decoder: &mut fidl::encoding::Decoder<
1278                '_,
1279                fidl::encoding::DefaultFuchsiaResourceDialect,
1280            >,
1281            offset: usize,
1282            _depth: fidl::encoding::Depth,
1283        ) -> fidl::Result<()> {
1284            decoder.debug_check_bounds::<Self>(offset);
1285            // Verify that padding bytes are zero.
1286            fidl::decode!(
1287                u32,
1288                fidl::encoding::DefaultFuchsiaResourceDialect,
1289                &mut self.width,
1290                decoder,
1291                offset + 0,
1292                _depth
1293            )?;
1294            fidl::decode!(
1295                u32,
1296                fidl::encoding::DefaultFuchsiaResourceDialect,
1297                &mut self.height,
1298                decoder,
1299                offset + 4,
1300                _depth
1301            )?;
1302            fidl::decode!(
1303                fidl_fuchsia_ui_composition::BufferCollectionImportToken,
1304                fidl::encoding::DefaultFuchsiaResourceDialect,
1305                &mut self.import_token,
1306                decoder,
1307                offset + 8,
1308                _depth
1309            )?;
1310            fidl::decode!(
1311                u32,
1312                fidl::encoding::DefaultFuchsiaResourceDialect,
1313                &mut self.buffer_collection_index,
1314                decoder,
1315                offset + 12,
1316                _depth
1317            )?;
1318            Ok(())
1319        }
1320    }
1321
1322    impl fidl::encoding::ResourceTypeMarker for ImagePipe2Args {
1323        type Borrowed<'a> = &'a mut Self;
1324        fn take_or_borrow<'a>(
1325            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1326        ) -> Self::Borrowed<'a> {
1327            value
1328        }
1329    }
1330
1331    unsafe impl fidl::encoding::TypeMarker for ImagePipe2Args {
1332        type Owned = Self;
1333
1334        #[inline(always)]
1335        fn inline_align(_context: fidl::encoding::Context) -> usize {
1336            4
1337        }
1338
1339        #[inline(always)]
1340        fn inline_size(_context: fidl::encoding::Context) -> usize {
1341            4
1342        }
1343    }
1344
1345    unsafe impl
1346        fidl::encoding::Encode<ImagePipe2Args, fidl::encoding::DefaultFuchsiaResourceDialect>
1347        for &mut ImagePipe2Args
1348    {
1349        #[inline]
1350        unsafe fn encode(
1351            self,
1352            encoder: &mut fidl::encoding::Encoder<
1353                '_,
1354                fidl::encoding::DefaultFuchsiaResourceDialect,
1355            >,
1356            offset: usize,
1357            _depth: fidl::encoding::Depth,
1358        ) -> fidl::Result<()> {
1359            encoder.debug_check_bounds::<ImagePipe2Args>(offset);
1360            // Delegate to tuple encoding.
1361            fidl::encoding::Encode::<ImagePipe2Args, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1362                (
1363                    <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<fidl_fuchsia_images::ImagePipe2Marker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.image_pipe_request),
1364                ),
1365                encoder, offset, _depth
1366            )
1367        }
1368    }
1369    unsafe impl<
1370        T0: fidl::encoding::Encode<
1371                fidl::encoding::Endpoint<
1372                    fidl::endpoints::ServerEnd<fidl_fuchsia_images::ImagePipe2Marker>,
1373                >,
1374                fidl::encoding::DefaultFuchsiaResourceDialect,
1375            >,
1376    > fidl::encoding::Encode<ImagePipe2Args, fidl::encoding::DefaultFuchsiaResourceDialect>
1377        for (T0,)
1378    {
1379        #[inline]
1380        unsafe fn encode(
1381            self,
1382            encoder: &mut fidl::encoding::Encoder<
1383                '_,
1384                fidl::encoding::DefaultFuchsiaResourceDialect,
1385            >,
1386            offset: usize,
1387            depth: fidl::encoding::Depth,
1388        ) -> fidl::Result<()> {
1389            encoder.debug_check_bounds::<ImagePipe2Args>(offset);
1390            // Zero out padding regions. There's no need to apply masks
1391            // because the unmasked parts will be overwritten by fields.
1392            // Write the fields.
1393            self.0.encode(encoder, offset + 0, depth)?;
1394            Ok(())
1395        }
1396    }
1397
1398    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1399        for ImagePipe2Args
1400    {
1401        #[inline(always)]
1402        fn new_empty() -> Self {
1403            Self {
1404                image_pipe_request: fidl::new_empty!(
1405                    fidl::encoding::Endpoint<
1406                        fidl::endpoints::ServerEnd<fidl_fuchsia_images::ImagePipe2Marker>,
1407                    >,
1408                    fidl::encoding::DefaultFuchsiaResourceDialect
1409                ),
1410            }
1411        }
1412
1413        #[inline]
1414        unsafe fn decode(
1415            &mut self,
1416            decoder: &mut fidl::encoding::Decoder<
1417                '_,
1418                fidl::encoding::DefaultFuchsiaResourceDialect,
1419            >,
1420            offset: usize,
1421            _depth: fidl::encoding::Depth,
1422        ) -> fidl::Result<()> {
1423            decoder.debug_check_bounds::<Self>(offset);
1424            // Verify that padding bytes are zero.
1425            fidl::decode!(
1426                fidl::encoding::Endpoint<
1427                    fidl::endpoints::ServerEnd<fidl_fuchsia_images::ImagePipe2Marker>,
1428                >,
1429                fidl::encoding::DefaultFuchsiaResourceDialect,
1430                &mut self.image_pipe_request,
1431                decoder,
1432                offset + 0,
1433                _depth
1434            )?;
1435            Ok(())
1436        }
1437    }
1438
1439    impl fidl::encoding::ResourceTypeMarker for ImportResourceCmdDeprecated {
1440        type Borrowed<'a> = &'a mut Self;
1441        fn take_or_borrow<'a>(
1442            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1443        ) -> Self::Borrowed<'a> {
1444            value
1445        }
1446    }
1447
1448    unsafe impl fidl::encoding::TypeMarker for ImportResourceCmdDeprecated {
1449        type Owned = Self;
1450
1451        #[inline(always)]
1452        fn inline_align(_context: fidl::encoding::Context) -> usize {
1453            4
1454        }
1455
1456        #[inline(always)]
1457        fn inline_size(_context: fidl::encoding::Context) -> usize {
1458            12
1459        }
1460    }
1461
1462    unsafe impl
1463        fidl::encoding::Encode<
1464            ImportResourceCmdDeprecated,
1465            fidl::encoding::DefaultFuchsiaResourceDialect,
1466        > for &mut ImportResourceCmdDeprecated
1467    {
1468        #[inline]
1469        unsafe fn encode(
1470            self,
1471            encoder: &mut fidl::encoding::Encoder<
1472                '_,
1473                fidl::encoding::DefaultFuchsiaResourceDialect,
1474            >,
1475            offset: usize,
1476            _depth: fidl::encoding::Depth,
1477        ) -> fidl::Result<()> {
1478            encoder.debug_check_bounds::<ImportResourceCmdDeprecated>(offset);
1479            // Delegate to tuple encoding.
1480            fidl::encoding::Encode::<
1481                ImportResourceCmdDeprecated,
1482                fidl::encoding::DefaultFuchsiaResourceDialect,
1483            >::encode(
1484                (
1485                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
1486                    <fidl::encoding::HandleType<
1487                        fidl::EventPair,
1488                        { fidl::ObjectType::EVENTPAIR.into_raw() },
1489                        2147483648,
1490                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
1491                        &mut self.token
1492                    ),
1493                    <ImportSpec as fidl::encoding::ValueTypeMarker>::borrow(&self.spec),
1494                ),
1495                encoder,
1496                offset,
1497                _depth,
1498            )
1499        }
1500    }
1501    unsafe impl<
1502        T0: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
1503        T1: fidl::encoding::Encode<
1504                fidl::encoding::HandleType<
1505                    fidl::EventPair,
1506                    { fidl::ObjectType::EVENTPAIR.into_raw() },
1507                    2147483648,
1508                >,
1509                fidl::encoding::DefaultFuchsiaResourceDialect,
1510            >,
1511        T2: fidl::encoding::Encode<ImportSpec, fidl::encoding::DefaultFuchsiaResourceDialect>,
1512    >
1513        fidl::encoding::Encode<
1514            ImportResourceCmdDeprecated,
1515            fidl::encoding::DefaultFuchsiaResourceDialect,
1516        > for (T0, T1, T2)
1517    {
1518        #[inline]
1519        unsafe fn encode(
1520            self,
1521            encoder: &mut fidl::encoding::Encoder<
1522                '_,
1523                fidl::encoding::DefaultFuchsiaResourceDialect,
1524            >,
1525            offset: usize,
1526            depth: fidl::encoding::Depth,
1527        ) -> fidl::Result<()> {
1528            encoder.debug_check_bounds::<ImportResourceCmdDeprecated>(offset);
1529            // Zero out padding regions. There's no need to apply masks
1530            // because the unmasked parts will be overwritten by fields.
1531            // Write the fields.
1532            self.0.encode(encoder, offset + 0, depth)?;
1533            self.1.encode(encoder, offset + 4, depth)?;
1534            self.2.encode(encoder, offset + 8, depth)?;
1535            Ok(())
1536        }
1537    }
1538
1539    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1540        for ImportResourceCmdDeprecated
1541    {
1542        #[inline(always)]
1543        fn new_empty() -> Self {
1544            Self {
1545                id: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
1546                token: fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1547                spec: fidl::new_empty!(ImportSpec, fidl::encoding::DefaultFuchsiaResourceDialect),
1548            }
1549        }
1550
1551        #[inline]
1552        unsafe fn decode(
1553            &mut self,
1554            decoder: &mut fidl::encoding::Decoder<
1555                '_,
1556                fidl::encoding::DefaultFuchsiaResourceDialect,
1557            >,
1558            offset: usize,
1559            _depth: fidl::encoding::Depth,
1560        ) -> fidl::Result<()> {
1561            decoder.debug_check_bounds::<Self>(offset);
1562            // Verify that padding bytes are zero.
1563            fidl::decode!(
1564                u32,
1565                fidl::encoding::DefaultFuchsiaResourceDialect,
1566                &mut self.id,
1567                decoder,
1568                offset + 0,
1569                _depth
1570            )?;
1571            fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.token, decoder, offset + 4, _depth)?;
1572            fidl::decode!(
1573                ImportSpec,
1574                fidl::encoding::DefaultFuchsiaResourceDialect,
1575                &mut self.spec,
1576                decoder,
1577                offset + 8,
1578                _depth
1579            )?;
1580            Ok(())
1581        }
1582    }
1583
1584    impl fidl::encoding::ResourceTypeMarker for ImportToken {
1585        type Borrowed<'a> = &'a mut Self;
1586        fn take_or_borrow<'a>(
1587            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1588        ) -> Self::Borrowed<'a> {
1589            value
1590        }
1591    }
1592
1593    unsafe impl fidl::encoding::TypeMarker for ImportToken {
1594        type Owned = Self;
1595
1596        #[inline(always)]
1597        fn inline_align(_context: fidl::encoding::Context) -> usize {
1598            4
1599        }
1600
1601        #[inline(always)]
1602        fn inline_size(_context: fidl::encoding::Context) -> usize {
1603            4
1604        }
1605    }
1606
1607    unsafe impl fidl::encoding::Encode<ImportToken, fidl::encoding::DefaultFuchsiaResourceDialect>
1608        for &mut ImportToken
1609    {
1610        #[inline]
1611        unsafe fn encode(
1612            self,
1613            encoder: &mut fidl::encoding::Encoder<
1614                '_,
1615                fidl::encoding::DefaultFuchsiaResourceDialect,
1616            >,
1617            offset: usize,
1618            _depth: fidl::encoding::Depth,
1619        ) -> fidl::Result<()> {
1620            encoder.debug_check_bounds::<ImportToken>(offset);
1621            // Delegate to tuple encoding.
1622            fidl::encoding::Encode::<ImportToken, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1623                (
1624                    <fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.value),
1625                ),
1626                encoder, offset, _depth
1627            )
1628        }
1629    }
1630    unsafe impl<
1631        T0: fidl::encoding::Encode<
1632                fidl::encoding::HandleType<
1633                    fidl::EventPair,
1634                    { fidl::ObjectType::EVENTPAIR.into_raw() },
1635                    2147483648,
1636                >,
1637                fidl::encoding::DefaultFuchsiaResourceDialect,
1638            >,
1639    > fidl::encoding::Encode<ImportToken, fidl::encoding::DefaultFuchsiaResourceDialect> for (T0,)
1640    {
1641        #[inline]
1642        unsafe fn encode(
1643            self,
1644            encoder: &mut fidl::encoding::Encoder<
1645                '_,
1646                fidl::encoding::DefaultFuchsiaResourceDialect,
1647            >,
1648            offset: usize,
1649            depth: fidl::encoding::Depth,
1650        ) -> fidl::Result<()> {
1651            encoder.debug_check_bounds::<ImportToken>(offset);
1652            // Zero out padding regions. There's no need to apply masks
1653            // because the unmasked parts will be overwritten by fields.
1654            // Write the fields.
1655            self.0.encode(encoder, offset + 0, depth)?;
1656            Ok(())
1657        }
1658    }
1659
1660    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ImportToken {
1661        #[inline(always)]
1662        fn new_empty() -> Self {
1663            Self {
1664                value: fidl::new_empty!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1665            }
1666        }
1667
1668        #[inline]
1669        unsafe fn decode(
1670            &mut self,
1671            decoder: &mut fidl::encoding::Decoder<
1672                '_,
1673                fidl::encoding::DefaultFuchsiaResourceDialect,
1674            >,
1675            offset: usize,
1676            _depth: fidl::encoding::Depth,
1677        ) -> fidl::Result<()> {
1678            decoder.debug_check_bounds::<Self>(offset);
1679            // Verify that padding bytes are zero.
1680            fidl::decode!(fidl::encoding::HandleType<fidl::EventPair, { fidl::ObjectType::EVENTPAIR.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.value, decoder, offset + 0, _depth)?;
1681            Ok(())
1682        }
1683    }
1684
1685    impl fidl::encoding::ResourceTypeMarker for MemoryArgs {
1686        type Borrowed<'a> = &'a mut Self;
1687        fn take_or_borrow<'a>(
1688            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1689        ) -> Self::Borrowed<'a> {
1690            value
1691        }
1692    }
1693
1694    unsafe impl fidl::encoding::TypeMarker for MemoryArgs {
1695        type Owned = Self;
1696
1697        #[inline(always)]
1698        fn inline_align(_context: fidl::encoding::Context) -> usize {
1699            8
1700        }
1701
1702        #[inline(always)]
1703        fn inline_size(_context: fidl::encoding::Context) -> usize {
1704            24
1705        }
1706    }
1707
1708    unsafe impl fidl::encoding::Encode<MemoryArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
1709        for &mut MemoryArgs
1710    {
1711        #[inline]
1712        unsafe fn encode(
1713            self,
1714            encoder: &mut fidl::encoding::Encoder<
1715                '_,
1716                fidl::encoding::DefaultFuchsiaResourceDialect,
1717            >,
1718            offset: usize,
1719            _depth: fidl::encoding::Depth,
1720        ) -> fidl::Result<()> {
1721            encoder.debug_check_bounds::<MemoryArgs>(offset);
1722            // Delegate to tuple encoding.
1723            fidl::encoding::Encode::<MemoryArgs, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1724                (
1725                    <fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.vmo),
1726                    <u64 as fidl::encoding::ValueTypeMarker>::borrow(&self.allocation_size),
1727                    <fidl_fuchsia_images::MemoryType as fidl::encoding::ValueTypeMarker>::borrow(&self.memory_type),
1728                ),
1729                encoder, offset, _depth
1730            )
1731        }
1732    }
1733    unsafe impl<
1734        T0: fidl::encoding::Encode<
1735                fidl::encoding::HandleType<
1736                    fidl::Vmo,
1737                    { fidl::ObjectType::VMO.into_raw() },
1738                    2147483648,
1739                >,
1740                fidl::encoding::DefaultFuchsiaResourceDialect,
1741            >,
1742        T1: fidl::encoding::Encode<u64, fidl::encoding::DefaultFuchsiaResourceDialect>,
1743        T2: fidl::encoding::Encode<
1744                fidl_fuchsia_images::MemoryType,
1745                fidl::encoding::DefaultFuchsiaResourceDialect,
1746            >,
1747    > fidl::encoding::Encode<MemoryArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
1748        for (T0, T1, T2)
1749    {
1750        #[inline]
1751        unsafe fn encode(
1752            self,
1753            encoder: &mut fidl::encoding::Encoder<
1754                '_,
1755                fidl::encoding::DefaultFuchsiaResourceDialect,
1756            >,
1757            offset: usize,
1758            depth: fidl::encoding::Depth,
1759        ) -> fidl::Result<()> {
1760            encoder.debug_check_bounds::<MemoryArgs>(offset);
1761            // Zero out padding regions. There's no need to apply masks
1762            // because the unmasked parts will be overwritten by fields.
1763            unsafe {
1764                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
1765                (ptr as *mut u64).write_unaligned(0);
1766            }
1767            unsafe {
1768                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(16);
1769                (ptr as *mut u64).write_unaligned(0);
1770            }
1771            // Write the fields.
1772            self.0.encode(encoder, offset + 0, depth)?;
1773            self.1.encode(encoder, offset + 8, depth)?;
1774            self.2.encode(encoder, offset + 16, depth)?;
1775            Ok(())
1776        }
1777    }
1778
1779    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for MemoryArgs {
1780        #[inline(always)]
1781        fn new_empty() -> Self {
1782            Self {
1783                vmo: fidl::new_empty!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1784                allocation_size: fidl::new_empty!(
1785                    u64,
1786                    fidl::encoding::DefaultFuchsiaResourceDialect
1787                ),
1788                memory_type: fidl::new_empty!(
1789                    fidl_fuchsia_images::MemoryType,
1790                    fidl::encoding::DefaultFuchsiaResourceDialect
1791                ),
1792            }
1793        }
1794
1795        #[inline]
1796        unsafe fn decode(
1797            &mut self,
1798            decoder: &mut fidl::encoding::Decoder<
1799                '_,
1800                fidl::encoding::DefaultFuchsiaResourceDialect,
1801            >,
1802            offset: usize,
1803            _depth: fidl::encoding::Depth,
1804        ) -> fidl::Result<()> {
1805            decoder.debug_check_bounds::<Self>(offset);
1806            // Verify that padding bytes are zero.
1807            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
1808            let padval = unsafe { (ptr as *const u64).read_unaligned() };
1809            let mask = 0xffffffff00000000u64;
1810            let maskedval = padval & mask;
1811            if maskedval != 0 {
1812                return Err(fidl::Error::NonZeroPadding {
1813                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
1814                });
1815            }
1816            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(16) };
1817            let padval = unsafe { (ptr as *const u64).read_unaligned() };
1818            let mask = 0xffffffff00000000u64;
1819            let maskedval = padval & mask;
1820            if maskedval != 0 {
1821                return Err(fidl::Error::NonZeroPadding {
1822                    padding_start: offset + 16 + ((mask as u64).trailing_zeros() / 8) as usize,
1823                });
1824            }
1825            fidl::decode!(fidl::encoding::HandleType<fidl::Vmo, { fidl::ObjectType::VMO.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.vmo, decoder, offset + 0, _depth)?;
1826            fidl::decode!(
1827                u64,
1828                fidl::encoding::DefaultFuchsiaResourceDialect,
1829                &mut self.allocation_size,
1830                decoder,
1831                offset + 8,
1832                _depth
1833            )?;
1834            fidl::decode!(
1835                fidl_fuchsia_images::MemoryType,
1836                fidl::encoding::DefaultFuchsiaResourceDialect,
1837                &mut self.memory_type,
1838                decoder,
1839                offset + 16,
1840                _depth
1841            )?;
1842            Ok(())
1843        }
1844    }
1845
1846    impl fidl::encoding::ResourceTypeMarker for SnapshotCallbackDeprecatedOnDataRequest {
1847        type Borrowed<'a> = &'a mut Self;
1848        fn take_or_borrow<'a>(
1849            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1850        ) -> Self::Borrowed<'a> {
1851            value
1852        }
1853    }
1854
1855    unsafe impl fidl::encoding::TypeMarker for SnapshotCallbackDeprecatedOnDataRequest {
1856        type Owned = Self;
1857
1858        #[inline(always)]
1859        fn inline_align(_context: fidl::encoding::Context) -> usize {
1860            8
1861        }
1862
1863        #[inline(always)]
1864        fn inline_size(_context: fidl::encoding::Context) -> usize {
1865            16
1866        }
1867    }
1868
1869    unsafe impl
1870        fidl::encoding::Encode<
1871            SnapshotCallbackDeprecatedOnDataRequest,
1872            fidl::encoding::DefaultFuchsiaResourceDialect,
1873        > for &mut SnapshotCallbackDeprecatedOnDataRequest
1874    {
1875        #[inline]
1876        unsafe fn encode(
1877            self,
1878            encoder: &mut fidl::encoding::Encoder<
1879                '_,
1880                fidl::encoding::DefaultFuchsiaResourceDialect,
1881            >,
1882            offset: usize,
1883            _depth: fidl::encoding::Depth,
1884        ) -> fidl::Result<()> {
1885            encoder.debug_check_bounds::<SnapshotCallbackDeprecatedOnDataRequest>(offset);
1886            // Delegate to tuple encoding.
1887            fidl::encoding::Encode::<
1888                SnapshotCallbackDeprecatedOnDataRequest,
1889                fidl::encoding::DefaultFuchsiaResourceDialect,
1890            >::encode(
1891                (<fidl_fuchsia_mem::Buffer as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
1892                    &mut self.data,
1893                ),),
1894                encoder,
1895                offset,
1896                _depth,
1897            )
1898        }
1899    }
1900    unsafe impl<
1901        T0: fidl::encoding::Encode<
1902                fidl_fuchsia_mem::Buffer,
1903                fidl::encoding::DefaultFuchsiaResourceDialect,
1904            >,
1905    >
1906        fidl::encoding::Encode<
1907            SnapshotCallbackDeprecatedOnDataRequest,
1908            fidl::encoding::DefaultFuchsiaResourceDialect,
1909        > for (T0,)
1910    {
1911        #[inline]
1912        unsafe fn encode(
1913            self,
1914            encoder: &mut fidl::encoding::Encoder<
1915                '_,
1916                fidl::encoding::DefaultFuchsiaResourceDialect,
1917            >,
1918            offset: usize,
1919            depth: fidl::encoding::Depth,
1920        ) -> fidl::Result<()> {
1921            encoder.debug_check_bounds::<SnapshotCallbackDeprecatedOnDataRequest>(offset);
1922            // Zero out padding regions. There's no need to apply masks
1923            // because the unmasked parts will be overwritten by fields.
1924            // Write the fields.
1925            self.0.encode(encoder, offset + 0, depth)?;
1926            Ok(())
1927        }
1928    }
1929
1930    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1931        for SnapshotCallbackDeprecatedOnDataRequest
1932    {
1933        #[inline(always)]
1934        fn new_empty() -> Self {
1935            Self {
1936                data: fidl::new_empty!(
1937                    fidl_fuchsia_mem::Buffer,
1938                    fidl::encoding::DefaultFuchsiaResourceDialect
1939                ),
1940            }
1941        }
1942
1943        #[inline]
1944        unsafe fn decode(
1945            &mut self,
1946            decoder: &mut fidl::encoding::Decoder<
1947                '_,
1948                fidl::encoding::DefaultFuchsiaResourceDialect,
1949            >,
1950            offset: usize,
1951            _depth: fidl::encoding::Depth,
1952        ) -> fidl::Result<()> {
1953            decoder.debug_check_bounds::<Self>(offset);
1954            // Verify that padding bytes are zero.
1955            fidl::decode!(
1956                fidl_fuchsia_mem::Buffer,
1957                fidl::encoding::DefaultFuchsiaResourceDialect,
1958                &mut self.data,
1959                decoder,
1960                offset + 0,
1961                _depth
1962            )?;
1963            Ok(())
1964        }
1965    }
1966
1967    impl fidl::encoding::ResourceTypeMarker for TakeSnapshotCmdDeprecated {
1968        type Borrowed<'a> = &'a mut Self;
1969        fn take_or_borrow<'a>(
1970            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1971        ) -> Self::Borrowed<'a> {
1972            value
1973        }
1974    }
1975
1976    unsafe impl fidl::encoding::TypeMarker for TakeSnapshotCmdDeprecated {
1977        type Owned = Self;
1978
1979        #[inline(always)]
1980        fn inline_align(_context: fidl::encoding::Context) -> usize {
1981            4
1982        }
1983
1984        #[inline(always)]
1985        fn inline_size(_context: fidl::encoding::Context) -> usize {
1986            8
1987        }
1988    }
1989
1990    unsafe impl
1991        fidl::encoding::Encode<
1992            TakeSnapshotCmdDeprecated,
1993            fidl::encoding::DefaultFuchsiaResourceDialect,
1994        > for &mut TakeSnapshotCmdDeprecated
1995    {
1996        #[inline]
1997        unsafe fn encode(
1998            self,
1999            encoder: &mut fidl::encoding::Encoder<
2000                '_,
2001                fidl::encoding::DefaultFuchsiaResourceDialect,
2002            >,
2003            offset: usize,
2004            _depth: fidl::encoding::Depth,
2005        ) -> fidl::Result<()> {
2006            encoder.debug_check_bounds::<TakeSnapshotCmdDeprecated>(offset);
2007            // Delegate to tuple encoding.
2008            fidl::encoding::Encode::<
2009                TakeSnapshotCmdDeprecated,
2010                fidl::encoding::DefaultFuchsiaResourceDialect,
2011            >::encode(
2012                (
2013                    <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.node_id),
2014                    <fidl::encoding::Endpoint<
2015                        fidl::endpoints::ClientEnd<SnapshotCallbackDeprecatedMarker>,
2016                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
2017                        &mut self.callback
2018                    ),
2019                ),
2020                encoder,
2021                offset,
2022                _depth,
2023            )
2024        }
2025    }
2026    unsafe impl<
2027        T0: fidl::encoding::Encode<u32, fidl::encoding::DefaultFuchsiaResourceDialect>,
2028        T1: fidl::encoding::Encode<
2029                fidl::encoding::Endpoint<
2030                    fidl::endpoints::ClientEnd<SnapshotCallbackDeprecatedMarker>,
2031                >,
2032                fidl::encoding::DefaultFuchsiaResourceDialect,
2033            >,
2034    >
2035        fidl::encoding::Encode<
2036            TakeSnapshotCmdDeprecated,
2037            fidl::encoding::DefaultFuchsiaResourceDialect,
2038        > for (T0, T1)
2039    {
2040        #[inline]
2041        unsafe fn encode(
2042            self,
2043            encoder: &mut fidl::encoding::Encoder<
2044                '_,
2045                fidl::encoding::DefaultFuchsiaResourceDialect,
2046            >,
2047            offset: usize,
2048            depth: fidl::encoding::Depth,
2049        ) -> fidl::Result<()> {
2050            encoder.debug_check_bounds::<TakeSnapshotCmdDeprecated>(offset);
2051            // Zero out padding regions. There's no need to apply masks
2052            // because the unmasked parts will be overwritten by fields.
2053            // Write the fields.
2054            self.0.encode(encoder, offset + 0, depth)?;
2055            self.1.encode(encoder, offset + 4, depth)?;
2056            Ok(())
2057        }
2058    }
2059
2060    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2061        for TakeSnapshotCmdDeprecated
2062    {
2063        #[inline(always)]
2064        fn new_empty() -> Self {
2065            Self {
2066                node_id: fidl::new_empty!(u32, fidl::encoding::DefaultFuchsiaResourceDialect),
2067                callback: fidl::new_empty!(
2068                    fidl::encoding::Endpoint<
2069                        fidl::endpoints::ClientEnd<SnapshotCallbackDeprecatedMarker>,
2070                    >,
2071                    fidl::encoding::DefaultFuchsiaResourceDialect
2072                ),
2073            }
2074        }
2075
2076        #[inline]
2077        unsafe fn decode(
2078            &mut self,
2079            decoder: &mut fidl::encoding::Decoder<
2080                '_,
2081                fidl::encoding::DefaultFuchsiaResourceDialect,
2082            >,
2083            offset: usize,
2084            _depth: fidl::encoding::Depth,
2085        ) -> fidl::Result<()> {
2086            decoder.debug_check_bounds::<Self>(offset);
2087            // Verify that padding bytes are zero.
2088            fidl::decode!(
2089                u32,
2090                fidl::encoding::DefaultFuchsiaResourceDialect,
2091                &mut self.node_id,
2092                decoder,
2093                offset + 0,
2094                _depth
2095            )?;
2096            fidl::decode!(
2097                fidl::encoding::Endpoint<
2098                    fidl::endpoints::ClientEnd<SnapshotCallbackDeprecatedMarker>,
2099                >,
2100                fidl::encoding::DefaultFuchsiaResourceDialect,
2101                &mut self.callback,
2102                decoder,
2103                offset + 4,
2104                _depth
2105            )?;
2106            Ok(())
2107        }
2108    }
2109
2110    impl fidl::encoding::ResourceTypeMarker for ViewArgs {
2111        type Borrowed<'a> = &'a mut Self;
2112        fn take_or_borrow<'a>(
2113            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2114        ) -> Self::Borrowed<'a> {
2115            value
2116        }
2117    }
2118
2119    unsafe impl fidl::encoding::TypeMarker for ViewArgs {
2120        type Owned = Self;
2121
2122        #[inline(always)]
2123        fn inline_align(_context: fidl::encoding::Context) -> usize {
2124            8
2125        }
2126
2127        #[inline(always)]
2128        fn inline_size(_context: fidl::encoding::Context) -> usize {
2129            24
2130        }
2131    }
2132
2133    unsafe impl fidl::encoding::Encode<ViewArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
2134        for &mut ViewArgs
2135    {
2136        #[inline]
2137        unsafe fn encode(
2138            self,
2139            encoder: &mut fidl::encoding::Encoder<
2140                '_,
2141                fidl::encoding::DefaultFuchsiaResourceDialect,
2142            >,
2143            offset: usize,
2144            _depth: fidl::encoding::Depth,
2145        ) -> fidl::Result<()> {
2146            encoder.debug_check_bounds::<ViewArgs>(offset);
2147            // Delegate to tuple encoding.
2148            fidl::encoding::Encode::<ViewArgs, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2149                (
2150                    <fidl_fuchsia_ui_views::ViewToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.token),
2151                    <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.debug_name),
2152                ),
2153                encoder, offset, _depth
2154            )
2155        }
2156    }
2157    unsafe impl<
2158        T0: fidl::encoding::Encode<
2159                fidl_fuchsia_ui_views::ViewToken,
2160                fidl::encoding::DefaultFuchsiaResourceDialect,
2161            >,
2162        T1: fidl::encoding::Encode<
2163                fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2164                fidl::encoding::DefaultFuchsiaResourceDialect,
2165            >,
2166    > fidl::encoding::Encode<ViewArgs, fidl::encoding::DefaultFuchsiaResourceDialect> for (T0, T1)
2167    {
2168        #[inline]
2169        unsafe fn encode(
2170            self,
2171            encoder: &mut fidl::encoding::Encoder<
2172                '_,
2173                fidl::encoding::DefaultFuchsiaResourceDialect,
2174            >,
2175            offset: usize,
2176            depth: fidl::encoding::Depth,
2177        ) -> fidl::Result<()> {
2178            encoder.debug_check_bounds::<ViewArgs>(offset);
2179            // Zero out padding regions. There's no need to apply masks
2180            // because the unmasked parts will be overwritten by fields.
2181            unsafe {
2182                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2183                (ptr as *mut u64).write_unaligned(0);
2184            }
2185            // Write the fields.
2186            self.0.encode(encoder, offset + 0, depth)?;
2187            self.1.encode(encoder, offset + 8, depth)?;
2188            Ok(())
2189        }
2190    }
2191
2192    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ViewArgs {
2193        #[inline(always)]
2194        fn new_empty() -> Self {
2195            Self {
2196                token: fidl::new_empty!(
2197                    fidl_fuchsia_ui_views::ViewToken,
2198                    fidl::encoding::DefaultFuchsiaResourceDialect
2199                ),
2200                debug_name: fidl::new_empty!(
2201                    fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2202                    fidl::encoding::DefaultFuchsiaResourceDialect
2203                ),
2204            }
2205        }
2206
2207        #[inline]
2208        unsafe fn decode(
2209            &mut self,
2210            decoder: &mut fidl::encoding::Decoder<
2211                '_,
2212                fidl::encoding::DefaultFuchsiaResourceDialect,
2213            >,
2214            offset: usize,
2215            _depth: fidl::encoding::Depth,
2216        ) -> fidl::Result<()> {
2217            decoder.debug_check_bounds::<Self>(offset);
2218            // Verify that padding bytes are zero.
2219            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2220            let padval = unsafe { (ptr as *const u64).read_unaligned() };
2221            let mask = 0xffffffff00000000u64;
2222            let maskedval = padval & mask;
2223            if maskedval != 0 {
2224                return Err(fidl::Error::NonZeroPadding {
2225                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2226                });
2227            }
2228            fidl::decode!(
2229                fidl_fuchsia_ui_views::ViewToken,
2230                fidl::encoding::DefaultFuchsiaResourceDialect,
2231                &mut self.token,
2232                decoder,
2233                offset + 0,
2234                _depth
2235            )?;
2236            fidl::decode!(
2237                fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2238                fidl::encoding::DefaultFuchsiaResourceDialect,
2239                &mut self.debug_name,
2240                decoder,
2241                offset + 8,
2242                _depth
2243            )?;
2244            Ok(())
2245        }
2246    }
2247
2248    impl fidl::encoding::ResourceTypeMarker for ViewArgs3 {
2249        type Borrowed<'a> = &'a mut Self;
2250        fn take_or_borrow<'a>(
2251            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2252        ) -> Self::Borrowed<'a> {
2253            value
2254        }
2255    }
2256
2257    unsafe impl fidl::encoding::TypeMarker for ViewArgs3 {
2258        type Owned = Self;
2259
2260        #[inline(always)]
2261        fn inline_align(_context: fidl::encoding::Context) -> usize {
2262            8
2263        }
2264
2265        #[inline(always)]
2266        fn inline_size(_context: fidl::encoding::Context) -> usize {
2267            32
2268        }
2269    }
2270
2271    unsafe impl fidl::encoding::Encode<ViewArgs3, fidl::encoding::DefaultFuchsiaResourceDialect>
2272        for &mut ViewArgs3
2273    {
2274        #[inline]
2275        unsafe fn encode(
2276            self,
2277            encoder: &mut fidl::encoding::Encoder<
2278                '_,
2279                fidl::encoding::DefaultFuchsiaResourceDialect,
2280            >,
2281            offset: usize,
2282            _depth: fidl::encoding::Depth,
2283        ) -> fidl::Result<()> {
2284            encoder.debug_check_bounds::<ViewArgs3>(offset);
2285            // Delegate to tuple encoding.
2286            fidl::encoding::Encode::<ViewArgs3, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2287                (
2288                    <fidl_fuchsia_ui_views::ViewToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.token),
2289                    <fidl_fuchsia_ui_views::ViewRefControl as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.control_ref),
2290                    <fidl_fuchsia_ui_views::ViewRef as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.view_ref),
2291                    <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.debug_name),
2292                ),
2293                encoder, offset, _depth
2294            )
2295        }
2296    }
2297    unsafe impl<
2298        T0: fidl::encoding::Encode<
2299                fidl_fuchsia_ui_views::ViewToken,
2300                fidl::encoding::DefaultFuchsiaResourceDialect,
2301            >,
2302        T1: fidl::encoding::Encode<
2303                fidl_fuchsia_ui_views::ViewRefControl,
2304                fidl::encoding::DefaultFuchsiaResourceDialect,
2305            >,
2306        T2: fidl::encoding::Encode<
2307                fidl_fuchsia_ui_views::ViewRef,
2308                fidl::encoding::DefaultFuchsiaResourceDialect,
2309            >,
2310        T3: fidl::encoding::Encode<
2311                fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2312                fidl::encoding::DefaultFuchsiaResourceDialect,
2313            >,
2314    > fidl::encoding::Encode<ViewArgs3, fidl::encoding::DefaultFuchsiaResourceDialect>
2315        for (T0, T1, T2, T3)
2316    {
2317        #[inline]
2318        unsafe fn encode(
2319            self,
2320            encoder: &mut fidl::encoding::Encoder<
2321                '_,
2322                fidl::encoding::DefaultFuchsiaResourceDialect,
2323            >,
2324            offset: usize,
2325            depth: fidl::encoding::Depth,
2326        ) -> fidl::Result<()> {
2327            encoder.debug_check_bounds::<ViewArgs3>(offset);
2328            // Zero out padding regions. There's no need to apply masks
2329            // because the unmasked parts will be overwritten by fields.
2330            unsafe {
2331                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(8);
2332                (ptr as *mut u64).write_unaligned(0);
2333            }
2334            // Write the fields.
2335            self.0.encode(encoder, offset + 0, depth)?;
2336            self.1.encode(encoder, offset + 4, depth)?;
2337            self.2.encode(encoder, offset + 8, depth)?;
2338            self.3.encode(encoder, offset + 16, depth)?;
2339            Ok(())
2340        }
2341    }
2342
2343    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ViewArgs3 {
2344        #[inline(always)]
2345        fn new_empty() -> Self {
2346            Self {
2347                token: fidl::new_empty!(
2348                    fidl_fuchsia_ui_views::ViewToken,
2349                    fidl::encoding::DefaultFuchsiaResourceDialect
2350                ),
2351                control_ref: fidl::new_empty!(
2352                    fidl_fuchsia_ui_views::ViewRefControl,
2353                    fidl::encoding::DefaultFuchsiaResourceDialect
2354                ),
2355                view_ref: fidl::new_empty!(
2356                    fidl_fuchsia_ui_views::ViewRef,
2357                    fidl::encoding::DefaultFuchsiaResourceDialect
2358                ),
2359                debug_name: fidl::new_empty!(
2360                    fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2361                    fidl::encoding::DefaultFuchsiaResourceDialect
2362                ),
2363            }
2364        }
2365
2366        #[inline]
2367        unsafe fn decode(
2368            &mut self,
2369            decoder: &mut fidl::encoding::Decoder<
2370                '_,
2371                fidl::encoding::DefaultFuchsiaResourceDialect,
2372            >,
2373            offset: usize,
2374            _depth: fidl::encoding::Depth,
2375        ) -> fidl::Result<()> {
2376            decoder.debug_check_bounds::<Self>(offset);
2377            // Verify that padding bytes are zero.
2378            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(8) };
2379            let padval = unsafe { (ptr as *const u64).read_unaligned() };
2380            let mask = 0xffffffff00000000u64;
2381            let maskedval = padval & mask;
2382            if maskedval != 0 {
2383                return Err(fidl::Error::NonZeroPadding {
2384                    padding_start: offset + 8 + ((mask as u64).trailing_zeros() / 8) as usize,
2385                });
2386            }
2387            fidl::decode!(
2388                fidl_fuchsia_ui_views::ViewToken,
2389                fidl::encoding::DefaultFuchsiaResourceDialect,
2390                &mut self.token,
2391                decoder,
2392                offset + 0,
2393                _depth
2394            )?;
2395            fidl::decode!(
2396                fidl_fuchsia_ui_views::ViewRefControl,
2397                fidl::encoding::DefaultFuchsiaResourceDialect,
2398                &mut self.control_ref,
2399                decoder,
2400                offset + 4,
2401                _depth
2402            )?;
2403            fidl::decode!(
2404                fidl_fuchsia_ui_views::ViewRef,
2405                fidl::encoding::DefaultFuchsiaResourceDialect,
2406                &mut self.view_ref,
2407                decoder,
2408                offset + 8,
2409                _depth
2410            )?;
2411            fidl::decode!(
2412                fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2413                fidl::encoding::DefaultFuchsiaResourceDialect,
2414                &mut self.debug_name,
2415                decoder,
2416                offset + 16,
2417                _depth
2418            )?;
2419            Ok(())
2420        }
2421    }
2422
2423    impl fidl::encoding::ResourceTypeMarker for ViewHolderArgs {
2424        type Borrowed<'a> = &'a mut Self;
2425        fn take_or_borrow<'a>(
2426            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2427        ) -> Self::Borrowed<'a> {
2428            value
2429        }
2430    }
2431
2432    unsafe impl fidl::encoding::TypeMarker for ViewHolderArgs {
2433        type Owned = Self;
2434
2435        #[inline(always)]
2436        fn inline_align(_context: fidl::encoding::Context) -> usize {
2437            8
2438        }
2439
2440        #[inline(always)]
2441        fn inline_size(_context: fidl::encoding::Context) -> usize {
2442            24
2443        }
2444    }
2445
2446    unsafe impl
2447        fidl::encoding::Encode<ViewHolderArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
2448        for &mut ViewHolderArgs
2449    {
2450        #[inline]
2451        unsafe fn encode(
2452            self,
2453            encoder: &mut fidl::encoding::Encoder<
2454                '_,
2455                fidl::encoding::DefaultFuchsiaResourceDialect,
2456            >,
2457            offset: usize,
2458            _depth: fidl::encoding::Depth,
2459        ) -> fidl::Result<()> {
2460            encoder.debug_check_bounds::<ViewHolderArgs>(offset);
2461            // Delegate to tuple encoding.
2462            fidl::encoding::Encode::<ViewHolderArgs, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
2463                (
2464                    <fidl_fuchsia_ui_views::ViewHolderToken as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.token),
2465                    <fidl::encoding::Optional<fidl::encoding::UnboundedString> as fidl::encoding::ValueTypeMarker>::borrow(&self.debug_name),
2466                ),
2467                encoder, offset, _depth
2468            )
2469        }
2470    }
2471    unsafe impl<
2472        T0: fidl::encoding::Encode<
2473                fidl_fuchsia_ui_views::ViewHolderToken,
2474                fidl::encoding::DefaultFuchsiaResourceDialect,
2475            >,
2476        T1: fidl::encoding::Encode<
2477                fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2478                fidl::encoding::DefaultFuchsiaResourceDialect,
2479            >,
2480    > fidl::encoding::Encode<ViewHolderArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
2481        for (T0, T1)
2482    {
2483        #[inline]
2484        unsafe fn encode(
2485            self,
2486            encoder: &mut fidl::encoding::Encoder<
2487                '_,
2488                fidl::encoding::DefaultFuchsiaResourceDialect,
2489            >,
2490            offset: usize,
2491            depth: fidl::encoding::Depth,
2492        ) -> fidl::Result<()> {
2493            encoder.debug_check_bounds::<ViewHolderArgs>(offset);
2494            // Zero out padding regions. There's no need to apply masks
2495            // because the unmasked parts will be overwritten by fields.
2496            unsafe {
2497                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
2498                (ptr as *mut u64).write_unaligned(0);
2499            }
2500            // Write the fields.
2501            self.0.encode(encoder, offset + 0, depth)?;
2502            self.1.encode(encoder, offset + 8, depth)?;
2503            Ok(())
2504        }
2505    }
2506
2507    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
2508        for ViewHolderArgs
2509    {
2510        #[inline(always)]
2511        fn new_empty() -> Self {
2512            Self {
2513                token: fidl::new_empty!(
2514                    fidl_fuchsia_ui_views::ViewHolderToken,
2515                    fidl::encoding::DefaultFuchsiaResourceDialect
2516                ),
2517                debug_name: fidl::new_empty!(
2518                    fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2519                    fidl::encoding::DefaultFuchsiaResourceDialect
2520                ),
2521            }
2522        }
2523
2524        #[inline]
2525        unsafe fn decode(
2526            &mut self,
2527            decoder: &mut fidl::encoding::Decoder<
2528                '_,
2529                fidl::encoding::DefaultFuchsiaResourceDialect,
2530            >,
2531            offset: usize,
2532            _depth: fidl::encoding::Depth,
2533        ) -> fidl::Result<()> {
2534            decoder.debug_check_bounds::<Self>(offset);
2535            // Verify that padding bytes are zero.
2536            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
2537            let padval = unsafe { (ptr as *const u64).read_unaligned() };
2538            let mask = 0xffffffff00000000u64;
2539            let maskedval = padval & mask;
2540            if maskedval != 0 {
2541                return Err(fidl::Error::NonZeroPadding {
2542                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
2543                });
2544            }
2545            fidl::decode!(
2546                fidl_fuchsia_ui_views::ViewHolderToken,
2547                fidl::encoding::DefaultFuchsiaResourceDialect,
2548                &mut self.token,
2549                decoder,
2550                offset + 0,
2551                _depth
2552            )?;
2553            fidl::decode!(
2554                fidl::encoding::Optional<fidl::encoding::UnboundedString>,
2555                fidl::encoding::DefaultFuchsiaResourceDialect,
2556                &mut self.debug_name,
2557                decoder,
2558                offset + 8,
2559                _depth
2560            )?;
2561            Ok(())
2562        }
2563    }
2564
2565    impl fidl::encoding::ResourceTypeMarker for Command {
2566        type Borrowed<'a> = &'a mut Self;
2567        fn take_or_borrow<'a>(
2568            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
2569        ) -> Self::Borrowed<'a> {
2570            value
2571        }
2572    }
2573
2574    unsafe impl fidl::encoding::TypeMarker for Command {
2575        type Owned = Self;
2576
2577        #[inline(always)]
2578        fn inline_align(_context: fidl::encoding::Context) -> usize {
2579            8
2580        }
2581
2582        #[inline(always)]
2583        fn inline_size(_context: fidl::encoding::Context) -> usize {
2584            16
2585        }
2586    }
2587
2588    unsafe impl fidl::encoding::Encode<Command, fidl::encoding::DefaultFuchsiaResourceDialect>
2589        for &mut Command
2590    {
2591        #[inline]
2592        unsafe fn encode(
2593            self,
2594            encoder: &mut fidl::encoding::Encoder<
2595                '_,
2596                fidl::encoding::DefaultFuchsiaResourceDialect,
2597            >,
2598            offset: usize,
2599            _depth: fidl::encoding::Depth,
2600        ) -> fidl::Result<()> {
2601            encoder.debug_check_bounds::<Command>(offset);
2602            encoder.write_num::<u64>(self.ordinal(), offset);
2603            match self {
2604            Command::CreateResource(ref mut val) => {
2605                fidl::encoding::encode_in_envelope::<CreateResourceCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2606                    <CreateResourceCmd as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
2607                    encoder, offset + 8, _depth
2608                )
2609            }
2610            Command::ReleaseResource(ref val) => {
2611                fidl::encoding::encode_in_envelope::<ReleaseResourceCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2612                    <ReleaseResourceCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2613                    encoder, offset + 8, _depth
2614                )
2615            }
2616            Command::ExportResource(ref mut val) => {
2617                fidl::encoding::encode_in_envelope::<ExportResourceCmdDeprecated, fidl::encoding::DefaultFuchsiaResourceDialect>(
2618                    <ExportResourceCmdDeprecated as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
2619                    encoder, offset + 8, _depth
2620                )
2621            }
2622            Command::ImportResource(ref mut val) => {
2623                fidl::encoding::encode_in_envelope::<ImportResourceCmdDeprecated, fidl::encoding::DefaultFuchsiaResourceDialect>(
2624                    <ImportResourceCmdDeprecated as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
2625                    encoder, offset + 8, _depth
2626                )
2627            }
2628            Command::SetTag(ref val) => {
2629                fidl::encoding::encode_in_envelope::<SetTagCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2630                    <SetTagCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2631                    encoder, offset + 8, _depth
2632                )
2633            }
2634            Command::Detach(ref val) => {
2635                fidl::encoding::encode_in_envelope::<DetachCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2636                    <DetachCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2637                    encoder, offset + 8, _depth
2638                )
2639            }
2640            Command::SetTranslation(ref val) => {
2641                fidl::encoding::encode_in_envelope::<SetTranslationCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2642                    <SetTranslationCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2643                    encoder, offset + 8, _depth
2644                )
2645            }
2646            Command::SetScale(ref val) => {
2647                fidl::encoding::encode_in_envelope::<SetScaleCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2648                    <SetScaleCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2649                    encoder, offset + 8, _depth
2650                )
2651            }
2652            Command::SetRotation(ref val) => {
2653                fidl::encoding::encode_in_envelope::<SetRotationCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2654                    <SetRotationCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2655                    encoder, offset + 8, _depth
2656                )
2657            }
2658            Command::SetAnchor(ref val) => {
2659                fidl::encoding::encode_in_envelope::<SetAnchorCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2660                    <SetAnchorCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2661                    encoder, offset + 8, _depth
2662                )
2663            }
2664            Command::SetSize(ref val) => {
2665                fidl::encoding::encode_in_envelope::<SetSizeCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2666                    <SetSizeCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2667                    encoder, offset + 8, _depth
2668                )
2669            }
2670            Command::SetOpacity(ref val) => {
2671                fidl::encoding::encode_in_envelope::<SetOpacityCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2672                    <SetOpacityCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2673                    encoder, offset + 8, _depth
2674                )
2675            }
2676            Command::SendSizeChangeHintHack(ref val) => {
2677                fidl::encoding::encode_in_envelope::<SendSizeChangeHintCmdHack, fidl::encoding::DefaultFuchsiaResourceDialect>(
2678                    <SendSizeChangeHintCmdHack as fidl::encoding::ValueTypeMarker>::borrow(val),
2679                    encoder, offset + 8, _depth
2680                )
2681            }
2682            Command::AddChild(ref val) => {
2683                fidl::encoding::encode_in_envelope::<AddChildCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2684                    <AddChildCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2685                    encoder, offset + 8, _depth
2686                )
2687            }
2688            Command::AddPart(ref val) => {
2689                fidl::encoding::encode_in_envelope::<AddPartCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2690                    <AddPartCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2691                    encoder, offset + 8, _depth
2692                )
2693            }
2694            Command::DetachChildren(ref val) => {
2695                fidl::encoding::encode_in_envelope::<DetachChildrenCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2696                    <DetachChildrenCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2697                    encoder, offset + 8, _depth
2698                )
2699            }
2700            Command::SetShape(ref val) => {
2701                fidl::encoding::encode_in_envelope::<SetShapeCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2702                    <SetShapeCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2703                    encoder, offset + 8, _depth
2704                )
2705            }
2706            Command::SetMaterial(ref val) => {
2707                fidl::encoding::encode_in_envelope::<SetMaterialCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2708                    <SetMaterialCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2709                    encoder, offset + 8, _depth
2710                )
2711            }
2712            Command::SetClip(ref val) => {
2713                fidl::encoding::encode_in_envelope::<SetClipCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2714                    <SetClipCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2715                    encoder, offset + 8, _depth
2716                )
2717            }
2718            Command::SetHitTestBehavior(ref val) => {
2719                fidl::encoding::encode_in_envelope::<SetHitTestBehaviorCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2720                    <SetHitTestBehaviorCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2721                    encoder, offset + 8, _depth
2722                )
2723            }
2724            Command::SetViewProperties(ref val) => {
2725                fidl::encoding::encode_in_envelope::<SetViewPropertiesCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2726                    <SetViewPropertiesCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2727                    encoder, offset + 8, _depth
2728                )
2729            }
2730            Command::TakeSnapshotCmd(ref mut val) => {
2731                fidl::encoding::encode_in_envelope::<TakeSnapshotCmdDeprecated, fidl::encoding::DefaultFuchsiaResourceDialect>(
2732                    <TakeSnapshotCmdDeprecated as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
2733                    encoder, offset + 8, _depth
2734                )
2735            }
2736            Command::SetCamera(ref val) => {
2737                fidl::encoding::encode_in_envelope::<SetCameraCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2738                    <SetCameraCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2739                    encoder, offset + 8, _depth
2740                )
2741            }
2742            Command::SetCameraTransform(ref val) => {
2743                fidl::encoding::encode_in_envelope::<SetCameraTransformCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2744                    <SetCameraTransformCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2745                    encoder, offset + 8, _depth
2746                )
2747            }
2748            Command::SetCameraProjection(ref val) => {
2749                fidl::encoding::encode_in_envelope::<SetCameraProjectionCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2750                    <SetCameraProjectionCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2751                    encoder, offset + 8, _depth
2752                )
2753            }
2754            Command::SetStereoCameraProjection(ref val) => {
2755                fidl::encoding::encode_in_envelope::<SetStereoCameraProjectionCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2756                    <SetStereoCameraProjectionCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2757                    encoder, offset + 8, _depth
2758                )
2759            }
2760            Command::SetCameraPoseBuffer(ref val) => {
2761                fidl::encoding::encode_in_envelope::<SetCameraPoseBufferCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2762                    <SetCameraPoseBufferCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2763                    encoder, offset + 8, _depth
2764                )
2765            }
2766            Command::SetLightColor(ref val) => {
2767                fidl::encoding::encode_in_envelope::<SetLightColorCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2768                    <SetLightColorCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2769                    encoder, offset + 8, _depth
2770                )
2771            }
2772            Command::SetLightDirection(ref val) => {
2773                fidl::encoding::encode_in_envelope::<SetLightDirectionCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2774                    <SetLightDirectionCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2775                    encoder, offset + 8, _depth
2776                )
2777            }
2778            Command::AddLight(ref val) => {
2779                fidl::encoding::encode_in_envelope::<AddLightCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2780                    <AddLightCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2781                    encoder, offset + 8, _depth
2782                )
2783            }
2784            Command::DetachLight(ref val) => {
2785                fidl::encoding::encode_in_envelope::<DetachLightCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2786                    <DetachLightCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2787                    encoder, offset + 8, _depth
2788                )
2789            }
2790            Command::DetachLights(ref val) => {
2791                fidl::encoding::encode_in_envelope::<DetachLightsCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2792                    <DetachLightsCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2793                    encoder, offset + 8, _depth
2794                )
2795            }
2796            Command::SetTexture(ref val) => {
2797                fidl::encoding::encode_in_envelope::<SetTextureCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2798                    <SetTextureCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2799                    encoder, offset + 8, _depth
2800                )
2801            }
2802            Command::SetColor(ref val) => {
2803                fidl::encoding::encode_in_envelope::<SetColorCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2804                    <SetColorCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2805                    encoder, offset + 8, _depth
2806                )
2807            }
2808            Command::BindMeshBuffers(ref val) => {
2809                fidl::encoding::encode_in_envelope::<BindMeshBuffersCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2810                    <BindMeshBuffersCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2811                    encoder, offset + 8, _depth
2812                )
2813            }
2814            Command::AddLayer(ref val) => {
2815                fidl::encoding::encode_in_envelope::<AddLayerCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2816                    <AddLayerCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2817                    encoder, offset + 8, _depth
2818                )
2819            }
2820            Command::RemoveLayer(ref val) => {
2821                fidl::encoding::encode_in_envelope::<RemoveLayerCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2822                    <RemoveLayerCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2823                    encoder, offset + 8, _depth
2824                )
2825            }
2826            Command::RemoveAllLayers(ref val) => {
2827                fidl::encoding::encode_in_envelope::<RemoveAllLayersCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2828                    <RemoveAllLayersCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2829                    encoder, offset + 8, _depth
2830                )
2831            }
2832            Command::SetLayerStack(ref val) => {
2833                fidl::encoding::encode_in_envelope::<SetLayerStackCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2834                    <SetLayerStackCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2835                    encoder, offset + 8, _depth
2836                )
2837            }
2838            Command::SetRenderer(ref val) => {
2839                fidl::encoding::encode_in_envelope::<SetRendererCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2840                    <SetRendererCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2841                    encoder, offset + 8, _depth
2842                )
2843            }
2844            Command::SetRendererParam(ref val) => {
2845                fidl::encoding::encode_in_envelope::<SetRendererParamCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2846                    <SetRendererParamCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2847                    encoder, offset + 8, _depth
2848                )
2849            }
2850            Command::SetEventMask(ref val) => {
2851                fidl::encoding::encode_in_envelope::<SetEventMaskCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2852                    <SetEventMaskCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2853                    encoder, offset + 8, _depth
2854                )
2855            }
2856            Command::SetLabel(ref val) => {
2857                fidl::encoding::encode_in_envelope::<SetLabelCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2858                    <SetLabelCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2859                    encoder, offset + 8, _depth
2860                )
2861            }
2862            Command::SetDisableClipping(ref val) => {
2863                fidl::encoding::encode_in_envelope::<SetDisableClippingCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2864                    <SetDisableClippingCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2865                    encoder, offset + 8, _depth
2866                )
2867            }
2868            Command::SetImportFocus(ref val) => {
2869                fidl::encoding::encode_in_envelope::<SetImportFocusCmdDeprecated, fidl::encoding::DefaultFuchsiaResourceDialect>(
2870                    <SetImportFocusCmdDeprecated as fidl::encoding::ValueTypeMarker>::borrow(val),
2871                    encoder, offset + 8, _depth
2872                )
2873            }
2874            Command::SetClipPlanes(ref val) => {
2875                fidl::encoding::encode_in_envelope::<SetClipPlanesCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2876                    <SetClipPlanesCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2877                    encoder, offset + 8, _depth
2878                )
2879            }
2880            Command::SetPointLightPosition(ref val) => {
2881                fidl::encoding::encode_in_envelope::<SetPointLightPositionCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2882                    <SetPointLightPositionCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2883                    encoder, offset + 8, _depth
2884                )
2885            }
2886            Command::SetPointLightFalloff(ref val) => {
2887                fidl::encoding::encode_in_envelope::<SetPointLightFalloffCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2888                    <SetPointLightFalloffCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2889                    encoder, offset + 8, _depth
2890                )
2891            }
2892            Command::Scene_AddAmbientLight(ref val) => {
2893                fidl::encoding::encode_in_envelope::<SceneAddAmbientLightCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2894                    <SceneAddAmbientLightCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2895                    encoder, offset + 8, _depth
2896                )
2897            }
2898            Command::Scene_AddDirectionalLight(ref val) => {
2899                fidl::encoding::encode_in_envelope::<SceneAddDirectionalLightCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2900                    <SceneAddDirectionalLightCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2901                    encoder, offset + 8, _depth
2902                )
2903            }
2904            Command::Scene_AddPointLight(ref val) => {
2905                fidl::encoding::encode_in_envelope::<SceneAddPointLightCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2906                    <SceneAddPointLightCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2907                    encoder, offset + 8, _depth
2908                )
2909            }
2910            Command::SetDisplayColorConversion(ref val) => {
2911                fidl::encoding::encode_in_envelope::<SetDisplayColorConversionCmdHack, fidl::encoding::DefaultFuchsiaResourceDialect>(
2912                    <SetDisplayColorConversionCmdHack as fidl::encoding::ValueTypeMarker>::borrow(val),
2913                    encoder, offset + 8, _depth
2914                )
2915            }
2916            Command::SetDisplayRotation(ref val) => {
2917                fidl::encoding::encode_in_envelope::<SetDisplayRotationCmdHack, fidl::encoding::DefaultFuchsiaResourceDialect>(
2918                    <SetDisplayRotationCmdHack as fidl::encoding::ValueTypeMarker>::borrow(val),
2919                    encoder, offset + 8, _depth
2920                )
2921            }
2922            Command::SetEnableViewDebugBounds(ref val) => {
2923                fidl::encoding::encode_in_envelope::<SetEnableDebugViewBoundsCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2924                    <SetEnableDebugViewBoundsCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2925                    encoder, offset + 8, _depth
2926                )
2927            }
2928            Command::SetViewHolderBoundsColor(ref val) => {
2929                fidl::encoding::encode_in_envelope::<SetViewHolderBoundsColorCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2930                    <SetViewHolderBoundsColorCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2931                    encoder, offset + 8, _depth
2932                )
2933            }
2934            Command::SetCameraClipSpaceTransform(ref val) => {
2935                fidl::encoding::encode_in_envelope::<SetCameraClipSpaceTransformCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2936                    <SetCameraClipSpaceTransformCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2937                    encoder, offset + 8, _depth
2938                )
2939            }
2940            Command::SetDisplayMinimumRgb(ref val) => {
2941                fidl::encoding::encode_in_envelope::<SetDisplayMinimumRgbCmdHack, fidl::encoding::DefaultFuchsiaResourceDialect>(
2942                    <SetDisplayMinimumRgbCmdHack as fidl::encoding::ValueTypeMarker>::borrow(val),
2943                    encoder, offset + 8, _depth
2944                )
2945            }
2946            Command::SetSemanticVisibility(ref val) => {
2947                fidl::encoding::encode_in_envelope::<SetSemanticVisibilityCmd, fidl::encoding::DefaultFuchsiaResourceDialect>(
2948                    <SetSemanticVisibilityCmd as fidl::encoding::ValueTypeMarker>::borrow(val),
2949                    encoder, offset + 8, _depth
2950                )
2951            }
2952        }
2953        }
2954    }
2955
2956    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for Command {
2957        #[inline(always)]
2958        fn new_empty() -> Self {
2959            Self::CreateResource(fidl::new_empty!(
2960                CreateResourceCmd,
2961                fidl::encoding::DefaultFuchsiaResourceDialect
2962            ))
2963        }
2964
2965        #[inline]
2966        unsafe fn decode(
2967            &mut self,
2968            decoder: &mut fidl::encoding::Decoder<
2969                '_,
2970                fidl::encoding::DefaultFuchsiaResourceDialect,
2971            >,
2972            offset: usize,
2973            mut depth: fidl::encoding::Depth,
2974        ) -> fidl::Result<()> {
2975            decoder.debug_check_bounds::<Self>(offset);
2976            #[allow(unused_variables)]
2977            let next_out_of_line = decoder.next_out_of_line();
2978            let handles_before = decoder.remaining_handles();
2979            let (ordinal, inlined, num_bytes, num_handles) =
2980                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
2981
2982            let member_inline_size = match ordinal {
2983                1 => {
2984                    <CreateResourceCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
2985                }
2986                2 => {
2987                    <ReleaseResourceCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
2988                }
2989                3 => <ExportResourceCmdDeprecated as fidl::encoding::TypeMarker>::inline_size(
2990                    decoder.context,
2991                ),
2992                4 => <ImportResourceCmdDeprecated as fidl::encoding::TypeMarker>::inline_size(
2993                    decoder.context,
2994                ),
2995                5 => <SetTagCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
2996                6 => <DetachCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
2997                7 => {
2998                    <SetTranslationCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
2999                }
3000                8 => <SetScaleCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3001                9 => <SetRotationCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3002                10 => <SetAnchorCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3003                11 => <SetSizeCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3004                12 => <SetOpacityCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3005                13 => <SendSizeChangeHintCmdHack as fidl::encoding::TypeMarker>::inline_size(
3006                    decoder.context,
3007                ),
3008                14 => <AddChildCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3009                15 => <AddPartCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3010                16 => {
3011                    <DetachChildrenCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
3012                }
3013                17 => <SetShapeCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3014                18 => <SetMaterialCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3015                19 => <SetClipCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3016                20 => <SetHitTestBehaviorCmd as fidl::encoding::TypeMarker>::inline_size(
3017                    decoder.context,
3018                ),
3019                21 => <SetViewPropertiesCmd as fidl::encoding::TypeMarker>::inline_size(
3020                    decoder.context,
3021                ),
3022                22 => <TakeSnapshotCmdDeprecated as fidl::encoding::TypeMarker>::inline_size(
3023                    decoder.context,
3024                ),
3025                23 => <SetCameraCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3026                24 => <SetCameraTransformCmd as fidl::encoding::TypeMarker>::inline_size(
3027                    decoder.context,
3028                ),
3029                25 => <SetCameraProjectionCmd as fidl::encoding::TypeMarker>::inline_size(
3030                    decoder.context,
3031                ),
3032                26 => <SetStereoCameraProjectionCmd as fidl::encoding::TypeMarker>::inline_size(
3033                    decoder.context,
3034                ),
3035                27 => <SetCameraPoseBufferCmd as fidl::encoding::TypeMarker>::inline_size(
3036                    decoder.context,
3037                ),
3038                28 => {
3039                    <SetLightColorCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
3040                }
3041                29 => <SetLightDirectionCmd as fidl::encoding::TypeMarker>::inline_size(
3042                    decoder.context,
3043                ),
3044                30 => <AddLightCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3045                31 => <DetachLightCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3046                32 => <DetachLightsCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3047                33 => <SetTextureCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3048                34 => <SetColorCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3049                35 => {
3050                    <BindMeshBuffersCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
3051                }
3052                36 => <AddLayerCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3053                37 => <RemoveLayerCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3054                38 => {
3055                    <RemoveAllLayersCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
3056                }
3057                39 => {
3058                    <SetLayerStackCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
3059                }
3060                40 => <SetRendererCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3061                41 => <SetRendererParamCmd as fidl::encoding::TypeMarker>::inline_size(
3062                    decoder.context,
3063                ),
3064                42 => <SetEventMaskCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3065                43 => <SetLabelCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context),
3066                44 => <SetDisableClippingCmd as fidl::encoding::TypeMarker>::inline_size(
3067                    decoder.context,
3068                ),
3069                45 => <SetImportFocusCmdDeprecated as fidl::encoding::TypeMarker>::inline_size(
3070                    decoder.context,
3071                ),
3072                46 => {
3073                    <SetClipPlanesCmd as fidl::encoding::TypeMarker>::inline_size(decoder.context)
3074                }
3075                47 => <SetPointLightPositionCmd as fidl::encoding::TypeMarker>::inline_size(
3076                    decoder.context,
3077                ),
3078                48 => <SetPointLightFalloffCmd as fidl::encoding::TypeMarker>::inline_size(
3079                    decoder.context,
3080                ),
3081                49 => <SceneAddAmbientLightCmd as fidl::encoding::TypeMarker>::inline_size(
3082                    decoder.context,
3083                ),
3084                50 => <SceneAddDirectionalLightCmd as fidl::encoding::TypeMarker>::inline_size(
3085                    decoder.context,
3086                ),
3087                51 => <SceneAddPointLightCmd as fidl::encoding::TypeMarker>::inline_size(
3088                    decoder.context,
3089                ),
3090                52 => {
3091                    <SetDisplayColorConversionCmdHack as fidl::encoding::TypeMarker>::inline_size(
3092                        decoder.context,
3093                    )
3094                }
3095                53 => <SetDisplayRotationCmdHack as fidl::encoding::TypeMarker>::inline_size(
3096                    decoder.context,
3097                ),
3098                54 => <SetEnableDebugViewBoundsCmd as fidl::encoding::TypeMarker>::inline_size(
3099                    decoder.context,
3100                ),
3101                55 => <SetViewHolderBoundsColorCmd as fidl::encoding::TypeMarker>::inline_size(
3102                    decoder.context,
3103                ),
3104                56 => <SetCameraClipSpaceTransformCmd as fidl::encoding::TypeMarker>::inline_size(
3105                    decoder.context,
3106                ),
3107                57 => <SetDisplayMinimumRgbCmdHack as fidl::encoding::TypeMarker>::inline_size(
3108                    decoder.context,
3109                ),
3110                58 => <SetSemanticVisibilityCmd as fidl::encoding::TypeMarker>::inline_size(
3111                    decoder.context,
3112                ),
3113                _ => return Err(fidl::Error::UnknownUnionTag),
3114            };
3115
3116            if inlined != (member_inline_size <= 4) {
3117                return Err(fidl::Error::InvalidInlineBitInEnvelope);
3118            }
3119            let _inner_offset;
3120            if inlined {
3121                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
3122                _inner_offset = offset + 8;
3123            } else {
3124                depth.increment()?;
3125                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
3126            }
3127            match ordinal {
3128                1 => {
3129                    #[allow(irrefutable_let_patterns)]
3130                    if let Command::CreateResource(_) = self {
3131                        // Do nothing, read the value into the object
3132                    } else {
3133                        // Initialize `self` to the right variant
3134                        *self = Command::CreateResource(fidl::new_empty!(
3135                            CreateResourceCmd,
3136                            fidl::encoding::DefaultFuchsiaResourceDialect
3137                        ));
3138                    }
3139                    #[allow(irrefutable_let_patterns)]
3140                    if let Command::CreateResource(ref mut val) = self {
3141                        fidl::decode!(
3142                            CreateResourceCmd,
3143                            fidl::encoding::DefaultFuchsiaResourceDialect,
3144                            val,
3145                            decoder,
3146                            _inner_offset,
3147                            depth
3148                        )?;
3149                    } else {
3150                        unreachable!()
3151                    }
3152                }
3153                2 => {
3154                    #[allow(irrefutable_let_patterns)]
3155                    if let Command::ReleaseResource(_) = self {
3156                        // Do nothing, read the value into the object
3157                    } else {
3158                        // Initialize `self` to the right variant
3159                        *self = Command::ReleaseResource(fidl::new_empty!(
3160                            ReleaseResourceCmd,
3161                            fidl::encoding::DefaultFuchsiaResourceDialect
3162                        ));
3163                    }
3164                    #[allow(irrefutable_let_patterns)]
3165                    if let Command::ReleaseResource(ref mut val) = self {
3166                        fidl::decode!(
3167                            ReleaseResourceCmd,
3168                            fidl::encoding::DefaultFuchsiaResourceDialect,
3169                            val,
3170                            decoder,
3171                            _inner_offset,
3172                            depth
3173                        )?;
3174                    } else {
3175                        unreachable!()
3176                    }
3177                }
3178                3 => {
3179                    #[allow(irrefutable_let_patterns)]
3180                    if let Command::ExportResource(_) = self {
3181                        // Do nothing, read the value into the object
3182                    } else {
3183                        // Initialize `self` to the right variant
3184                        *self = Command::ExportResource(fidl::new_empty!(
3185                            ExportResourceCmdDeprecated,
3186                            fidl::encoding::DefaultFuchsiaResourceDialect
3187                        ));
3188                    }
3189                    #[allow(irrefutable_let_patterns)]
3190                    if let Command::ExportResource(ref mut val) = self {
3191                        fidl::decode!(
3192                            ExportResourceCmdDeprecated,
3193                            fidl::encoding::DefaultFuchsiaResourceDialect,
3194                            val,
3195                            decoder,
3196                            _inner_offset,
3197                            depth
3198                        )?;
3199                    } else {
3200                        unreachable!()
3201                    }
3202                }
3203                4 => {
3204                    #[allow(irrefutable_let_patterns)]
3205                    if let Command::ImportResource(_) = self {
3206                        // Do nothing, read the value into the object
3207                    } else {
3208                        // Initialize `self` to the right variant
3209                        *self = Command::ImportResource(fidl::new_empty!(
3210                            ImportResourceCmdDeprecated,
3211                            fidl::encoding::DefaultFuchsiaResourceDialect
3212                        ));
3213                    }
3214                    #[allow(irrefutable_let_patterns)]
3215                    if let Command::ImportResource(ref mut val) = self {
3216                        fidl::decode!(
3217                            ImportResourceCmdDeprecated,
3218                            fidl::encoding::DefaultFuchsiaResourceDialect,
3219                            val,
3220                            decoder,
3221                            _inner_offset,
3222                            depth
3223                        )?;
3224                    } else {
3225                        unreachable!()
3226                    }
3227                }
3228                5 => {
3229                    #[allow(irrefutable_let_patterns)]
3230                    if let Command::SetTag(_) = self {
3231                        // Do nothing, read the value into the object
3232                    } else {
3233                        // Initialize `self` to the right variant
3234                        *self = Command::SetTag(fidl::new_empty!(
3235                            SetTagCmd,
3236                            fidl::encoding::DefaultFuchsiaResourceDialect
3237                        ));
3238                    }
3239                    #[allow(irrefutable_let_patterns)]
3240                    if let Command::SetTag(ref mut val) = self {
3241                        fidl::decode!(
3242                            SetTagCmd,
3243                            fidl::encoding::DefaultFuchsiaResourceDialect,
3244                            val,
3245                            decoder,
3246                            _inner_offset,
3247                            depth
3248                        )?;
3249                    } else {
3250                        unreachable!()
3251                    }
3252                }
3253                6 => {
3254                    #[allow(irrefutable_let_patterns)]
3255                    if let Command::Detach(_) = self {
3256                        // Do nothing, read the value into the object
3257                    } else {
3258                        // Initialize `self` to the right variant
3259                        *self = Command::Detach(fidl::new_empty!(
3260                            DetachCmd,
3261                            fidl::encoding::DefaultFuchsiaResourceDialect
3262                        ));
3263                    }
3264                    #[allow(irrefutable_let_patterns)]
3265                    if let Command::Detach(ref mut val) = self {
3266                        fidl::decode!(
3267                            DetachCmd,
3268                            fidl::encoding::DefaultFuchsiaResourceDialect,
3269                            val,
3270                            decoder,
3271                            _inner_offset,
3272                            depth
3273                        )?;
3274                    } else {
3275                        unreachable!()
3276                    }
3277                }
3278                7 => {
3279                    #[allow(irrefutable_let_patterns)]
3280                    if let Command::SetTranslation(_) = self {
3281                        // Do nothing, read the value into the object
3282                    } else {
3283                        // Initialize `self` to the right variant
3284                        *self = Command::SetTranslation(fidl::new_empty!(
3285                            SetTranslationCmd,
3286                            fidl::encoding::DefaultFuchsiaResourceDialect
3287                        ));
3288                    }
3289                    #[allow(irrefutable_let_patterns)]
3290                    if let Command::SetTranslation(ref mut val) = self {
3291                        fidl::decode!(
3292                            SetTranslationCmd,
3293                            fidl::encoding::DefaultFuchsiaResourceDialect,
3294                            val,
3295                            decoder,
3296                            _inner_offset,
3297                            depth
3298                        )?;
3299                    } else {
3300                        unreachable!()
3301                    }
3302                }
3303                8 => {
3304                    #[allow(irrefutable_let_patterns)]
3305                    if let Command::SetScale(_) = self {
3306                        // Do nothing, read the value into the object
3307                    } else {
3308                        // Initialize `self` to the right variant
3309                        *self = Command::SetScale(fidl::new_empty!(
3310                            SetScaleCmd,
3311                            fidl::encoding::DefaultFuchsiaResourceDialect
3312                        ));
3313                    }
3314                    #[allow(irrefutable_let_patterns)]
3315                    if let Command::SetScale(ref mut val) = self {
3316                        fidl::decode!(
3317                            SetScaleCmd,
3318                            fidl::encoding::DefaultFuchsiaResourceDialect,
3319                            val,
3320                            decoder,
3321                            _inner_offset,
3322                            depth
3323                        )?;
3324                    } else {
3325                        unreachable!()
3326                    }
3327                }
3328                9 => {
3329                    #[allow(irrefutable_let_patterns)]
3330                    if let Command::SetRotation(_) = self {
3331                        // Do nothing, read the value into the object
3332                    } else {
3333                        // Initialize `self` to the right variant
3334                        *self = Command::SetRotation(fidl::new_empty!(
3335                            SetRotationCmd,
3336                            fidl::encoding::DefaultFuchsiaResourceDialect
3337                        ));
3338                    }
3339                    #[allow(irrefutable_let_patterns)]
3340                    if let Command::SetRotation(ref mut val) = self {
3341                        fidl::decode!(
3342                            SetRotationCmd,
3343                            fidl::encoding::DefaultFuchsiaResourceDialect,
3344                            val,
3345                            decoder,
3346                            _inner_offset,
3347                            depth
3348                        )?;
3349                    } else {
3350                        unreachable!()
3351                    }
3352                }
3353                10 => {
3354                    #[allow(irrefutable_let_patterns)]
3355                    if let Command::SetAnchor(_) = self {
3356                        // Do nothing, read the value into the object
3357                    } else {
3358                        // Initialize `self` to the right variant
3359                        *self = Command::SetAnchor(fidl::new_empty!(
3360                            SetAnchorCmd,
3361                            fidl::encoding::DefaultFuchsiaResourceDialect
3362                        ));
3363                    }
3364                    #[allow(irrefutable_let_patterns)]
3365                    if let Command::SetAnchor(ref mut val) = self {
3366                        fidl::decode!(
3367                            SetAnchorCmd,
3368                            fidl::encoding::DefaultFuchsiaResourceDialect,
3369                            val,
3370                            decoder,
3371                            _inner_offset,
3372                            depth
3373                        )?;
3374                    } else {
3375                        unreachable!()
3376                    }
3377                }
3378                11 => {
3379                    #[allow(irrefutable_let_patterns)]
3380                    if let Command::SetSize(_) = self {
3381                        // Do nothing, read the value into the object
3382                    } else {
3383                        // Initialize `self` to the right variant
3384                        *self = Command::SetSize(fidl::new_empty!(
3385                            SetSizeCmd,
3386                            fidl::encoding::DefaultFuchsiaResourceDialect
3387                        ));
3388                    }
3389                    #[allow(irrefutable_let_patterns)]
3390                    if let Command::SetSize(ref mut val) = self {
3391                        fidl::decode!(
3392                            SetSizeCmd,
3393                            fidl::encoding::DefaultFuchsiaResourceDialect,
3394                            val,
3395                            decoder,
3396                            _inner_offset,
3397                            depth
3398                        )?;
3399                    } else {
3400                        unreachable!()
3401                    }
3402                }
3403                12 => {
3404                    #[allow(irrefutable_let_patterns)]
3405                    if let Command::SetOpacity(_) = self {
3406                        // Do nothing, read the value into the object
3407                    } else {
3408                        // Initialize `self` to the right variant
3409                        *self = Command::SetOpacity(fidl::new_empty!(
3410                            SetOpacityCmd,
3411                            fidl::encoding::DefaultFuchsiaResourceDialect
3412                        ));
3413                    }
3414                    #[allow(irrefutable_let_patterns)]
3415                    if let Command::SetOpacity(ref mut val) = self {
3416                        fidl::decode!(
3417                            SetOpacityCmd,
3418                            fidl::encoding::DefaultFuchsiaResourceDialect,
3419                            val,
3420                            decoder,
3421                            _inner_offset,
3422                            depth
3423                        )?;
3424                    } else {
3425                        unreachable!()
3426                    }
3427                }
3428                13 => {
3429                    #[allow(irrefutable_let_patterns)]
3430                    if let Command::SendSizeChangeHintHack(_) = self {
3431                        // Do nothing, read the value into the object
3432                    } else {
3433                        // Initialize `self` to the right variant
3434                        *self = Command::SendSizeChangeHintHack(fidl::new_empty!(
3435                            SendSizeChangeHintCmdHack,
3436                            fidl::encoding::DefaultFuchsiaResourceDialect
3437                        ));
3438                    }
3439                    #[allow(irrefutable_let_patterns)]
3440                    if let Command::SendSizeChangeHintHack(ref mut val) = self {
3441                        fidl::decode!(
3442                            SendSizeChangeHintCmdHack,
3443                            fidl::encoding::DefaultFuchsiaResourceDialect,
3444                            val,
3445                            decoder,
3446                            _inner_offset,
3447                            depth
3448                        )?;
3449                    } else {
3450                        unreachable!()
3451                    }
3452                }
3453                14 => {
3454                    #[allow(irrefutable_let_patterns)]
3455                    if let Command::AddChild(_) = self {
3456                        // Do nothing, read the value into the object
3457                    } else {
3458                        // Initialize `self` to the right variant
3459                        *self = Command::AddChild(fidl::new_empty!(
3460                            AddChildCmd,
3461                            fidl::encoding::DefaultFuchsiaResourceDialect
3462                        ));
3463                    }
3464                    #[allow(irrefutable_let_patterns)]
3465                    if let Command::AddChild(ref mut val) = self {
3466                        fidl::decode!(
3467                            AddChildCmd,
3468                            fidl::encoding::DefaultFuchsiaResourceDialect,
3469                            val,
3470                            decoder,
3471                            _inner_offset,
3472                            depth
3473                        )?;
3474                    } else {
3475                        unreachable!()
3476                    }
3477                }
3478                15 => {
3479                    #[allow(irrefutable_let_patterns)]
3480                    if let Command::AddPart(_) = self {
3481                        // Do nothing, read the value into the object
3482                    } else {
3483                        // Initialize `self` to the right variant
3484                        *self = Command::AddPart(fidl::new_empty!(
3485                            AddPartCmd,
3486                            fidl::encoding::DefaultFuchsiaResourceDialect
3487                        ));
3488                    }
3489                    #[allow(irrefutable_let_patterns)]
3490                    if let Command::AddPart(ref mut val) = self {
3491                        fidl::decode!(
3492                            AddPartCmd,
3493                            fidl::encoding::DefaultFuchsiaResourceDialect,
3494                            val,
3495                            decoder,
3496                            _inner_offset,
3497                            depth
3498                        )?;
3499                    } else {
3500                        unreachable!()
3501                    }
3502                }
3503                16 => {
3504                    #[allow(irrefutable_let_patterns)]
3505                    if let Command::DetachChildren(_) = self {
3506                        // Do nothing, read the value into the object
3507                    } else {
3508                        // Initialize `self` to the right variant
3509                        *self = Command::DetachChildren(fidl::new_empty!(
3510                            DetachChildrenCmd,
3511                            fidl::encoding::DefaultFuchsiaResourceDialect
3512                        ));
3513                    }
3514                    #[allow(irrefutable_let_patterns)]
3515                    if let Command::DetachChildren(ref mut val) = self {
3516                        fidl::decode!(
3517                            DetachChildrenCmd,
3518                            fidl::encoding::DefaultFuchsiaResourceDialect,
3519                            val,
3520                            decoder,
3521                            _inner_offset,
3522                            depth
3523                        )?;
3524                    } else {
3525                        unreachable!()
3526                    }
3527                }
3528                17 => {
3529                    #[allow(irrefutable_let_patterns)]
3530                    if let Command::SetShape(_) = self {
3531                        // Do nothing, read the value into the object
3532                    } else {
3533                        // Initialize `self` to the right variant
3534                        *self = Command::SetShape(fidl::new_empty!(
3535                            SetShapeCmd,
3536                            fidl::encoding::DefaultFuchsiaResourceDialect
3537                        ));
3538                    }
3539                    #[allow(irrefutable_let_patterns)]
3540                    if let Command::SetShape(ref mut val) = self {
3541                        fidl::decode!(
3542                            SetShapeCmd,
3543                            fidl::encoding::DefaultFuchsiaResourceDialect,
3544                            val,
3545                            decoder,
3546                            _inner_offset,
3547                            depth
3548                        )?;
3549                    } else {
3550                        unreachable!()
3551                    }
3552                }
3553                18 => {
3554                    #[allow(irrefutable_let_patterns)]
3555                    if let Command::SetMaterial(_) = self {
3556                        // Do nothing, read the value into the object
3557                    } else {
3558                        // Initialize `self` to the right variant
3559                        *self = Command::SetMaterial(fidl::new_empty!(
3560                            SetMaterialCmd,
3561                            fidl::encoding::DefaultFuchsiaResourceDialect
3562                        ));
3563                    }
3564                    #[allow(irrefutable_let_patterns)]
3565                    if let Command::SetMaterial(ref mut val) = self {
3566                        fidl::decode!(
3567                            SetMaterialCmd,
3568                            fidl::encoding::DefaultFuchsiaResourceDialect,
3569                            val,
3570                            decoder,
3571                            _inner_offset,
3572                            depth
3573                        )?;
3574                    } else {
3575                        unreachable!()
3576                    }
3577                }
3578                19 => {
3579                    #[allow(irrefutable_let_patterns)]
3580                    if let Command::SetClip(_) = self {
3581                        // Do nothing, read the value into the object
3582                    } else {
3583                        // Initialize `self` to the right variant
3584                        *self = Command::SetClip(fidl::new_empty!(
3585                            SetClipCmd,
3586                            fidl::encoding::DefaultFuchsiaResourceDialect
3587                        ));
3588                    }
3589                    #[allow(irrefutable_let_patterns)]
3590                    if let Command::SetClip(ref mut val) = self {
3591                        fidl::decode!(
3592                            SetClipCmd,
3593                            fidl::encoding::DefaultFuchsiaResourceDialect,
3594                            val,
3595                            decoder,
3596                            _inner_offset,
3597                            depth
3598                        )?;
3599                    } else {
3600                        unreachable!()
3601                    }
3602                }
3603                20 => {
3604                    #[allow(irrefutable_let_patterns)]
3605                    if let Command::SetHitTestBehavior(_) = self {
3606                        // Do nothing, read the value into the object
3607                    } else {
3608                        // Initialize `self` to the right variant
3609                        *self = Command::SetHitTestBehavior(fidl::new_empty!(
3610                            SetHitTestBehaviorCmd,
3611                            fidl::encoding::DefaultFuchsiaResourceDialect
3612                        ));
3613                    }
3614                    #[allow(irrefutable_let_patterns)]
3615                    if let Command::SetHitTestBehavior(ref mut val) = self {
3616                        fidl::decode!(
3617                            SetHitTestBehaviorCmd,
3618                            fidl::encoding::DefaultFuchsiaResourceDialect,
3619                            val,
3620                            decoder,
3621                            _inner_offset,
3622                            depth
3623                        )?;
3624                    } else {
3625                        unreachable!()
3626                    }
3627                }
3628                21 => {
3629                    #[allow(irrefutable_let_patterns)]
3630                    if let Command::SetViewProperties(_) = self {
3631                        // Do nothing, read the value into the object
3632                    } else {
3633                        // Initialize `self` to the right variant
3634                        *self = Command::SetViewProperties(fidl::new_empty!(
3635                            SetViewPropertiesCmd,
3636                            fidl::encoding::DefaultFuchsiaResourceDialect
3637                        ));
3638                    }
3639                    #[allow(irrefutable_let_patterns)]
3640                    if let Command::SetViewProperties(ref mut val) = self {
3641                        fidl::decode!(
3642                            SetViewPropertiesCmd,
3643                            fidl::encoding::DefaultFuchsiaResourceDialect,
3644                            val,
3645                            decoder,
3646                            _inner_offset,
3647                            depth
3648                        )?;
3649                    } else {
3650                        unreachable!()
3651                    }
3652                }
3653                22 => {
3654                    #[allow(irrefutable_let_patterns)]
3655                    if let Command::TakeSnapshotCmd(_) = self {
3656                        // Do nothing, read the value into the object
3657                    } else {
3658                        // Initialize `self` to the right variant
3659                        *self = Command::TakeSnapshotCmd(fidl::new_empty!(
3660                            TakeSnapshotCmdDeprecated,
3661                            fidl::encoding::DefaultFuchsiaResourceDialect
3662                        ));
3663                    }
3664                    #[allow(irrefutable_let_patterns)]
3665                    if let Command::TakeSnapshotCmd(ref mut val) = self {
3666                        fidl::decode!(
3667                            TakeSnapshotCmdDeprecated,
3668                            fidl::encoding::DefaultFuchsiaResourceDialect,
3669                            val,
3670                            decoder,
3671                            _inner_offset,
3672                            depth
3673                        )?;
3674                    } else {
3675                        unreachable!()
3676                    }
3677                }
3678                23 => {
3679                    #[allow(irrefutable_let_patterns)]
3680                    if let Command::SetCamera(_) = self {
3681                        // Do nothing, read the value into the object
3682                    } else {
3683                        // Initialize `self` to the right variant
3684                        *self = Command::SetCamera(fidl::new_empty!(
3685                            SetCameraCmd,
3686                            fidl::encoding::DefaultFuchsiaResourceDialect
3687                        ));
3688                    }
3689                    #[allow(irrefutable_let_patterns)]
3690                    if let Command::SetCamera(ref mut val) = self {
3691                        fidl::decode!(
3692                            SetCameraCmd,
3693                            fidl::encoding::DefaultFuchsiaResourceDialect,
3694                            val,
3695                            decoder,
3696                            _inner_offset,
3697                            depth
3698                        )?;
3699                    } else {
3700                        unreachable!()
3701                    }
3702                }
3703                24 => {
3704                    #[allow(irrefutable_let_patterns)]
3705                    if let Command::SetCameraTransform(_) = self {
3706                        // Do nothing, read the value into the object
3707                    } else {
3708                        // Initialize `self` to the right variant
3709                        *self = Command::SetCameraTransform(fidl::new_empty!(
3710                            SetCameraTransformCmd,
3711                            fidl::encoding::DefaultFuchsiaResourceDialect
3712                        ));
3713                    }
3714                    #[allow(irrefutable_let_patterns)]
3715                    if let Command::SetCameraTransform(ref mut val) = self {
3716                        fidl::decode!(
3717                            SetCameraTransformCmd,
3718                            fidl::encoding::DefaultFuchsiaResourceDialect,
3719                            val,
3720                            decoder,
3721                            _inner_offset,
3722                            depth
3723                        )?;
3724                    } else {
3725                        unreachable!()
3726                    }
3727                }
3728                25 => {
3729                    #[allow(irrefutable_let_patterns)]
3730                    if let Command::SetCameraProjection(_) = self {
3731                        // Do nothing, read the value into the object
3732                    } else {
3733                        // Initialize `self` to the right variant
3734                        *self = Command::SetCameraProjection(fidl::new_empty!(
3735                            SetCameraProjectionCmd,
3736                            fidl::encoding::DefaultFuchsiaResourceDialect
3737                        ));
3738                    }
3739                    #[allow(irrefutable_let_patterns)]
3740                    if let Command::SetCameraProjection(ref mut val) = self {
3741                        fidl::decode!(
3742                            SetCameraProjectionCmd,
3743                            fidl::encoding::DefaultFuchsiaResourceDialect,
3744                            val,
3745                            decoder,
3746                            _inner_offset,
3747                            depth
3748                        )?;
3749                    } else {
3750                        unreachable!()
3751                    }
3752                }
3753                26 => {
3754                    #[allow(irrefutable_let_patterns)]
3755                    if let Command::SetStereoCameraProjection(_) = self {
3756                        // Do nothing, read the value into the object
3757                    } else {
3758                        // Initialize `self` to the right variant
3759                        *self = Command::SetStereoCameraProjection(fidl::new_empty!(
3760                            SetStereoCameraProjectionCmd,
3761                            fidl::encoding::DefaultFuchsiaResourceDialect
3762                        ));
3763                    }
3764                    #[allow(irrefutable_let_patterns)]
3765                    if let Command::SetStereoCameraProjection(ref mut val) = self {
3766                        fidl::decode!(
3767                            SetStereoCameraProjectionCmd,
3768                            fidl::encoding::DefaultFuchsiaResourceDialect,
3769                            val,
3770                            decoder,
3771                            _inner_offset,
3772                            depth
3773                        )?;
3774                    } else {
3775                        unreachable!()
3776                    }
3777                }
3778                27 => {
3779                    #[allow(irrefutable_let_patterns)]
3780                    if let Command::SetCameraPoseBuffer(_) = self {
3781                        // Do nothing, read the value into the object
3782                    } else {
3783                        // Initialize `self` to the right variant
3784                        *self = Command::SetCameraPoseBuffer(fidl::new_empty!(
3785                            SetCameraPoseBufferCmd,
3786                            fidl::encoding::DefaultFuchsiaResourceDialect
3787                        ));
3788                    }
3789                    #[allow(irrefutable_let_patterns)]
3790                    if let Command::SetCameraPoseBuffer(ref mut val) = self {
3791                        fidl::decode!(
3792                            SetCameraPoseBufferCmd,
3793                            fidl::encoding::DefaultFuchsiaResourceDialect,
3794                            val,
3795                            decoder,
3796                            _inner_offset,
3797                            depth
3798                        )?;
3799                    } else {
3800                        unreachable!()
3801                    }
3802                }
3803                28 => {
3804                    #[allow(irrefutable_let_patterns)]
3805                    if let Command::SetLightColor(_) = self {
3806                        // Do nothing, read the value into the object
3807                    } else {
3808                        // Initialize `self` to the right variant
3809                        *self = Command::SetLightColor(fidl::new_empty!(
3810                            SetLightColorCmd,
3811                            fidl::encoding::DefaultFuchsiaResourceDialect
3812                        ));
3813                    }
3814                    #[allow(irrefutable_let_patterns)]
3815                    if let Command::SetLightColor(ref mut val) = self {
3816                        fidl::decode!(
3817                            SetLightColorCmd,
3818                            fidl::encoding::DefaultFuchsiaResourceDialect,
3819                            val,
3820                            decoder,
3821                            _inner_offset,
3822                            depth
3823                        )?;
3824                    } else {
3825                        unreachable!()
3826                    }
3827                }
3828                29 => {
3829                    #[allow(irrefutable_let_patterns)]
3830                    if let Command::SetLightDirection(_) = self {
3831                        // Do nothing, read the value into the object
3832                    } else {
3833                        // Initialize `self` to the right variant
3834                        *self = Command::SetLightDirection(fidl::new_empty!(
3835                            SetLightDirectionCmd,
3836                            fidl::encoding::DefaultFuchsiaResourceDialect
3837                        ));
3838                    }
3839                    #[allow(irrefutable_let_patterns)]
3840                    if let Command::SetLightDirection(ref mut val) = self {
3841                        fidl::decode!(
3842                            SetLightDirectionCmd,
3843                            fidl::encoding::DefaultFuchsiaResourceDialect,
3844                            val,
3845                            decoder,
3846                            _inner_offset,
3847                            depth
3848                        )?;
3849                    } else {
3850                        unreachable!()
3851                    }
3852                }
3853                30 => {
3854                    #[allow(irrefutable_let_patterns)]
3855                    if let Command::AddLight(_) = self {
3856                        // Do nothing, read the value into the object
3857                    } else {
3858                        // Initialize `self` to the right variant
3859                        *self = Command::AddLight(fidl::new_empty!(
3860                            AddLightCmd,
3861                            fidl::encoding::DefaultFuchsiaResourceDialect
3862                        ));
3863                    }
3864                    #[allow(irrefutable_let_patterns)]
3865                    if let Command::AddLight(ref mut val) = self {
3866                        fidl::decode!(
3867                            AddLightCmd,
3868                            fidl::encoding::DefaultFuchsiaResourceDialect,
3869                            val,
3870                            decoder,
3871                            _inner_offset,
3872                            depth
3873                        )?;
3874                    } else {
3875                        unreachable!()
3876                    }
3877                }
3878                31 => {
3879                    #[allow(irrefutable_let_patterns)]
3880                    if let Command::DetachLight(_) = self {
3881                        // Do nothing, read the value into the object
3882                    } else {
3883                        // Initialize `self` to the right variant
3884                        *self = Command::DetachLight(fidl::new_empty!(
3885                            DetachLightCmd,
3886                            fidl::encoding::DefaultFuchsiaResourceDialect
3887                        ));
3888                    }
3889                    #[allow(irrefutable_let_patterns)]
3890                    if let Command::DetachLight(ref mut val) = self {
3891                        fidl::decode!(
3892                            DetachLightCmd,
3893                            fidl::encoding::DefaultFuchsiaResourceDialect,
3894                            val,
3895                            decoder,
3896                            _inner_offset,
3897                            depth
3898                        )?;
3899                    } else {
3900                        unreachable!()
3901                    }
3902                }
3903                32 => {
3904                    #[allow(irrefutable_let_patterns)]
3905                    if let Command::DetachLights(_) = self {
3906                        // Do nothing, read the value into the object
3907                    } else {
3908                        // Initialize `self` to the right variant
3909                        *self = Command::DetachLights(fidl::new_empty!(
3910                            DetachLightsCmd,
3911                            fidl::encoding::DefaultFuchsiaResourceDialect
3912                        ));
3913                    }
3914                    #[allow(irrefutable_let_patterns)]
3915                    if let Command::DetachLights(ref mut val) = self {
3916                        fidl::decode!(
3917                            DetachLightsCmd,
3918                            fidl::encoding::DefaultFuchsiaResourceDialect,
3919                            val,
3920                            decoder,
3921                            _inner_offset,
3922                            depth
3923                        )?;
3924                    } else {
3925                        unreachable!()
3926                    }
3927                }
3928                33 => {
3929                    #[allow(irrefutable_let_patterns)]
3930                    if let Command::SetTexture(_) = self {
3931                        // Do nothing, read the value into the object
3932                    } else {
3933                        // Initialize `self` to the right variant
3934                        *self = Command::SetTexture(fidl::new_empty!(
3935                            SetTextureCmd,
3936                            fidl::encoding::DefaultFuchsiaResourceDialect
3937                        ));
3938                    }
3939                    #[allow(irrefutable_let_patterns)]
3940                    if let Command::SetTexture(ref mut val) = self {
3941                        fidl::decode!(
3942                            SetTextureCmd,
3943                            fidl::encoding::DefaultFuchsiaResourceDialect,
3944                            val,
3945                            decoder,
3946                            _inner_offset,
3947                            depth
3948                        )?;
3949                    } else {
3950                        unreachable!()
3951                    }
3952                }
3953                34 => {
3954                    #[allow(irrefutable_let_patterns)]
3955                    if let Command::SetColor(_) = self {
3956                        // Do nothing, read the value into the object
3957                    } else {
3958                        // Initialize `self` to the right variant
3959                        *self = Command::SetColor(fidl::new_empty!(
3960                            SetColorCmd,
3961                            fidl::encoding::DefaultFuchsiaResourceDialect
3962                        ));
3963                    }
3964                    #[allow(irrefutable_let_patterns)]
3965                    if let Command::SetColor(ref mut val) = self {
3966                        fidl::decode!(
3967                            SetColorCmd,
3968                            fidl::encoding::DefaultFuchsiaResourceDialect,
3969                            val,
3970                            decoder,
3971                            _inner_offset,
3972                            depth
3973                        )?;
3974                    } else {
3975                        unreachable!()
3976                    }
3977                }
3978                35 => {
3979                    #[allow(irrefutable_let_patterns)]
3980                    if let Command::BindMeshBuffers(_) = self {
3981                        // Do nothing, read the value into the object
3982                    } else {
3983                        // Initialize `self` to the right variant
3984                        *self = Command::BindMeshBuffers(fidl::new_empty!(
3985                            BindMeshBuffersCmd,
3986                            fidl::encoding::DefaultFuchsiaResourceDialect
3987                        ));
3988                    }
3989                    #[allow(irrefutable_let_patterns)]
3990                    if let Command::BindMeshBuffers(ref mut val) = self {
3991                        fidl::decode!(
3992                            BindMeshBuffersCmd,
3993                            fidl::encoding::DefaultFuchsiaResourceDialect,
3994                            val,
3995                            decoder,
3996                            _inner_offset,
3997                            depth
3998                        )?;
3999                    } else {
4000                        unreachable!()
4001                    }
4002                }
4003                36 => {
4004                    #[allow(irrefutable_let_patterns)]
4005                    if let Command::AddLayer(_) = self {
4006                        // Do nothing, read the value into the object
4007                    } else {
4008                        // Initialize `self` to the right variant
4009                        *self = Command::AddLayer(fidl::new_empty!(
4010                            AddLayerCmd,
4011                            fidl::encoding::DefaultFuchsiaResourceDialect
4012                        ));
4013                    }
4014                    #[allow(irrefutable_let_patterns)]
4015                    if let Command::AddLayer(ref mut val) = self {
4016                        fidl::decode!(
4017                            AddLayerCmd,
4018                            fidl::encoding::DefaultFuchsiaResourceDialect,
4019                            val,
4020                            decoder,
4021                            _inner_offset,
4022                            depth
4023                        )?;
4024                    } else {
4025                        unreachable!()
4026                    }
4027                }
4028                37 => {
4029                    #[allow(irrefutable_let_patterns)]
4030                    if let Command::RemoveLayer(_) = self {
4031                        // Do nothing, read the value into the object
4032                    } else {
4033                        // Initialize `self` to the right variant
4034                        *self = Command::RemoveLayer(fidl::new_empty!(
4035                            RemoveLayerCmd,
4036                            fidl::encoding::DefaultFuchsiaResourceDialect
4037                        ));
4038                    }
4039                    #[allow(irrefutable_let_patterns)]
4040                    if let Command::RemoveLayer(ref mut val) = self {
4041                        fidl::decode!(
4042                            RemoveLayerCmd,
4043                            fidl::encoding::DefaultFuchsiaResourceDialect,
4044                            val,
4045                            decoder,
4046                            _inner_offset,
4047                            depth
4048                        )?;
4049                    } else {
4050                        unreachable!()
4051                    }
4052                }
4053                38 => {
4054                    #[allow(irrefutable_let_patterns)]
4055                    if let Command::RemoveAllLayers(_) = self {
4056                        // Do nothing, read the value into the object
4057                    } else {
4058                        // Initialize `self` to the right variant
4059                        *self = Command::RemoveAllLayers(fidl::new_empty!(
4060                            RemoveAllLayersCmd,
4061                            fidl::encoding::DefaultFuchsiaResourceDialect
4062                        ));
4063                    }
4064                    #[allow(irrefutable_let_patterns)]
4065                    if let Command::RemoveAllLayers(ref mut val) = self {
4066                        fidl::decode!(
4067                            RemoveAllLayersCmd,
4068                            fidl::encoding::DefaultFuchsiaResourceDialect,
4069                            val,
4070                            decoder,
4071                            _inner_offset,
4072                            depth
4073                        )?;
4074                    } else {
4075                        unreachable!()
4076                    }
4077                }
4078                39 => {
4079                    #[allow(irrefutable_let_patterns)]
4080                    if let Command::SetLayerStack(_) = self {
4081                        // Do nothing, read the value into the object
4082                    } else {
4083                        // Initialize `self` to the right variant
4084                        *self = Command::SetLayerStack(fidl::new_empty!(
4085                            SetLayerStackCmd,
4086                            fidl::encoding::DefaultFuchsiaResourceDialect
4087                        ));
4088                    }
4089                    #[allow(irrefutable_let_patterns)]
4090                    if let Command::SetLayerStack(ref mut val) = self {
4091                        fidl::decode!(
4092                            SetLayerStackCmd,
4093                            fidl::encoding::DefaultFuchsiaResourceDialect,
4094                            val,
4095                            decoder,
4096                            _inner_offset,
4097                            depth
4098                        )?;
4099                    } else {
4100                        unreachable!()
4101                    }
4102                }
4103                40 => {
4104                    #[allow(irrefutable_let_patterns)]
4105                    if let Command::SetRenderer(_) = self {
4106                        // Do nothing, read the value into the object
4107                    } else {
4108                        // Initialize `self` to the right variant
4109                        *self = Command::SetRenderer(fidl::new_empty!(
4110                            SetRendererCmd,
4111                            fidl::encoding::DefaultFuchsiaResourceDialect
4112                        ));
4113                    }
4114                    #[allow(irrefutable_let_patterns)]
4115                    if let Command::SetRenderer(ref mut val) = self {
4116                        fidl::decode!(
4117                            SetRendererCmd,
4118                            fidl::encoding::DefaultFuchsiaResourceDialect,
4119                            val,
4120                            decoder,
4121                            _inner_offset,
4122                            depth
4123                        )?;
4124                    } else {
4125                        unreachable!()
4126                    }
4127                }
4128                41 => {
4129                    #[allow(irrefutable_let_patterns)]
4130                    if let Command::SetRendererParam(_) = self {
4131                        // Do nothing, read the value into the object
4132                    } else {
4133                        // Initialize `self` to the right variant
4134                        *self = Command::SetRendererParam(fidl::new_empty!(
4135                            SetRendererParamCmd,
4136                            fidl::encoding::DefaultFuchsiaResourceDialect
4137                        ));
4138                    }
4139                    #[allow(irrefutable_let_patterns)]
4140                    if let Command::SetRendererParam(ref mut val) = self {
4141                        fidl::decode!(
4142                            SetRendererParamCmd,
4143                            fidl::encoding::DefaultFuchsiaResourceDialect,
4144                            val,
4145                            decoder,
4146                            _inner_offset,
4147                            depth
4148                        )?;
4149                    } else {
4150                        unreachable!()
4151                    }
4152                }
4153                42 => {
4154                    #[allow(irrefutable_let_patterns)]
4155                    if let Command::SetEventMask(_) = self {
4156                        // Do nothing, read the value into the object
4157                    } else {
4158                        // Initialize `self` to the right variant
4159                        *self = Command::SetEventMask(fidl::new_empty!(
4160                            SetEventMaskCmd,
4161                            fidl::encoding::DefaultFuchsiaResourceDialect
4162                        ));
4163                    }
4164                    #[allow(irrefutable_let_patterns)]
4165                    if let Command::SetEventMask(ref mut val) = self {
4166                        fidl::decode!(
4167                            SetEventMaskCmd,
4168                            fidl::encoding::DefaultFuchsiaResourceDialect,
4169                            val,
4170                            decoder,
4171                            _inner_offset,
4172                            depth
4173                        )?;
4174                    } else {
4175                        unreachable!()
4176                    }
4177                }
4178                43 => {
4179                    #[allow(irrefutable_let_patterns)]
4180                    if let Command::SetLabel(_) = self {
4181                        // Do nothing, read the value into the object
4182                    } else {
4183                        // Initialize `self` to the right variant
4184                        *self = Command::SetLabel(fidl::new_empty!(
4185                            SetLabelCmd,
4186                            fidl::encoding::DefaultFuchsiaResourceDialect
4187                        ));
4188                    }
4189                    #[allow(irrefutable_let_patterns)]
4190                    if let Command::SetLabel(ref mut val) = self {
4191                        fidl::decode!(
4192                            SetLabelCmd,
4193                            fidl::encoding::DefaultFuchsiaResourceDialect,
4194                            val,
4195                            decoder,
4196                            _inner_offset,
4197                            depth
4198                        )?;
4199                    } else {
4200                        unreachable!()
4201                    }
4202                }
4203                44 => {
4204                    #[allow(irrefutable_let_patterns)]
4205                    if let Command::SetDisableClipping(_) = self {
4206                        // Do nothing, read the value into the object
4207                    } else {
4208                        // Initialize `self` to the right variant
4209                        *self = Command::SetDisableClipping(fidl::new_empty!(
4210                            SetDisableClippingCmd,
4211                            fidl::encoding::DefaultFuchsiaResourceDialect
4212                        ));
4213                    }
4214                    #[allow(irrefutable_let_patterns)]
4215                    if let Command::SetDisableClipping(ref mut val) = self {
4216                        fidl::decode!(
4217                            SetDisableClippingCmd,
4218                            fidl::encoding::DefaultFuchsiaResourceDialect,
4219                            val,
4220                            decoder,
4221                            _inner_offset,
4222                            depth
4223                        )?;
4224                    } else {
4225                        unreachable!()
4226                    }
4227                }
4228                45 => {
4229                    #[allow(irrefutable_let_patterns)]
4230                    if let Command::SetImportFocus(_) = self {
4231                        // Do nothing, read the value into the object
4232                    } else {
4233                        // Initialize `self` to the right variant
4234                        *self = Command::SetImportFocus(fidl::new_empty!(
4235                            SetImportFocusCmdDeprecated,
4236                            fidl::encoding::DefaultFuchsiaResourceDialect
4237                        ));
4238                    }
4239                    #[allow(irrefutable_let_patterns)]
4240                    if let Command::SetImportFocus(ref mut val) = self {
4241                        fidl::decode!(
4242                            SetImportFocusCmdDeprecated,
4243                            fidl::encoding::DefaultFuchsiaResourceDialect,
4244                            val,
4245                            decoder,
4246                            _inner_offset,
4247                            depth
4248                        )?;
4249                    } else {
4250                        unreachable!()
4251                    }
4252                }
4253                46 => {
4254                    #[allow(irrefutable_let_patterns)]
4255                    if let Command::SetClipPlanes(_) = self {
4256                        // Do nothing, read the value into the object
4257                    } else {
4258                        // Initialize `self` to the right variant
4259                        *self = Command::SetClipPlanes(fidl::new_empty!(
4260                            SetClipPlanesCmd,
4261                            fidl::encoding::DefaultFuchsiaResourceDialect
4262                        ));
4263                    }
4264                    #[allow(irrefutable_let_patterns)]
4265                    if let Command::SetClipPlanes(ref mut val) = self {
4266                        fidl::decode!(
4267                            SetClipPlanesCmd,
4268                            fidl::encoding::DefaultFuchsiaResourceDialect,
4269                            val,
4270                            decoder,
4271                            _inner_offset,
4272                            depth
4273                        )?;
4274                    } else {
4275                        unreachable!()
4276                    }
4277                }
4278                47 => {
4279                    #[allow(irrefutable_let_patterns)]
4280                    if let Command::SetPointLightPosition(_) = self {
4281                        // Do nothing, read the value into the object
4282                    } else {
4283                        // Initialize `self` to the right variant
4284                        *self = Command::SetPointLightPosition(fidl::new_empty!(
4285                            SetPointLightPositionCmd,
4286                            fidl::encoding::DefaultFuchsiaResourceDialect
4287                        ));
4288                    }
4289                    #[allow(irrefutable_let_patterns)]
4290                    if let Command::SetPointLightPosition(ref mut val) = self {
4291                        fidl::decode!(
4292                            SetPointLightPositionCmd,
4293                            fidl::encoding::DefaultFuchsiaResourceDialect,
4294                            val,
4295                            decoder,
4296                            _inner_offset,
4297                            depth
4298                        )?;
4299                    } else {
4300                        unreachable!()
4301                    }
4302                }
4303                48 => {
4304                    #[allow(irrefutable_let_patterns)]
4305                    if let Command::SetPointLightFalloff(_) = self {
4306                        // Do nothing, read the value into the object
4307                    } else {
4308                        // Initialize `self` to the right variant
4309                        *self = Command::SetPointLightFalloff(fidl::new_empty!(
4310                            SetPointLightFalloffCmd,
4311                            fidl::encoding::DefaultFuchsiaResourceDialect
4312                        ));
4313                    }
4314                    #[allow(irrefutable_let_patterns)]
4315                    if let Command::SetPointLightFalloff(ref mut val) = self {
4316                        fidl::decode!(
4317                            SetPointLightFalloffCmd,
4318                            fidl::encoding::DefaultFuchsiaResourceDialect,
4319                            val,
4320                            decoder,
4321                            _inner_offset,
4322                            depth
4323                        )?;
4324                    } else {
4325                        unreachable!()
4326                    }
4327                }
4328                49 => {
4329                    #[allow(irrefutable_let_patterns)]
4330                    if let Command::Scene_AddAmbientLight(_) = self {
4331                        // Do nothing, read the value into the object
4332                    } else {
4333                        // Initialize `self` to the right variant
4334                        *self = Command::Scene_AddAmbientLight(fidl::new_empty!(
4335                            SceneAddAmbientLightCmd,
4336                            fidl::encoding::DefaultFuchsiaResourceDialect
4337                        ));
4338                    }
4339                    #[allow(irrefutable_let_patterns)]
4340                    if let Command::Scene_AddAmbientLight(ref mut val) = self {
4341                        fidl::decode!(
4342                            SceneAddAmbientLightCmd,
4343                            fidl::encoding::DefaultFuchsiaResourceDialect,
4344                            val,
4345                            decoder,
4346                            _inner_offset,
4347                            depth
4348                        )?;
4349                    } else {
4350                        unreachable!()
4351                    }
4352                }
4353                50 => {
4354                    #[allow(irrefutable_let_patterns)]
4355                    if let Command::Scene_AddDirectionalLight(_) = self {
4356                        // Do nothing, read the value into the object
4357                    } else {
4358                        // Initialize `self` to the right variant
4359                        *self = Command::Scene_AddDirectionalLight(fidl::new_empty!(
4360                            SceneAddDirectionalLightCmd,
4361                            fidl::encoding::DefaultFuchsiaResourceDialect
4362                        ));
4363                    }
4364                    #[allow(irrefutable_let_patterns)]
4365                    if let Command::Scene_AddDirectionalLight(ref mut val) = self {
4366                        fidl::decode!(
4367                            SceneAddDirectionalLightCmd,
4368                            fidl::encoding::DefaultFuchsiaResourceDialect,
4369                            val,
4370                            decoder,
4371                            _inner_offset,
4372                            depth
4373                        )?;
4374                    } else {
4375                        unreachable!()
4376                    }
4377                }
4378                51 => {
4379                    #[allow(irrefutable_let_patterns)]
4380                    if let Command::Scene_AddPointLight(_) = self {
4381                        // Do nothing, read the value into the object
4382                    } else {
4383                        // Initialize `self` to the right variant
4384                        *self = Command::Scene_AddPointLight(fidl::new_empty!(
4385                            SceneAddPointLightCmd,
4386                            fidl::encoding::DefaultFuchsiaResourceDialect
4387                        ));
4388                    }
4389                    #[allow(irrefutable_let_patterns)]
4390                    if let Command::Scene_AddPointLight(ref mut val) = self {
4391                        fidl::decode!(
4392                            SceneAddPointLightCmd,
4393                            fidl::encoding::DefaultFuchsiaResourceDialect,
4394                            val,
4395                            decoder,
4396                            _inner_offset,
4397                            depth
4398                        )?;
4399                    } else {
4400                        unreachable!()
4401                    }
4402                }
4403                52 => {
4404                    #[allow(irrefutable_let_patterns)]
4405                    if let Command::SetDisplayColorConversion(_) = self {
4406                        // Do nothing, read the value into the object
4407                    } else {
4408                        // Initialize `self` to the right variant
4409                        *self = Command::SetDisplayColorConversion(fidl::new_empty!(
4410                            SetDisplayColorConversionCmdHack,
4411                            fidl::encoding::DefaultFuchsiaResourceDialect
4412                        ));
4413                    }
4414                    #[allow(irrefutable_let_patterns)]
4415                    if let Command::SetDisplayColorConversion(ref mut val) = self {
4416                        fidl::decode!(
4417                            SetDisplayColorConversionCmdHack,
4418                            fidl::encoding::DefaultFuchsiaResourceDialect,
4419                            val,
4420                            decoder,
4421                            _inner_offset,
4422                            depth
4423                        )?;
4424                    } else {
4425                        unreachable!()
4426                    }
4427                }
4428                53 => {
4429                    #[allow(irrefutable_let_patterns)]
4430                    if let Command::SetDisplayRotation(_) = self {
4431                        // Do nothing, read the value into the object
4432                    } else {
4433                        // Initialize `self` to the right variant
4434                        *self = Command::SetDisplayRotation(fidl::new_empty!(
4435                            SetDisplayRotationCmdHack,
4436                            fidl::encoding::DefaultFuchsiaResourceDialect
4437                        ));
4438                    }
4439                    #[allow(irrefutable_let_patterns)]
4440                    if let Command::SetDisplayRotation(ref mut val) = self {
4441                        fidl::decode!(
4442                            SetDisplayRotationCmdHack,
4443                            fidl::encoding::DefaultFuchsiaResourceDialect,
4444                            val,
4445                            decoder,
4446                            _inner_offset,
4447                            depth
4448                        )?;
4449                    } else {
4450                        unreachable!()
4451                    }
4452                }
4453                54 => {
4454                    #[allow(irrefutable_let_patterns)]
4455                    if let Command::SetEnableViewDebugBounds(_) = self {
4456                        // Do nothing, read the value into the object
4457                    } else {
4458                        // Initialize `self` to the right variant
4459                        *self = Command::SetEnableViewDebugBounds(fidl::new_empty!(
4460                            SetEnableDebugViewBoundsCmd,
4461                            fidl::encoding::DefaultFuchsiaResourceDialect
4462                        ));
4463                    }
4464                    #[allow(irrefutable_let_patterns)]
4465                    if let Command::SetEnableViewDebugBounds(ref mut val) = self {
4466                        fidl::decode!(
4467                            SetEnableDebugViewBoundsCmd,
4468                            fidl::encoding::DefaultFuchsiaResourceDialect,
4469                            val,
4470                            decoder,
4471                            _inner_offset,
4472                            depth
4473                        )?;
4474                    } else {
4475                        unreachable!()
4476                    }
4477                }
4478                55 => {
4479                    #[allow(irrefutable_let_patterns)]
4480                    if let Command::SetViewHolderBoundsColor(_) = self {
4481                        // Do nothing, read the value into the object
4482                    } else {
4483                        // Initialize `self` to the right variant
4484                        *self = Command::SetViewHolderBoundsColor(fidl::new_empty!(
4485                            SetViewHolderBoundsColorCmd,
4486                            fidl::encoding::DefaultFuchsiaResourceDialect
4487                        ));
4488                    }
4489                    #[allow(irrefutable_let_patterns)]
4490                    if let Command::SetViewHolderBoundsColor(ref mut val) = self {
4491                        fidl::decode!(
4492                            SetViewHolderBoundsColorCmd,
4493                            fidl::encoding::DefaultFuchsiaResourceDialect,
4494                            val,
4495                            decoder,
4496                            _inner_offset,
4497                            depth
4498                        )?;
4499                    } else {
4500                        unreachable!()
4501                    }
4502                }
4503                56 => {
4504                    #[allow(irrefutable_let_patterns)]
4505                    if let Command::SetCameraClipSpaceTransform(_) = self {
4506                        // Do nothing, read the value into the object
4507                    } else {
4508                        // Initialize `self` to the right variant
4509                        *self = Command::SetCameraClipSpaceTransform(fidl::new_empty!(
4510                            SetCameraClipSpaceTransformCmd,
4511                            fidl::encoding::DefaultFuchsiaResourceDialect
4512                        ));
4513                    }
4514                    #[allow(irrefutable_let_patterns)]
4515                    if let Command::SetCameraClipSpaceTransform(ref mut val) = self {
4516                        fidl::decode!(
4517                            SetCameraClipSpaceTransformCmd,
4518                            fidl::encoding::DefaultFuchsiaResourceDialect,
4519                            val,
4520                            decoder,
4521                            _inner_offset,
4522                            depth
4523                        )?;
4524                    } else {
4525                        unreachable!()
4526                    }
4527                }
4528                57 => {
4529                    #[allow(irrefutable_let_patterns)]
4530                    if let Command::SetDisplayMinimumRgb(_) = self {
4531                        // Do nothing, read the value into the object
4532                    } else {
4533                        // Initialize `self` to the right variant
4534                        *self = Command::SetDisplayMinimumRgb(fidl::new_empty!(
4535                            SetDisplayMinimumRgbCmdHack,
4536                            fidl::encoding::DefaultFuchsiaResourceDialect
4537                        ));
4538                    }
4539                    #[allow(irrefutable_let_patterns)]
4540                    if let Command::SetDisplayMinimumRgb(ref mut val) = self {
4541                        fidl::decode!(
4542                            SetDisplayMinimumRgbCmdHack,
4543                            fidl::encoding::DefaultFuchsiaResourceDialect,
4544                            val,
4545                            decoder,
4546                            _inner_offset,
4547                            depth
4548                        )?;
4549                    } else {
4550                        unreachable!()
4551                    }
4552                }
4553                58 => {
4554                    #[allow(irrefutable_let_patterns)]
4555                    if let Command::SetSemanticVisibility(_) = self {
4556                        // Do nothing, read the value into the object
4557                    } else {
4558                        // Initialize `self` to the right variant
4559                        *self = Command::SetSemanticVisibility(fidl::new_empty!(
4560                            SetSemanticVisibilityCmd,
4561                            fidl::encoding::DefaultFuchsiaResourceDialect
4562                        ));
4563                    }
4564                    #[allow(irrefutable_let_patterns)]
4565                    if let Command::SetSemanticVisibility(ref mut val) = self {
4566                        fidl::decode!(
4567                            SetSemanticVisibilityCmd,
4568                            fidl::encoding::DefaultFuchsiaResourceDialect,
4569                            val,
4570                            decoder,
4571                            _inner_offset,
4572                            depth
4573                        )?;
4574                    } else {
4575                        unreachable!()
4576                    }
4577                }
4578                ordinal => panic!("unexpected ordinal {:?}", ordinal),
4579            }
4580            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
4581                return Err(fidl::Error::InvalidNumBytesInEnvelope);
4582            }
4583            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
4584                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
4585            }
4586            Ok(())
4587        }
4588    }
4589
4590    impl fidl::encoding::ResourceTypeMarker for ResourceArgs {
4591        type Borrowed<'a> = &'a mut Self;
4592        fn take_or_borrow<'a>(
4593            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4594        ) -> Self::Borrowed<'a> {
4595            value
4596        }
4597    }
4598
4599    unsafe impl fidl::encoding::TypeMarker for ResourceArgs {
4600        type Owned = Self;
4601
4602        #[inline(always)]
4603        fn inline_align(_context: fidl::encoding::Context) -> usize {
4604            8
4605        }
4606
4607        #[inline(always)]
4608        fn inline_size(_context: fidl::encoding::Context) -> usize {
4609            16
4610        }
4611    }
4612
4613    unsafe impl fidl::encoding::Encode<ResourceArgs, fidl::encoding::DefaultFuchsiaResourceDialect>
4614        for &mut ResourceArgs
4615    {
4616        #[inline]
4617        unsafe fn encode(
4618            self,
4619            encoder: &mut fidl::encoding::Encoder<
4620                '_,
4621                fidl::encoding::DefaultFuchsiaResourceDialect,
4622            >,
4623            offset: usize,
4624            _depth: fidl::encoding::Depth,
4625        ) -> fidl::Result<()> {
4626            encoder.debug_check_bounds::<ResourceArgs>(offset);
4627            encoder.write_num::<u64>(self.ordinal(), offset);
4628            match self {
4629                ResourceArgs::Memory(ref mut val) => fidl::encoding::encode_in_envelope::<
4630                    MemoryArgs,
4631                    fidl::encoding::DefaultFuchsiaResourceDialect,
4632                >(
4633                    <MemoryArgs as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
4634                    encoder,
4635                    offset + 8,
4636                    _depth,
4637                ),
4638                ResourceArgs::Image(ref val) => fidl::encoding::encode_in_envelope::<
4639                    ImageArgs,
4640                    fidl::encoding::DefaultFuchsiaResourceDialect,
4641                >(
4642                    <ImageArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4643                    encoder,
4644                    offset + 8,
4645                    _depth,
4646                ),
4647                ResourceArgs::Buffer(ref val) => fidl::encoding::encode_in_envelope::<
4648                    BufferArgs,
4649                    fidl::encoding::DefaultFuchsiaResourceDialect,
4650                >(
4651                    <BufferArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4652                    encoder,
4653                    offset + 8,
4654                    _depth,
4655                ),
4656                ResourceArgs::View(ref mut val) => fidl::encoding::encode_in_envelope::<
4657                    ViewArgs,
4658                    fidl::encoding::DefaultFuchsiaResourceDialect,
4659                >(
4660                    <ViewArgs as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
4661                    encoder,
4662                    offset + 8,
4663                    _depth,
4664                ),
4665                ResourceArgs::ViewHolder(ref mut val) => fidl::encoding::encode_in_envelope::<
4666                    ViewHolderArgs,
4667                    fidl::encoding::DefaultFuchsiaResourceDialect,
4668                >(
4669                    <ViewHolderArgs as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
4670                    encoder,
4671                    offset + 8,
4672                    _depth,
4673                ),
4674                ResourceArgs::Rectangle(ref val) => fidl::encoding::encode_in_envelope::<
4675                    RectangleArgs,
4676                    fidl::encoding::DefaultFuchsiaResourceDialect,
4677                >(
4678                    <RectangleArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4679                    encoder,
4680                    offset + 8,
4681                    _depth,
4682                ),
4683                ResourceArgs::RoundedRectangle(ref val) => fidl::encoding::encode_in_envelope::<
4684                    RoundedRectangleArgs,
4685                    fidl::encoding::DefaultFuchsiaResourceDialect,
4686                >(
4687                    <RoundedRectangleArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4688                    encoder,
4689                    offset + 8,
4690                    _depth,
4691                ),
4692                ResourceArgs::Circle(ref val) => fidl::encoding::encode_in_envelope::<
4693                    CircleArgs,
4694                    fidl::encoding::DefaultFuchsiaResourceDialect,
4695                >(
4696                    <CircleArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4697                    encoder,
4698                    offset + 8,
4699                    _depth,
4700                ),
4701                ResourceArgs::Mesh(ref val) => fidl::encoding::encode_in_envelope::<
4702                    MeshArgs,
4703                    fidl::encoding::DefaultFuchsiaResourceDialect,
4704                >(
4705                    <MeshArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4706                    encoder,
4707                    offset + 8,
4708                    _depth,
4709                ),
4710                ResourceArgs::ShapeNode(ref val) => fidl::encoding::encode_in_envelope::<
4711                    ShapeNodeArgs,
4712                    fidl::encoding::DefaultFuchsiaResourceDialect,
4713                >(
4714                    <ShapeNodeArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4715                    encoder,
4716                    offset + 8,
4717                    _depth,
4718                ),
4719                ResourceArgs::ClipNode(ref val) => fidl::encoding::encode_in_envelope::<
4720                    ClipNodeArgs,
4721                    fidl::encoding::DefaultFuchsiaResourceDialect,
4722                >(
4723                    <ClipNodeArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4724                    encoder,
4725                    offset + 8,
4726                    _depth,
4727                ),
4728                ResourceArgs::EntityNode(ref val) => fidl::encoding::encode_in_envelope::<
4729                    EntityNodeArgs,
4730                    fidl::encoding::DefaultFuchsiaResourceDialect,
4731                >(
4732                    <EntityNodeArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4733                    encoder,
4734                    offset + 8,
4735                    _depth,
4736                ),
4737                ResourceArgs::OpacityNode(ref val) => fidl::encoding::encode_in_envelope::<
4738                    OpacityNodeArgsHack,
4739                    fidl::encoding::DefaultFuchsiaResourceDialect,
4740                >(
4741                    <OpacityNodeArgsHack as fidl::encoding::ValueTypeMarker>::borrow(val),
4742                    encoder,
4743                    offset + 8,
4744                    _depth,
4745                ),
4746                ResourceArgs::Material(ref val) => fidl::encoding::encode_in_envelope::<
4747                    MaterialArgs,
4748                    fidl::encoding::DefaultFuchsiaResourceDialect,
4749                >(
4750                    <MaterialArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4751                    encoder,
4752                    offset + 8,
4753                    _depth,
4754                ),
4755                ResourceArgs::Compositor(ref val) => fidl::encoding::encode_in_envelope::<
4756                    CompositorArgs,
4757                    fidl::encoding::DefaultFuchsiaResourceDialect,
4758                >(
4759                    <CompositorArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4760                    encoder,
4761                    offset + 8,
4762                    _depth,
4763                ),
4764                ResourceArgs::DisplayCompositor(ref val) => fidl::encoding::encode_in_envelope::<
4765                    DisplayCompositorArgs,
4766                    fidl::encoding::DefaultFuchsiaResourceDialect,
4767                >(
4768                    <DisplayCompositorArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4769                    encoder,
4770                    offset + 8,
4771                    _depth,
4772                ),
4773                ResourceArgs::LayerStack(ref val) => fidl::encoding::encode_in_envelope::<
4774                    LayerStackArgs,
4775                    fidl::encoding::DefaultFuchsiaResourceDialect,
4776                >(
4777                    <LayerStackArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4778                    encoder,
4779                    offset + 8,
4780                    _depth,
4781                ),
4782                ResourceArgs::Layer(ref val) => fidl::encoding::encode_in_envelope::<
4783                    LayerArgs,
4784                    fidl::encoding::DefaultFuchsiaResourceDialect,
4785                >(
4786                    <LayerArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4787                    encoder,
4788                    offset + 8,
4789                    _depth,
4790                ),
4791                ResourceArgs::Scene(ref val) => fidl::encoding::encode_in_envelope::<
4792                    SceneArgs,
4793                    fidl::encoding::DefaultFuchsiaResourceDialect,
4794                >(
4795                    <SceneArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4796                    encoder,
4797                    offset + 8,
4798                    _depth,
4799                ),
4800                ResourceArgs::Camera(ref val) => fidl::encoding::encode_in_envelope::<
4801                    CameraArgs,
4802                    fidl::encoding::DefaultFuchsiaResourceDialect,
4803                >(
4804                    <CameraArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4805                    encoder,
4806                    offset + 8,
4807                    _depth,
4808                ),
4809                ResourceArgs::StereoCamera(ref val) => fidl::encoding::encode_in_envelope::<
4810                    StereoCameraArgs,
4811                    fidl::encoding::DefaultFuchsiaResourceDialect,
4812                >(
4813                    <StereoCameraArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4814                    encoder,
4815                    offset + 8,
4816                    _depth,
4817                ),
4818                ResourceArgs::Renderer(ref val) => fidl::encoding::encode_in_envelope::<
4819                    RendererArgs,
4820                    fidl::encoding::DefaultFuchsiaResourceDialect,
4821                >(
4822                    <RendererArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4823                    encoder,
4824                    offset + 8,
4825                    _depth,
4826                ),
4827                ResourceArgs::AmbientLight(ref val) => fidl::encoding::encode_in_envelope::<
4828                    AmbientLightArgs,
4829                    fidl::encoding::DefaultFuchsiaResourceDialect,
4830                >(
4831                    <AmbientLightArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4832                    encoder,
4833                    offset + 8,
4834                    _depth,
4835                ),
4836                ResourceArgs::DirectionalLight(ref val) => fidl::encoding::encode_in_envelope::<
4837                    DirectionalLightArgs,
4838                    fidl::encoding::DefaultFuchsiaResourceDialect,
4839                >(
4840                    <DirectionalLightArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4841                    encoder,
4842                    offset + 8,
4843                    _depth,
4844                ),
4845                ResourceArgs::Variable(ref val) => fidl::encoding::encode_in_envelope::<
4846                    VariableArgs,
4847                    fidl::encoding::DefaultFuchsiaResourceDialect,
4848                >(
4849                    <VariableArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4850                    encoder,
4851                    offset + 8,
4852                    _depth,
4853                ),
4854                ResourceArgs::PointLight(ref val) => fidl::encoding::encode_in_envelope::<
4855                    PointLightArgs,
4856                    fidl::encoding::DefaultFuchsiaResourceDialect,
4857                >(
4858                    <PointLightArgs as fidl::encoding::ValueTypeMarker>::borrow(val),
4859                    encoder,
4860                    offset + 8,
4861                    _depth,
4862                ),
4863                ResourceArgs::View3(ref mut val) => fidl::encoding::encode_in_envelope::<
4864                    ViewArgs3,
4865                    fidl::encoding::DefaultFuchsiaResourceDialect,
4866                >(
4867                    <ViewArgs3 as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
4868                    encoder,
4869                    offset + 8,
4870                    _depth,
4871                ),
4872                ResourceArgs::ImagePipe2(ref mut val) => fidl::encoding::encode_in_envelope::<
4873                    ImagePipe2Args,
4874                    fidl::encoding::DefaultFuchsiaResourceDialect,
4875                >(
4876                    <ImagePipe2Args as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
4877                    encoder,
4878                    offset + 8,
4879                    _depth,
4880                ),
4881                ResourceArgs::Image2(ref val) => fidl::encoding::encode_in_envelope::<
4882                    ImageArgs2,
4883                    fidl::encoding::DefaultFuchsiaResourceDialect,
4884                >(
4885                    <ImageArgs2 as fidl::encoding::ValueTypeMarker>::borrow(val),
4886                    encoder,
4887                    offset + 8,
4888                    _depth,
4889                ),
4890                ResourceArgs::Image3(ref mut val) => fidl::encoding::encode_in_envelope::<
4891                    ImageArgs3,
4892                    fidl::encoding::DefaultFuchsiaResourceDialect,
4893                >(
4894                    <ImageArgs3 as fidl::encoding::ResourceTypeMarker>::take_or_borrow(val),
4895                    encoder,
4896                    offset + 8,
4897                    _depth,
4898                ),
4899            }
4900        }
4901    }
4902
4903    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect> for ResourceArgs {
4904        #[inline(always)]
4905        fn new_empty() -> Self {
4906            Self::Memory(fidl::new_empty!(
4907                MemoryArgs,
4908                fidl::encoding::DefaultFuchsiaResourceDialect
4909            ))
4910        }
4911
4912        #[inline]
4913        unsafe fn decode(
4914            &mut self,
4915            decoder: &mut fidl::encoding::Decoder<
4916                '_,
4917                fidl::encoding::DefaultFuchsiaResourceDialect,
4918            >,
4919            offset: usize,
4920            mut depth: fidl::encoding::Depth,
4921        ) -> fidl::Result<()> {
4922            decoder.debug_check_bounds::<Self>(offset);
4923            #[allow(unused_variables)]
4924            let next_out_of_line = decoder.next_out_of_line();
4925            let handles_before = decoder.remaining_handles();
4926            let (ordinal, inlined, num_bytes, num_handles) =
4927                fidl::encoding::decode_union_inline_portion(decoder, offset)?;
4928
4929            let member_inline_size = match ordinal {
4930                1 => <MemoryArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4931                2 => <ImageArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4932                4 => <BufferArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4933                5 => <ViewArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4934                6 => <ViewHolderArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4935                7 => <RectangleArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4936                8 => <RoundedRectangleArgs as fidl::encoding::TypeMarker>::inline_size(
4937                    decoder.context,
4938                ),
4939                9 => <CircleArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4940                10 => <MeshArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4941                11 => <ShapeNodeArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4942                12 => <ClipNodeArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4943                13 => <EntityNodeArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4944                14 => <OpacityNodeArgsHack as fidl::encoding::TypeMarker>::inline_size(
4945                    decoder.context,
4946                ),
4947                15 => <MaterialArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4948                16 => <CompositorArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4949                17 => <DisplayCompositorArgs as fidl::encoding::TypeMarker>::inline_size(
4950                    decoder.context,
4951                ),
4952                19 => <LayerStackArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4953                20 => <LayerArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4954                21 => <SceneArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4955                22 => <CameraArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4956                23 => {
4957                    <StereoCameraArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context)
4958                }
4959                24 => <RendererArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4960                25 => {
4961                    <AmbientLightArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context)
4962                }
4963                26 => <DirectionalLightArgs as fidl::encoding::TypeMarker>::inline_size(
4964                    decoder.context,
4965                ),
4966                27 => <VariableArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4967                28 => <PointLightArgs as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4968                31 => <ViewArgs3 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4969                32 => <ImagePipe2Args as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4970                33 => <ImageArgs2 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4971                34 => <ImageArgs3 as fidl::encoding::TypeMarker>::inline_size(decoder.context),
4972                _ => return Err(fidl::Error::UnknownUnionTag),
4973            };
4974
4975            if inlined != (member_inline_size <= 4) {
4976                return Err(fidl::Error::InvalidInlineBitInEnvelope);
4977            }
4978            let _inner_offset;
4979            if inlined {
4980                decoder.check_inline_envelope_padding(offset + 8, member_inline_size)?;
4981                _inner_offset = offset + 8;
4982            } else {
4983                depth.increment()?;
4984                _inner_offset = decoder.out_of_line_offset(member_inline_size)?;
4985            }
4986            match ordinal {
4987                1 => {
4988                    #[allow(irrefutable_let_patterns)]
4989                    if let ResourceArgs::Memory(_) = self {
4990                        // Do nothing, read the value into the object
4991                    } else {
4992                        // Initialize `self` to the right variant
4993                        *self = ResourceArgs::Memory(fidl::new_empty!(
4994                            MemoryArgs,
4995                            fidl::encoding::DefaultFuchsiaResourceDialect
4996                        ));
4997                    }
4998                    #[allow(irrefutable_let_patterns)]
4999                    if let ResourceArgs::Memory(ref mut val) = self {
5000                        fidl::decode!(
5001                            MemoryArgs,
5002                            fidl::encoding::DefaultFuchsiaResourceDialect,
5003                            val,
5004                            decoder,
5005                            _inner_offset,
5006                            depth
5007                        )?;
5008                    } else {
5009                        unreachable!()
5010                    }
5011                }
5012                2 => {
5013                    #[allow(irrefutable_let_patterns)]
5014                    if let ResourceArgs::Image(_) = self {
5015                        // Do nothing, read the value into the object
5016                    } else {
5017                        // Initialize `self` to the right variant
5018                        *self = ResourceArgs::Image(fidl::new_empty!(
5019                            ImageArgs,
5020                            fidl::encoding::DefaultFuchsiaResourceDialect
5021                        ));
5022                    }
5023                    #[allow(irrefutable_let_patterns)]
5024                    if let ResourceArgs::Image(ref mut val) = self {
5025                        fidl::decode!(
5026                            ImageArgs,
5027                            fidl::encoding::DefaultFuchsiaResourceDialect,
5028                            val,
5029                            decoder,
5030                            _inner_offset,
5031                            depth
5032                        )?;
5033                    } else {
5034                        unreachable!()
5035                    }
5036                }
5037                4 => {
5038                    #[allow(irrefutable_let_patterns)]
5039                    if let ResourceArgs::Buffer(_) = self {
5040                        // Do nothing, read the value into the object
5041                    } else {
5042                        // Initialize `self` to the right variant
5043                        *self = ResourceArgs::Buffer(fidl::new_empty!(
5044                            BufferArgs,
5045                            fidl::encoding::DefaultFuchsiaResourceDialect
5046                        ));
5047                    }
5048                    #[allow(irrefutable_let_patterns)]
5049                    if let ResourceArgs::Buffer(ref mut val) = self {
5050                        fidl::decode!(
5051                            BufferArgs,
5052                            fidl::encoding::DefaultFuchsiaResourceDialect,
5053                            val,
5054                            decoder,
5055                            _inner_offset,
5056                            depth
5057                        )?;
5058                    } else {
5059                        unreachable!()
5060                    }
5061                }
5062                5 => {
5063                    #[allow(irrefutable_let_patterns)]
5064                    if let ResourceArgs::View(_) = self {
5065                        // Do nothing, read the value into the object
5066                    } else {
5067                        // Initialize `self` to the right variant
5068                        *self = ResourceArgs::View(fidl::new_empty!(
5069                            ViewArgs,
5070                            fidl::encoding::DefaultFuchsiaResourceDialect
5071                        ));
5072                    }
5073                    #[allow(irrefutable_let_patterns)]
5074                    if let ResourceArgs::View(ref mut val) = self {
5075                        fidl::decode!(
5076                            ViewArgs,
5077                            fidl::encoding::DefaultFuchsiaResourceDialect,
5078                            val,
5079                            decoder,
5080                            _inner_offset,
5081                            depth
5082                        )?;
5083                    } else {
5084                        unreachable!()
5085                    }
5086                }
5087                6 => {
5088                    #[allow(irrefutable_let_patterns)]
5089                    if let ResourceArgs::ViewHolder(_) = self {
5090                        // Do nothing, read the value into the object
5091                    } else {
5092                        // Initialize `self` to the right variant
5093                        *self = ResourceArgs::ViewHolder(fidl::new_empty!(
5094                            ViewHolderArgs,
5095                            fidl::encoding::DefaultFuchsiaResourceDialect
5096                        ));
5097                    }
5098                    #[allow(irrefutable_let_patterns)]
5099                    if let ResourceArgs::ViewHolder(ref mut val) = self {
5100                        fidl::decode!(
5101                            ViewHolderArgs,
5102                            fidl::encoding::DefaultFuchsiaResourceDialect,
5103                            val,
5104                            decoder,
5105                            _inner_offset,
5106                            depth
5107                        )?;
5108                    } else {
5109                        unreachable!()
5110                    }
5111                }
5112                7 => {
5113                    #[allow(irrefutable_let_patterns)]
5114                    if let ResourceArgs::Rectangle(_) = self {
5115                        // Do nothing, read the value into the object
5116                    } else {
5117                        // Initialize `self` to the right variant
5118                        *self = ResourceArgs::Rectangle(fidl::new_empty!(
5119                            RectangleArgs,
5120                            fidl::encoding::DefaultFuchsiaResourceDialect
5121                        ));
5122                    }
5123                    #[allow(irrefutable_let_patterns)]
5124                    if let ResourceArgs::Rectangle(ref mut val) = self {
5125                        fidl::decode!(
5126                            RectangleArgs,
5127                            fidl::encoding::DefaultFuchsiaResourceDialect,
5128                            val,
5129                            decoder,
5130                            _inner_offset,
5131                            depth
5132                        )?;
5133                    } else {
5134                        unreachable!()
5135                    }
5136                }
5137                8 => {
5138                    #[allow(irrefutable_let_patterns)]
5139                    if let ResourceArgs::RoundedRectangle(_) = self {
5140                        // Do nothing, read the value into the object
5141                    } else {
5142                        // Initialize `self` to the right variant
5143                        *self = ResourceArgs::RoundedRectangle(fidl::new_empty!(
5144                            RoundedRectangleArgs,
5145                            fidl::encoding::DefaultFuchsiaResourceDialect
5146                        ));
5147                    }
5148                    #[allow(irrefutable_let_patterns)]
5149                    if let ResourceArgs::RoundedRectangle(ref mut val) = self {
5150                        fidl::decode!(
5151                            RoundedRectangleArgs,
5152                            fidl::encoding::DefaultFuchsiaResourceDialect,
5153                            val,
5154                            decoder,
5155                            _inner_offset,
5156                            depth
5157                        )?;
5158                    } else {
5159                        unreachable!()
5160                    }
5161                }
5162                9 => {
5163                    #[allow(irrefutable_let_patterns)]
5164                    if let ResourceArgs::Circle(_) = self {
5165                        // Do nothing, read the value into the object
5166                    } else {
5167                        // Initialize `self` to the right variant
5168                        *self = ResourceArgs::Circle(fidl::new_empty!(
5169                            CircleArgs,
5170                            fidl::encoding::DefaultFuchsiaResourceDialect
5171                        ));
5172                    }
5173                    #[allow(irrefutable_let_patterns)]
5174                    if let ResourceArgs::Circle(ref mut val) = self {
5175                        fidl::decode!(
5176                            CircleArgs,
5177                            fidl::encoding::DefaultFuchsiaResourceDialect,
5178                            val,
5179                            decoder,
5180                            _inner_offset,
5181                            depth
5182                        )?;
5183                    } else {
5184                        unreachable!()
5185                    }
5186                }
5187                10 => {
5188                    #[allow(irrefutable_let_patterns)]
5189                    if let ResourceArgs::Mesh(_) = self {
5190                        // Do nothing, read the value into the object
5191                    } else {
5192                        // Initialize `self` to the right variant
5193                        *self = ResourceArgs::Mesh(fidl::new_empty!(
5194                            MeshArgs,
5195                            fidl::encoding::DefaultFuchsiaResourceDialect
5196                        ));
5197                    }
5198                    #[allow(irrefutable_let_patterns)]
5199                    if let ResourceArgs::Mesh(ref mut val) = self {
5200                        fidl::decode!(
5201                            MeshArgs,
5202                            fidl::encoding::DefaultFuchsiaResourceDialect,
5203                            val,
5204                            decoder,
5205                            _inner_offset,
5206                            depth
5207                        )?;
5208                    } else {
5209                        unreachable!()
5210                    }
5211                }
5212                11 => {
5213                    #[allow(irrefutable_let_patterns)]
5214                    if let ResourceArgs::ShapeNode(_) = self {
5215                        // Do nothing, read the value into the object
5216                    } else {
5217                        // Initialize `self` to the right variant
5218                        *self = ResourceArgs::ShapeNode(fidl::new_empty!(
5219                            ShapeNodeArgs,
5220                            fidl::encoding::DefaultFuchsiaResourceDialect
5221                        ));
5222                    }
5223                    #[allow(irrefutable_let_patterns)]
5224                    if let ResourceArgs::ShapeNode(ref mut val) = self {
5225                        fidl::decode!(
5226                            ShapeNodeArgs,
5227                            fidl::encoding::DefaultFuchsiaResourceDialect,
5228                            val,
5229                            decoder,
5230                            _inner_offset,
5231                            depth
5232                        )?;
5233                    } else {
5234                        unreachable!()
5235                    }
5236                }
5237                12 => {
5238                    #[allow(irrefutable_let_patterns)]
5239                    if let ResourceArgs::ClipNode(_) = self {
5240                        // Do nothing, read the value into the object
5241                    } else {
5242                        // Initialize `self` to the right variant
5243                        *self = ResourceArgs::ClipNode(fidl::new_empty!(
5244                            ClipNodeArgs,
5245                            fidl::encoding::DefaultFuchsiaResourceDialect
5246                        ));
5247                    }
5248                    #[allow(irrefutable_let_patterns)]
5249                    if let ResourceArgs::ClipNode(ref mut val) = self {
5250                        fidl::decode!(
5251                            ClipNodeArgs,
5252                            fidl::encoding::DefaultFuchsiaResourceDialect,
5253                            val,
5254                            decoder,
5255                            _inner_offset,
5256                            depth
5257                        )?;
5258                    } else {
5259                        unreachable!()
5260                    }
5261                }
5262                13 => {
5263                    #[allow(irrefutable_let_patterns)]
5264                    if let ResourceArgs::EntityNode(_) = self {
5265                        // Do nothing, read the value into the object
5266                    } else {
5267                        // Initialize `self` to the right variant
5268                        *self = ResourceArgs::EntityNode(fidl::new_empty!(
5269                            EntityNodeArgs,
5270                            fidl::encoding::DefaultFuchsiaResourceDialect
5271                        ));
5272                    }
5273                    #[allow(irrefutable_let_patterns)]
5274                    if let ResourceArgs::EntityNode(ref mut val) = self {
5275                        fidl::decode!(
5276                            EntityNodeArgs,
5277                            fidl::encoding::DefaultFuchsiaResourceDialect,
5278                            val,
5279                            decoder,
5280                            _inner_offset,
5281                            depth
5282                        )?;
5283                    } else {
5284                        unreachable!()
5285                    }
5286                }
5287                14 => {
5288                    #[allow(irrefutable_let_patterns)]
5289                    if let ResourceArgs::OpacityNode(_) = self {
5290                        // Do nothing, read the value into the object
5291                    } else {
5292                        // Initialize `self` to the right variant
5293                        *self = ResourceArgs::OpacityNode(fidl::new_empty!(
5294                            OpacityNodeArgsHack,
5295                            fidl::encoding::DefaultFuchsiaResourceDialect
5296                        ));
5297                    }
5298                    #[allow(irrefutable_let_patterns)]
5299                    if let ResourceArgs::OpacityNode(ref mut val) = self {
5300                        fidl::decode!(
5301                            OpacityNodeArgsHack,
5302                            fidl::encoding::DefaultFuchsiaResourceDialect,
5303                            val,
5304                            decoder,
5305                            _inner_offset,
5306                            depth
5307                        )?;
5308                    } else {
5309                        unreachable!()
5310                    }
5311                }
5312                15 => {
5313                    #[allow(irrefutable_let_patterns)]
5314                    if let ResourceArgs::Material(_) = self {
5315                        // Do nothing, read the value into the object
5316                    } else {
5317                        // Initialize `self` to the right variant
5318                        *self = ResourceArgs::Material(fidl::new_empty!(
5319                            MaterialArgs,
5320                            fidl::encoding::DefaultFuchsiaResourceDialect
5321                        ));
5322                    }
5323                    #[allow(irrefutable_let_patterns)]
5324                    if let ResourceArgs::Material(ref mut val) = self {
5325                        fidl::decode!(
5326                            MaterialArgs,
5327                            fidl::encoding::DefaultFuchsiaResourceDialect,
5328                            val,
5329                            decoder,
5330                            _inner_offset,
5331                            depth
5332                        )?;
5333                    } else {
5334                        unreachable!()
5335                    }
5336                }
5337                16 => {
5338                    #[allow(irrefutable_let_patterns)]
5339                    if let ResourceArgs::Compositor(_) = self {
5340                        // Do nothing, read the value into the object
5341                    } else {
5342                        // Initialize `self` to the right variant
5343                        *self = ResourceArgs::Compositor(fidl::new_empty!(
5344                            CompositorArgs,
5345                            fidl::encoding::DefaultFuchsiaResourceDialect
5346                        ));
5347                    }
5348                    #[allow(irrefutable_let_patterns)]
5349                    if let ResourceArgs::Compositor(ref mut val) = self {
5350                        fidl::decode!(
5351                            CompositorArgs,
5352                            fidl::encoding::DefaultFuchsiaResourceDialect,
5353                            val,
5354                            decoder,
5355                            _inner_offset,
5356                            depth
5357                        )?;
5358                    } else {
5359                        unreachable!()
5360                    }
5361                }
5362                17 => {
5363                    #[allow(irrefutable_let_patterns)]
5364                    if let ResourceArgs::DisplayCompositor(_) = self {
5365                        // Do nothing, read the value into the object
5366                    } else {
5367                        // Initialize `self` to the right variant
5368                        *self = ResourceArgs::DisplayCompositor(fidl::new_empty!(
5369                            DisplayCompositorArgs,
5370                            fidl::encoding::DefaultFuchsiaResourceDialect
5371                        ));
5372                    }
5373                    #[allow(irrefutable_let_patterns)]
5374                    if let ResourceArgs::DisplayCompositor(ref mut val) = self {
5375                        fidl::decode!(
5376                            DisplayCompositorArgs,
5377                            fidl::encoding::DefaultFuchsiaResourceDialect,
5378                            val,
5379                            decoder,
5380                            _inner_offset,
5381                            depth
5382                        )?;
5383                    } else {
5384                        unreachable!()
5385                    }
5386                }
5387                19 => {
5388                    #[allow(irrefutable_let_patterns)]
5389                    if let ResourceArgs::LayerStack(_) = self {
5390                        // Do nothing, read the value into the object
5391                    } else {
5392                        // Initialize `self` to the right variant
5393                        *self = ResourceArgs::LayerStack(fidl::new_empty!(
5394                            LayerStackArgs,
5395                            fidl::encoding::DefaultFuchsiaResourceDialect
5396                        ));
5397                    }
5398                    #[allow(irrefutable_let_patterns)]
5399                    if let ResourceArgs::LayerStack(ref mut val) = self {
5400                        fidl::decode!(
5401                            LayerStackArgs,
5402                            fidl::encoding::DefaultFuchsiaResourceDialect,
5403                            val,
5404                            decoder,
5405                            _inner_offset,
5406                            depth
5407                        )?;
5408                    } else {
5409                        unreachable!()
5410                    }
5411                }
5412                20 => {
5413                    #[allow(irrefutable_let_patterns)]
5414                    if let ResourceArgs::Layer(_) = self {
5415                        // Do nothing, read the value into the object
5416                    } else {
5417                        // Initialize `self` to the right variant
5418                        *self = ResourceArgs::Layer(fidl::new_empty!(
5419                            LayerArgs,
5420                            fidl::encoding::DefaultFuchsiaResourceDialect
5421                        ));
5422                    }
5423                    #[allow(irrefutable_let_patterns)]
5424                    if let ResourceArgs::Layer(ref mut val) = self {
5425                        fidl::decode!(
5426                            LayerArgs,
5427                            fidl::encoding::DefaultFuchsiaResourceDialect,
5428                            val,
5429                            decoder,
5430                            _inner_offset,
5431                            depth
5432                        )?;
5433                    } else {
5434                        unreachable!()
5435                    }
5436                }
5437                21 => {
5438                    #[allow(irrefutable_let_patterns)]
5439                    if let ResourceArgs::Scene(_) = self {
5440                        // Do nothing, read the value into the object
5441                    } else {
5442                        // Initialize `self` to the right variant
5443                        *self = ResourceArgs::Scene(fidl::new_empty!(
5444                            SceneArgs,
5445                            fidl::encoding::DefaultFuchsiaResourceDialect
5446                        ));
5447                    }
5448                    #[allow(irrefutable_let_patterns)]
5449                    if let ResourceArgs::Scene(ref mut val) = self {
5450                        fidl::decode!(
5451                            SceneArgs,
5452                            fidl::encoding::DefaultFuchsiaResourceDialect,
5453                            val,
5454                            decoder,
5455                            _inner_offset,
5456                            depth
5457                        )?;
5458                    } else {
5459                        unreachable!()
5460                    }
5461                }
5462                22 => {
5463                    #[allow(irrefutable_let_patterns)]
5464                    if let ResourceArgs::Camera(_) = self {
5465                        // Do nothing, read the value into the object
5466                    } else {
5467                        // Initialize `self` to the right variant
5468                        *self = ResourceArgs::Camera(fidl::new_empty!(
5469                            CameraArgs,
5470                            fidl::encoding::DefaultFuchsiaResourceDialect
5471                        ));
5472                    }
5473                    #[allow(irrefutable_let_patterns)]
5474                    if let ResourceArgs::Camera(ref mut val) = self {
5475                        fidl::decode!(
5476                            CameraArgs,
5477                            fidl::encoding::DefaultFuchsiaResourceDialect,
5478                            val,
5479                            decoder,
5480                            _inner_offset,
5481                            depth
5482                        )?;
5483                    } else {
5484                        unreachable!()
5485                    }
5486                }
5487                23 => {
5488                    #[allow(irrefutable_let_patterns)]
5489                    if let ResourceArgs::StereoCamera(_) = self {
5490                        // Do nothing, read the value into the object
5491                    } else {
5492                        // Initialize `self` to the right variant
5493                        *self = ResourceArgs::StereoCamera(fidl::new_empty!(
5494                            StereoCameraArgs,
5495                            fidl::encoding::DefaultFuchsiaResourceDialect
5496                        ));
5497                    }
5498                    #[allow(irrefutable_let_patterns)]
5499                    if let ResourceArgs::StereoCamera(ref mut val) = self {
5500                        fidl::decode!(
5501                            StereoCameraArgs,
5502                            fidl::encoding::DefaultFuchsiaResourceDialect,
5503                            val,
5504                            decoder,
5505                            _inner_offset,
5506                            depth
5507                        )?;
5508                    } else {
5509                        unreachable!()
5510                    }
5511                }
5512                24 => {
5513                    #[allow(irrefutable_let_patterns)]
5514                    if let ResourceArgs::Renderer(_) = self {
5515                        // Do nothing, read the value into the object
5516                    } else {
5517                        // Initialize `self` to the right variant
5518                        *self = ResourceArgs::Renderer(fidl::new_empty!(
5519                            RendererArgs,
5520                            fidl::encoding::DefaultFuchsiaResourceDialect
5521                        ));
5522                    }
5523                    #[allow(irrefutable_let_patterns)]
5524                    if let ResourceArgs::Renderer(ref mut val) = self {
5525                        fidl::decode!(
5526                            RendererArgs,
5527                            fidl::encoding::DefaultFuchsiaResourceDialect,
5528                            val,
5529                            decoder,
5530                            _inner_offset,
5531                            depth
5532                        )?;
5533                    } else {
5534                        unreachable!()
5535                    }
5536                }
5537                25 => {
5538                    #[allow(irrefutable_let_patterns)]
5539                    if let ResourceArgs::AmbientLight(_) = self {
5540                        // Do nothing, read the value into the object
5541                    } else {
5542                        // Initialize `self` to the right variant
5543                        *self = ResourceArgs::AmbientLight(fidl::new_empty!(
5544                            AmbientLightArgs,
5545                            fidl::encoding::DefaultFuchsiaResourceDialect
5546                        ));
5547                    }
5548                    #[allow(irrefutable_let_patterns)]
5549                    if let ResourceArgs::AmbientLight(ref mut val) = self {
5550                        fidl::decode!(
5551                            AmbientLightArgs,
5552                            fidl::encoding::DefaultFuchsiaResourceDialect,
5553                            val,
5554                            decoder,
5555                            _inner_offset,
5556                            depth
5557                        )?;
5558                    } else {
5559                        unreachable!()
5560                    }
5561                }
5562                26 => {
5563                    #[allow(irrefutable_let_patterns)]
5564                    if let ResourceArgs::DirectionalLight(_) = self {
5565                        // Do nothing, read the value into the object
5566                    } else {
5567                        // Initialize `self` to the right variant
5568                        *self = ResourceArgs::DirectionalLight(fidl::new_empty!(
5569                            DirectionalLightArgs,
5570                            fidl::encoding::DefaultFuchsiaResourceDialect
5571                        ));
5572                    }
5573                    #[allow(irrefutable_let_patterns)]
5574                    if let ResourceArgs::DirectionalLight(ref mut val) = self {
5575                        fidl::decode!(
5576                            DirectionalLightArgs,
5577                            fidl::encoding::DefaultFuchsiaResourceDialect,
5578                            val,
5579                            decoder,
5580                            _inner_offset,
5581                            depth
5582                        )?;
5583                    } else {
5584                        unreachable!()
5585                    }
5586                }
5587                27 => {
5588                    #[allow(irrefutable_let_patterns)]
5589                    if let ResourceArgs::Variable(_) = self {
5590                        // Do nothing, read the value into the object
5591                    } else {
5592                        // Initialize `self` to the right variant
5593                        *self = ResourceArgs::Variable(fidl::new_empty!(
5594                            VariableArgs,
5595                            fidl::encoding::DefaultFuchsiaResourceDialect
5596                        ));
5597                    }
5598                    #[allow(irrefutable_let_patterns)]
5599                    if let ResourceArgs::Variable(ref mut val) = self {
5600                        fidl::decode!(
5601                            VariableArgs,
5602                            fidl::encoding::DefaultFuchsiaResourceDialect,
5603                            val,
5604                            decoder,
5605                            _inner_offset,
5606                            depth
5607                        )?;
5608                    } else {
5609                        unreachable!()
5610                    }
5611                }
5612                28 => {
5613                    #[allow(irrefutable_let_patterns)]
5614                    if let ResourceArgs::PointLight(_) = self {
5615                        // Do nothing, read the value into the object
5616                    } else {
5617                        // Initialize `self` to the right variant
5618                        *self = ResourceArgs::PointLight(fidl::new_empty!(
5619                            PointLightArgs,
5620                            fidl::encoding::DefaultFuchsiaResourceDialect
5621                        ));
5622                    }
5623                    #[allow(irrefutable_let_patterns)]
5624                    if let ResourceArgs::PointLight(ref mut val) = self {
5625                        fidl::decode!(
5626                            PointLightArgs,
5627                            fidl::encoding::DefaultFuchsiaResourceDialect,
5628                            val,
5629                            decoder,
5630                            _inner_offset,
5631                            depth
5632                        )?;
5633                    } else {
5634                        unreachable!()
5635                    }
5636                }
5637                31 => {
5638                    #[allow(irrefutable_let_patterns)]
5639                    if let ResourceArgs::View3(_) = self {
5640                        // Do nothing, read the value into the object
5641                    } else {
5642                        // Initialize `self` to the right variant
5643                        *self = ResourceArgs::View3(fidl::new_empty!(
5644                            ViewArgs3,
5645                            fidl::encoding::DefaultFuchsiaResourceDialect
5646                        ));
5647                    }
5648                    #[allow(irrefutable_let_patterns)]
5649                    if let ResourceArgs::View3(ref mut val) = self {
5650                        fidl::decode!(
5651                            ViewArgs3,
5652                            fidl::encoding::DefaultFuchsiaResourceDialect,
5653                            val,
5654                            decoder,
5655                            _inner_offset,
5656                            depth
5657                        )?;
5658                    } else {
5659                        unreachable!()
5660                    }
5661                }
5662                32 => {
5663                    #[allow(irrefutable_let_patterns)]
5664                    if let ResourceArgs::ImagePipe2(_) = self {
5665                        // Do nothing, read the value into the object
5666                    } else {
5667                        // Initialize `self` to the right variant
5668                        *self = ResourceArgs::ImagePipe2(fidl::new_empty!(
5669                            ImagePipe2Args,
5670                            fidl::encoding::DefaultFuchsiaResourceDialect
5671                        ));
5672                    }
5673                    #[allow(irrefutable_let_patterns)]
5674                    if let ResourceArgs::ImagePipe2(ref mut val) = self {
5675                        fidl::decode!(
5676                            ImagePipe2Args,
5677                            fidl::encoding::DefaultFuchsiaResourceDialect,
5678                            val,
5679                            decoder,
5680                            _inner_offset,
5681                            depth
5682                        )?;
5683                    } else {
5684                        unreachable!()
5685                    }
5686                }
5687                33 => {
5688                    #[allow(irrefutable_let_patterns)]
5689                    if let ResourceArgs::Image2(_) = self {
5690                        // Do nothing, read the value into the object
5691                    } else {
5692                        // Initialize `self` to the right variant
5693                        *self = ResourceArgs::Image2(fidl::new_empty!(
5694                            ImageArgs2,
5695                            fidl::encoding::DefaultFuchsiaResourceDialect
5696                        ));
5697                    }
5698                    #[allow(irrefutable_let_patterns)]
5699                    if let ResourceArgs::Image2(ref mut val) = self {
5700                        fidl::decode!(
5701                            ImageArgs2,
5702                            fidl::encoding::DefaultFuchsiaResourceDialect,
5703                            val,
5704                            decoder,
5705                            _inner_offset,
5706                            depth
5707                        )?;
5708                    } else {
5709                        unreachable!()
5710                    }
5711                }
5712                34 => {
5713                    #[allow(irrefutable_let_patterns)]
5714                    if let ResourceArgs::Image3(_) = self {
5715                        // Do nothing, read the value into the object
5716                    } else {
5717                        // Initialize `self` to the right variant
5718                        *self = ResourceArgs::Image3(fidl::new_empty!(
5719                            ImageArgs3,
5720                            fidl::encoding::DefaultFuchsiaResourceDialect
5721                        ));
5722                    }
5723                    #[allow(irrefutable_let_patterns)]
5724                    if let ResourceArgs::Image3(ref mut val) = self {
5725                        fidl::decode!(
5726                            ImageArgs3,
5727                            fidl::encoding::DefaultFuchsiaResourceDialect,
5728                            val,
5729                            decoder,
5730                            _inner_offset,
5731                            depth
5732                        )?;
5733                    } else {
5734                        unreachable!()
5735                    }
5736                }
5737                ordinal => panic!("unexpected ordinal {:?}", ordinal),
5738            }
5739            if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize) {
5740                return Err(fidl::Error::InvalidNumBytesInEnvelope);
5741            }
5742            if handles_before != decoder.remaining_handles() + (num_handles as usize) {
5743                return Err(fidl::Error::InvalidNumHandlesInEnvelope);
5744            }
5745            Ok(())
5746        }
5747    }
5748}