| // WARNING: This file is machine generated by fidlgen. | 
 |  | 
 | #![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::{Decodable as _, Encodable 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(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | #[repr(u32)] | 
 | pub enum MyStrictEnum { | 
 |     Foo = 1, | 
 |     Bar = 2, | 
 | } | 
 |  | 
 | impl MyStrictEnum { | 
 |     #[inline] | 
 |     pub fn from_primitive(prim: u32) -> Option<Self> { | 
 |         match prim { | 
 |             1 => Some(Self::Foo), | 
 |             2 => Some(Self::Bar), | 
 |             _ => None, | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn into_primitive(self) -> u32 { | 
 |         self as u32 | 
 |     } | 
 |  | 
 |     #[deprecated = "Strict enums should not use `validate`"] | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, u32> { | 
 |         Ok(self) | 
 |     } | 
 |  | 
 |     #[deprecated = "Strict enums should not use `is_unknown`"] | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         false | 
 |     } | 
 | } | 
 |  | 
 | fidl_enum! { | 
 |     name: MyStrictEnum, | 
 |     prim_ty: u32, | 
 |     strict: true, | 
 |     min_member: Foo, | 
 | } | 
 |  | 
 | #[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | #[non_exhaustive] | 
 | pub enum MyFlexibleEnum { | 
 |     Foo, | 
 |     Bar, | 
 |     #[deprecated = "Use `MyFlexibleEnum::unknown()` to construct and `MyFlexibleEnumUnknown!()` to exhaustively match."] | 
 |     #[doc(hidden)] | 
 |     __Unknown(u32), | 
 | } | 
 | /// Pattern that matches an unknown `MyFlexibleEnum` member. | 
 | #[macro_export] | 
 | macro_rules! MyFlexibleEnumUnknown { | 
 |     () => { | 
 |         _ | 
 |     }; | 
 | } | 
 |  | 
 | impl MyFlexibleEnum { | 
 |     #[inline] | 
 |     pub fn from_primitive(prim: u32) -> Option<Self> { | 
 |         match prim { | 
 |             1 => Some(Self::Foo), | 
 |             2 => Some(Self::Bar), | 
 |             _ => None, | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn from_primitive_allow_unknown(prim: u32) -> Self { | 
 |         match prim { | 
 |             1 => Self::Foo, | 
 |             2 => Self::Bar, | 
 |             #[allow(deprecated)] | 
 |             x => Self::__Unknown(x), | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn unknown() -> Self { | 
 |         #[allow(deprecated)] | 
 |         Self::__Unknown(0xffffffff) | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn into_primitive(self) -> u32 { | 
 |         match self { | 
 |             Self::Foo => 1, | 
 |             Self::Bar => 2, | 
 |             #[allow(deprecated)] | 
 |             Self::__Unknown(x) => x, | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, u32> { | 
 |         match self { | 
 |             #[allow(deprecated)] | 
 |             Self::__Unknown(x) => Err(x), | 
 |             _ => Ok(self), | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         self.validate().is_err() | 
 |     } | 
 | } | 
 |  | 
 | fidl_enum! { | 
 |     name: MyFlexibleEnum, | 
 |     prim_ty: u32, | 
 |     flexible: true, | 
 | } | 
 |  | 
 | #[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
 | #[non_exhaustive] | 
 | pub enum MyFlexibleEnumWithCustomUnknown { | 
 |     Foo, | 
 |     Bar, | 
 |     CustomUnknown, | 
 |     #[deprecated = "Use `MyFlexibleEnumWithCustomUnknown::unknown()` to construct and `MyFlexibleEnumWithCustomUnknownUnknown!()` to exhaustively match."] | 
 |     #[doc(hidden)] | 
 |     __Unknown(u32), | 
 | } | 
 | /// Pattern that matches an unknown `MyFlexibleEnumWithCustomUnknown` member. | 
 | #[macro_export] | 
 | macro_rules! MyFlexibleEnumWithCustomUnknownUnknown { | 
 |     () => { | 
 |         _ | 
 |     }; | 
 | } | 
 |  | 
 | impl MyFlexibleEnumWithCustomUnknown { | 
 |     #[inline] | 
 |     pub fn from_primitive(prim: u32) -> Option<Self> { | 
 |         match prim { | 
 |             1 => Some(Self::Foo), | 
 |             2 => Some(Self::Bar), | 
 |             3 => Some(Self::CustomUnknown), | 
 |             _ => None, | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn from_primitive_allow_unknown(prim: u32) -> Self { | 
 |         match prim { | 
 |             1 => Self::Foo, | 
 |             2 => Self::Bar, | 
 |             3 => Self::CustomUnknown, | 
 |             #[allow(deprecated)] | 
 |             x => Self::__Unknown(x), | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn unknown() -> Self { | 
 |         #[allow(deprecated)] | 
 |         Self::__Unknown(0x3) | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn into_primitive(self) -> u32 { | 
 |         match self { | 
 |             Self::Foo => 1, | 
 |             Self::Bar => 2, | 
 |             Self::CustomUnknown => 3, | 
 |             #[allow(deprecated)] | 
 |             Self::__Unknown(x) => x, | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn validate(self) -> std::result::Result<Self, u32> { | 
 |         match self { | 
 |             Self::CustomUnknown => Err(self.into_primitive()), | 
 |             #[allow(deprecated)] | 
 |             Self::__Unknown(x) => Err(x), | 
 |             _ => Ok(self), | 
 |         } | 
 |     } | 
 |  | 
 |     #[inline] | 
 |     pub fn is_unknown(&self) -> bool { | 
 |         self.validate().is_err() | 
 |     } | 
 | } | 
 |  | 
 | fidl_enum! { | 
 |     name: MyFlexibleEnumWithCustomUnknown, | 
 |     prim_ty: u32, | 
 |     flexible: true, | 
 | } |