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