| // WARNING: This file is machine generated by fidlgen. |
| |
| // fidl_experiment = no_optional_structs |
| // fidl_experiment = output_index_json |
| // fidl_experiment = unknown_interactions |
| // fidl_experiment = unknown_interactions_mandate |
| |
| #![warn(clippy::all)] |
| #![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)] |
| |
| use { |
| bitflags::bitflags, |
| fidl::{ |
| client::QueryResponseFut, |
| endpoints::{ControlHandle as _, Responder as _}, |
| }, |
| fuchsia_zircon_status as zx_status, |
| futures::future::{self, MaybeDone, TryFutureExt}, |
| }; |
| |
| #[cfg(target_os = "fuchsia")] |
| use fuchsia_zircon as zx; |
| |
| bitflags! { |
| #[derive(Default)] |
| pub struct EmptyBits: u32 { |
| } |
| } |
| |
| impl EmptyBits { |
| #[inline(always)] |
| pub fn from_bits_allow_unknown(bits: u32) -> Self { |
| unsafe { Self::from_bits_unchecked(bits) } |
| } |
| |
| #[inline(always)] |
| pub fn has_unknown_bits(&self) -> bool { |
| self.get_unknown_bits() != 0 |
| } |
| |
| #[inline(always)] |
| pub fn get_unknown_bits(&self) -> u32 { |
| self.bits & !Self::all().bits |
| } |
| } |
| |
| bitflags! { |
| #[derive(Default)] |
| pub struct FlexibleBits: u64 { |
| const SMALLEST = 1; |
| const BIGGEST = 9223372036854775808; |
| } |
| } |
| |
| impl FlexibleBits { |
| #[inline(always)] |
| pub fn from_bits_allow_unknown(bits: u64) -> Self { |
| unsafe { Self::from_bits_unchecked(bits) } |
| } |
| |
| #[inline(always)] |
| pub fn has_unknown_bits(&self) -> bool { |
| self.get_unknown_bits() != 0 |
| } |
| |
| #[inline(always)] |
| pub fn get_unknown_bits(&self) -> u64 { |
| self.bits & !Self::all().bits |
| } |
| } |
| |
| bitflags! { |
| #[derive(Default)] |
| pub struct MyBits: u32 { |
| const MY_FIRST_BIT = 1; |
| const MY_OTHER_BIT = 2; |
| const MASK = 4; |
| } |
| } |
| |
| impl MyBits { |
| #[deprecated = "Strict bits should not use `has_unknown_bits`"] |
| #[inline(always)] |
| pub fn has_unknown_bits(&self) -> bool { |
| false |
| } |
| |
| #[deprecated = "Strict bits should not use `get_unknown_bits`"] |
| #[inline(always)] |
| pub fn get_unknown_bits(&self) -> u32 { |
| 0 |
| } |
| } |
| |
| bitflags! { |
| #[derive(Default)] |
| pub struct StrictBits: u64 { |
| const SMALLEST = 1; |
| const BIGGEST = 9223372036854775808; |
| } |
| } |
| |
| impl StrictBits { |
| #[deprecated = "Strict bits should not use `has_unknown_bits`"] |
| #[inline(always)] |
| pub fn has_unknown_bits(&self) -> bool { |
| false |
| } |
| |
| #[deprecated = "Strict bits should not use `get_unknown_bits`"] |
| #[inline(always)] |
| pub fn get_unknown_bits(&self) -> u64 { |
| 0 |
| } |
| } |
| |
| mod internal { |
| use super::*; |
| unsafe impl fidl::encoding::TypeMarker for EmptyBits { |
| type Owned = Self; |
| |
| #[inline(always)] |
| fn inline_align(_context: fidl::encoding::Context) -> usize { |
| 4 |
| } |
| |
| #[inline(always)] |
| fn inline_size(_context: fidl::encoding::Context) -> usize { |
| 4 |
| } |
| } |
| |
| impl fidl::encoding::ValueTypeMarker for EmptyBits { |
| type Borrowed<'a> = Self; |
| #[inline(always)] |
| fn borrow<'a>( |
| value: &'a <Self as fidl::encoding::TypeMarker>::Owned, |
| ) -> Self::Borrowed<'a> { |
| *value |
| } |
| } |
| |
| unsafe impl fidl::encoding::Encode<Self> for EmptyBits { |
| #[inline] |
| unsafe fn encode( |
| self, |
| encoder: &mut fidl::encoding::Encoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| encoder.debug_check_bounds::<Self>(offset); |
| encoder.write_num(self.bits, offset); |
| Ok(()) |
| } |
| } |
| |
| impl fidl::encoding::Decode<Self> for EmptyBits { |
| #[inline(always)] |
| fn new_empty() -> Self { |
| Self::empty() |
| } |
| |
| #[inline] |
| unsafe fn decode( |
| &mut self, |
| decoder: &mut fidl::encoding::Decoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| decoder.debug_check_bounds::<Self>(offset); |
| let prim = decoder.read_num::<u32>(offset); |
| *self = Self::from_bits_allow_unknown(prim); |
| Ok(()) |
| } |
| } |
| unsafe impl fidl::encoding::TypeMarker for FlexibleBits { |
| type Owned = Self; |
| |
| #[inline(always)] |
| fn inline_align(_context: fidl::encoding::Context) -> usize { |
| 8 |
| } |
| |
| #[inline(always)] |
| fn inline_size(_context: fidl::encoding::Context) -> usize { |
| 8 |
| } |
| } |
| |
| impl fidl::encoding::ValueTypeMarker for FlexibleBits { |
| type Borrowed<'a> = Self; |
| #[inline(always)] |
| fn borrow<'a>( |
| value: &'a <Self as fidl::encoding::TypeMarker>::Owned, |
| ) -> Self::Borrowed<'a> { |
| *value |
| } |
| } |
| |
| unsafe impl fidl::encoding::Encode<Self> for FlexibleBits { |
| #[inline] |
| unsafe fn encode( |
| self, |
| encoder: &mut fidl::encoding::Encoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| encoder.debug_check_bounds::<Self>(offset); |
| encoder.write_num(self.bits, offset); |
| Ok(()) |
| } |
| } |
| |
| impl fidl::encoding::Decode<Self> for FlexibleBits { |
| #[inline(always)] |
| fn new_empty() -> Self { |
| Self::empty() |
| } |
| |
| #[inline] |
| unsafe fn decode( |
| &mut self, |
| decoder: &mut fidl::encoding::Decoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| decoder.debug_check_bounds::<Self>(offset); |
| let prim = decoder.read_num::<u64>(offset); |
| *self = Self::from_bits_allow_unknown(prim); |
| Ok(()) |
| } |
| } |
| unsafe impl fidl::encoding::TypeMarker for MyBits { |
| type Owned = Self; |
| |
| #[inline(always)] |
| fn inline_align(_context: fidl::encoding::Context) -> usize { |
| 4 |
| } |
| |
| #[inline(always)] |
| fn inline_size(_context: fidl::encoding::Context) -> usize { |
| 4 |
| } |
| } |
| |
| impl fidl::encoding::ValueTypeMarker for MyBits { |
| type Borrowed<'a> = Self; |
| #[inline(always)] |
| fn borrow<'a>( |
| value: &'a <Self as fidl::encoding::TypeMarker>::Owned, |
| ) -> Self::Borrowed<'a> { |
| *value |
| } |
| } |
| |
| unsafe impl fidl::encoding::Encode<Self> for MyBits { |
| #[inline] |
| unsafe fn encode( |
| self, |
| encoder: &mut fidl::encoding::Encoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| encoder.debug_check_bounds::<Self>(offset); |
| if self.bits & Self::all().bits != self.bits { |
| return Err(fidl::Error::InvalidBitsValue); |
| } |
| encoder.write_num(self.bits, offset); |
| Ok(()) |
| } |
| } |
| |
| impl fidl::encoding::Decode<Self> for MyBits { |
| #[inline(always)] |
| fn new_empty() -> Self { |
| Self::empty() |
| } |
| |
| #[inline] |
| unsafe fn decode( |
| &mut self, |
| decoder: &mut fidl::encoding::Decoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| decoder.debug_check_bounds::<Self>(offset); |
| let prim = decoder.read_num::<u32>(offset); |
| *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?; |
| Ok(()) |
| } |
| } |
| unsafe impl fidl::encoding::TypeMarker for StrictBits { |
| type Owned = Self; |
| |
| #[inline(always)] |
| fn inline_align(_context: fidl::encoding::Context) -> usize { |
| 8 |
| } |
| |
| #[inline(always)] |
| fn inline_size(_context: fidl::encoding::Context) -> usize { |
| 8 |
| } |
| } |
| |
| impl fidl::encoding::ValueTypeMarker for StrictBits { |
| type Borrowed<'a> = Self; |
| #[inline(always)] |
| fn borrow<'a>( |
| value: &'a <Self as fidl::encoding::TypeMarker>::Owned, |
| ) -> Self::Borrowed<'a> { |
| *value |
| } |
| } |
| |
| unsafe impl fidl::encoding::Encode<Self> for StrictBits { |
| #[inline] |
| unsafe fn encode( |
| self, |
| encoder: &mut fidl::encoding::Encoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| encoder.debug_check_bounds::<Self>(offset); |
| if self.bits & Self::all().bits != self.bits { |
| return Err(fidl::Error::InvalidBitsValue); |
| } |
| encoder.write_num(self.bits, offset); |
| Ok(()) |
| } |
| } |
| |
| impl fidl::encoding::Decode<Self> for StrictBits { |
| #[inline(always)] |
| fn new_empty() -> Self { |
| Self::empty() |
| } |
| |
| #[inline] |
| unsafe fn decode( |
| &mut self, |
| decoder: &mut fidl::encoding::Decoder<'_>, |
| offset: usize, |
| _depth: fidl::encoding::Depth, |
| ) -> fidl::Result<()> { |
| decoder.debug_check_bounds::<Self>(offset); |
| let prim = decoder.read_num::<u64>(offset); |
| *self = Self::from_bits(prim).ok_or(fidl::Error::InvalidBitsValue)?; |
| Ok(()) |
| } |
| } |
| } |