| // WARNING: This file is machine generated by fidlgen. | 
 |  | 
 | // experiment = no_optional_structs | 
 | // experiment = output_index_json | 
 | // experiment = simple_empty_response_syntax | 
 | // experiment = unknown_interactions | 
 |  | 
 | #![allow( | 
 |     unused_parens, // one-element-tuple-case is not a tuple | 
 |     unused_mut, // not all args require mutation, but many do | 
 |     nonstandard_style, // auto-caps does its best, but is not always successful | 
 | )] | 
 | #![recursion_limit = "512"] | 
 |  | 
 | #[cfg(target_os = "fuchsia")] | 
 | #[allow(unused_imports)] | 
 | use fuchsia_zircon as zx; | 
 |  | 
 | #[allow(unused_imports)] | 
 | use { | 
 |     bitflags::bitflags, | 
 |     fidl::{ | 
 |         client::{decode_transaction_body_fut, QueryResponseFut}, | 
 |         encoding::{zerocopy, Decodable as _, Encodable as _}, | 
 |         endpoints::{ControlHandle as _, Responder as _}, | 
 |         fidl_bits, fidl_empty_struct, fidl_enum, fidl_struct, fidl_struct_copy, fidl_table, | 
 |         fidl_union, wrap_handle_metadata, | 
 |     }, | 
 |     fuchsia_zircon_status as zx_status, | 
 |     futures::future::{self, MaybeDone, TryFutureExt}, | 
 | }; | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub enum UnionSize12Alignment4 { | 
 |     Variant([u8; 6]), | 
 | } | 
 |  | 
 | impl UnionSize12Alignment4 { | 
 |     #[deprecated = "Strict unions should not use `validate`"] | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, (u64, Vec<u8>)> { | 
 |         Ok(self) | 
 |     } | 
 |  | 
 |     #[deprecated = "Strict unions should not use `is_unknown`"] | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         false | 
 |     } | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for UnionSize12Alignment4 {} | 
 |  | 
 | impl fidl::encoding::Persistable for UnionSize12Alignment4 {} | 
 |  | 
 | fidl_union! { | 
 |     name: UnionSize12Alignment4, | 
 |     members: [ | 
 |         Variant { | 
 |             ty: [u8; 6], | 
 |             ordinal: 1, | 
 |         }, | 
 |     ], | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub enum UnionSize24Alignment8 { | 
 |     Variant(StructSize16Alignment8), | 
 | } | 
 |  | 
 | impl UnionSize24Alignment8 { | 
 |     #[deprecated = "Strict unions should not use `validate`"] | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, (u64, Vec<u8>)> { | 
 |         Ok(self) | 
 |     } | 
 |  | 
 |     #[deprecated = "Strict unions should not use `is_unknown`"] | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         false | 
 |     } | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for UnionSize24Alignment8 {} | 
 |  | 
 | impl fidl::encoding::Persistable for UnionSize24Alignment8 {} | 
 |  | 
 | fidl_union! { | 
 |     name: UnionSize24Alignment8, | 
 |     members: [ | 
 |         Variant { | 
 |             ty: StructSize16Alignment8, | 
 |             ordinal: 1, | 
 |         }, | 
 |     ], | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub enum UnionSize36Alignment4 { | 
 |     Variant([u8; 32]), | 
 | } | 
 |  | 
 | impl UnionSize36Alignment4 { | 
 |     #[deprecated = "Strict unions should not use `validate`"] | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, (u64, Vec<u8>)> { | 
 |         Ok(self) | 
 |     } | 
 |  | 
 |     #[deprecated = "Strict unions should not use `is_unknown`"] | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         false | 
 |     } | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for UnionSize36Alignment4 {} | 
 |  | 
 | impl fidl::encoding::Persistable for UnionSize36Alignment4 {} | 
 |  | 
 | fidl_union! { | 
 |     name: UnionSize36Alignment4, | 
 |     members: [ | 
 |         Variant { | 
 |             ty: [u8; 32], | 
 |             ordinal: 1, | 
 |         }, | 
 |     ], | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub enum UnionSize8Alignment4 { | 
 |     Variant(u32), | 
 | } | 
 |  | 
 | impl UnionSize8Alignment4 { | 
 |     #[deprecated = "Strict unions should not use `validate`"] | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, (u64, Vec<u8>)> { | 
 |         Ok(self) | 
 |     } | 
 |  | 
 |     #[deprecated = "Strict unions should not use `is_unknown`"] | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         false | 
 |     } | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for UnionSize8Alignment4 {} | 
 |  | 
 | impl fidl::encoding::Persistable for UnionSize8Alignment4 {} | 
 |  | 
 | fidl_union! { | 
 |     name: UnionSize8Alignment4, | 
 |     members: [ | 
 |         Variant { | 
 |             ty: u32, | 
 |             ordinal: 1, | 
 |         }, | 
 |     ], | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub struct SandwichUnionSize12Alignment4 { | 
 |     pub before: u32, | 
 |     pub union: UnionSize12Alignment4, | 
 |     pub after: i32, | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for SandwichUnionSize12Alignment4 {} | 
 |  | 
 | impl fidl::encoding::Persistable for SandwichUnionSize12Alignment4 {} | 
 |  | 
 | fidl_struct! { | 
 |     name: SandwichUnionSize12Alignment4, | 
 |     members: [ | 
 |         before { | 
 |             ty: u32, | 
 |             offset_v1: 0, | 
 |             offset_v2: 0, | 
 |         }, | 
 |         union { | 
 |             ty: UnionSize12Alignment4, | 
 |             offset_v1: 8, | 
 |             offset_v2: 8, | 
 |         }, | 
 |         after { | 
 |             ty: i32, | 
 |             offset_v1: 32, | 
 |             offset_v2: 24, | 
 |         }, | 
 |     ], | 
 |     padding_v1: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 32, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     padding_v2: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 24, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     size_v1: 40, | 
 |     size_v2: 32, | 
 |     align_v1: 8, | 
 |     align_v2: 8, | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub struct SandwichUnionSize24Alignment8 { | 
 |     pub before: u32, | 
 |     pub union: UnionSize24Alignment8, | 
 |     pub after: u32, | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for SandwichUnionSize24Alignment8 {} | 
 |  | 
 | impl fidl::encoding::Persistable for SandwichUnionSize24Alignment8 {} | 
 |  | 
 | fidl_struct! { | 
 |     name: SandwichUnionSize24Alignment8, | 
 |     members: [ | 
 |         before { | 
 |             ty: u32, | 
 |             offset_v1: 0, | 
 |             offset_v2: 0, | 
 |         }, | 
 |         union { | 
 |             ty: UnionSize24Alignment8, | 
 |             offset_v1: 8, | 
 |             offset_v2: 8, | 
 |         }, | 
 |         after { | 
 |             ty: u32, | 
 |             offset_v1: 32, | 
 |             offset_v2: 24, | 
 |         }, | 
 |     ], | 
 |     padding_v1: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 32, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     padding_v2: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 24, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     size_v1: 40, | 
 |     size_v2: 32, | 
 |     align_v1: 8, | 
 |     align_v2: 8, | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub struct SandwichUnionSize36Alignment4 { | 
 |     pub before: u32, | 
 |     pub union: UnionSize36Alignment4, | 
 |     pub after: u32, | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for SandwichUnionSize36Alignment4 {} | 
 |  | 
 | impl fidl::encoding::Persistable for SandwichUnionSize36Alignment4 {} | 
 |  | 
 | fidl_struct! { | 
 |     name: SandwichUnionSize36Alignment4, | 
 |     members: [ | 
 |         before { | 
 |             ty: u32, | 
 |             offset_v1: 0, | 
 |             offset_v2: 0, | 
 |         }, | 
 |         union { | 
 |             ty: UnionSize36Alignment4, | 
 |             offset_v1: 8, | 
 |             offset_v2: 8, | 
 |         }, | 
 |         after { | 
 |             ty: u32, | 
 |             offset_v1: 32, | 
 |             offset_v2: 24, | 
 |         }, | 
 |     ], | 
 |     padding_v1: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 32, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     padding_v2: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 24, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     size_v1: 40, | 
 |     size_v2: 32, | 
 |     align_v1: 8, | 
 |     align_v2: 8, | 
 | } | 
 |  | 
 | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | pub struct SandwichUnionSize8Alignment4 { | 
 |     pub before: u32, | 
 |     pub union: UnionSize8Alignment4, | 
 |     pub after: u32, | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for SandwichUnionSize8Alignment4 {} | 
 |  | 
 | impl fidl::encoding::Persistable for SandwichUnionSize8Alignment4 {} | 
 |  | 
 | fidl_struct! { | 
 |     name: SandwichUnionSize8Alignment4, | 
 |     members: [ | 
 |         before { | 
 |             ty: u32, | 
 |             offset_v1: 0, | 
 |             offset_v2: 0, | 
 |         }, | 
 |         union { | 
 |             ty: UnionSize8Alignment4, | 
 |             offset_v1: 8, | 
 |             offset_v2: 8, | 
 |         }, | 
 |         after { | 
 |             ty: u32, | 
 |             offset_v1: 32, | 
 |             offset_v2: 24, | 
 |         }, | 
 |     ], | 
 |     padding_v1: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 32, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     padding_v2: [ | 
 |         { | 
 |             ty: u64, | 
 |             offset: 0, | 
 |             mask: 0xffffffff00000000u64, | 
 |         }, | 
 |         { | 
 |             ty: u64, | 
 |             offset: 24, | 
 |             mask: 0xffffffff00000000u64, | 
 |         },], | 
 |     size_v1: 40, | 
 |     size_v2: 32, | 
 |     align_v1: 8, | 
 |     align_v2: 8, | 
 | } | 
 |  | 
 | #[derive( | 
 |     Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, zerocopy::AsBytes, zerocopy::FromBytes, | 
 | )] | 
 | #[repr(C)] | 
 | pub struct StructSize16Alignment8 { | 
 |     pub f1: u64, | 
 |     pub f2: u64, | 
 | } | 
 |  | 
 | impl fidl::encoding::TopLevel for StructSize16Alignment8 {} | 
 |  | 
 | impl fidl::encoding::Persistable for StructSize16Alignment8 {} | 
 |  | 
 | fidl_struct_copy! { | 
 |     name: StructSize16Alignment8, | 
 |     members: [ | 
 |         f1 { | 
 |             ty: u64, | 
 |             offset_v1: 0, | 
 |             offset_v2: 0, | 
 |         }, | 
 |         f2 { | 
 |             ty: u64, | 
 |             offset_v1: 8, | 
 |             offset_v2: 8, | 
 |         }, | 
 |     ], | 
 |     padding_v1: [], | 
 |     padding_v2: [], | 
 |     size_v1: 16, | 
 |     size_v2: 16, | 
 |     align_v1: 8, | 
 |     align_v2: 8, | 
 | } |