|  | // 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 _}, | 
|  | 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)] | 
|  | #[repr(C)] | 
|  | pub struct Padding1ByteEnd { | 
|  | pub a: u16, | 
|  | pub b: u8, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding1ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding1ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u16, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u8, | 
|  | offset_v1: 2, | 
|  | offset_v2: 2, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u16, | 
|  | offset: 2, | 
|  | mask: 0xff00u16, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u16, | 
|  | offset: 2, | 
|  | mask: 0xff00u16, | 
|  | },], | 
|  | size_v1: 4, | 
|  | size_v2: 4, | 
|  | align_v1: 2, | 
|  | align_v2: 2, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding1ByteMiddle { | 
|  | pub a: u8, | 
|  | pub b: u16, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding1ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding1ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u8, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u16, | 
|  | offset_v1: 2, | 
|  | offset_v2: 2, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u16, | 
|  | offset: 0, | 
|  | mask: 0xff00u16, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u16, | 
|  | offset: 0, | 
|  | mask: 0xff00u16, | 
|  | },], | 
|  | size_v1: 4, | 
|  | size_v2: 4, | 
|  | align_v1: 2, | 
|  | align_v2: 2, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding2ByteAlignmentLength6 { | 
|  | pub a: u8, | 
|  | pub b: u16, | 
|  | pub c: u8, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding2ByteAlignmentLength6 {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding2ByteAlignmentLength6, | 
|  | members: [ | 
|  | a { | 
|  | ty: u8, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u16, | 
|  | offset_v1: 2, | 
|  | offset_v2: 2, | 
|  | }, | 
|  | c { | 
|  | ty: u8, | 
|  | offset_v1: 4, | 
|  | offset_v2: 4, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u16, | 
|  | offset: 0, | 
|  | mask: 0xff00u16, | 
|  | }, | 
|  | { | 
|  | ty: u16, | 
|  | offset: 4, | 
|  | mask: 0xff00u16, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u16, | 
|  | offset: 0, | 
|  | mask: 0xff00u16, | 
|  | }, | 
|  | { | 
|  | ty: u16, | 
|  | offset: 4, | 
|  | mask: 0xff00u16, | 
|  | },], | 
|  | size_v1: 6, | 
|  | size_v2: 6, | 
|  | align_v1: 2, | 
|  | align_v2: 2, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding2ByteEnd { | 
|  | pub a: u32, | 
|  | pub b: u16, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding2ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding2ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u32, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u16, | 
|  | offset_v1: 4, | 
|  | offset_v2: 4, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 4, | 
|  | mask: 0xffff0000u32, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 4, | 
|  | mask: 0xffff0000u32, | 
|  | },], | 
|  | size_v1: 8, | 
|  | size_v2: 8, | 
|  | align_v1: 4, | 
|  | align_v2: 4, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding2ByteMiddle { | 
|  | pub a: u16, | 
|  | pub b: u32, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding2ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding2ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u16, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u32, | 
|  | offset_v1: 4, | 
|  | offset_v2: 4, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 0, | 
|  | mask: 0xffff0000u32, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 0, | 
|  | mask: 0xffff0000u32, | 
|  | },], | 
|  | size_v1: 8, | 
|  | size_v2: 8, | 
|  | align_v1: 4, | 
|  | align_v2: 4, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding3ByteEnd { | 
|  | pub a: u32, | 
|  | pub b: u8, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding3ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding3ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u32, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u8, | 
|  | offset_v1: 4, | 
|  | offset_v2: 4, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 4, | 
|  | mask: 0xffffff00u32, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 4, | 
|  | mask: 0xffffff00u32, | 
|  | },], | 
|  | size_v1: 8, | 
|  | size_v2: 8, | 
|  | align_v1: 4, | 
|  | align_v2: 4, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding3ByteMiddle { | 
|  | pub a: u8, | 
|  | pub b: u32, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding3ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding3ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u8, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u32, | 
|  | offset_v1: 4, | 
|  | offset_v2: 4, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 0, | 
|  | mask: 0xffffff00u32, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 0, | 
|  | mask: 0xffffff00u32, | 
|  | },], | 
|  | size_v1: 8, | 
|  | size_v2: 8, | 
|  | align_v1: 4, | 
|  | align_v2: 4, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding4ByteAlignmentLength12 { | 
|  | pub a: u32, | 
|  | pub b: u8, | 
|  | pub c: u16, | 
|  | pub d: u16, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding4ByteAlignmentLength12 {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding4ByteAlignmentLength12, | 
|  | members: [ | 
|  | a { | 
|  | ty: u32, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u8, | 
|  | offset_v1: 4, | 
|  | offset_v2: 4, | 
|  | }, | 
|  | c { | 
|  | ty: u16, | 
|  | offset_v1: 6, | 
|  | offset_v2: 6, | 
|  | }, | 
|  | d { | 
|  | ty: u16, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 4, | 
|  | mask: 0x0000ff00u32, | 
|  | }, | 
|  | { | 
|  | ty: u32, | 
|  | offset: 8, | 
|  | mask: 0xffff0000u32, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u32, | 
|  | offset: 4, | 
|  | mask: 0x0000ff00u32, | 
|  | }, | 
|  | { | 
|  | ty: u32, | 
|  | offset: 8, | 
|  | mask: 0xffff0000u32, | 
|  | },], | 
|  | size_v1: 12, | 
|  | size_v2: 12, | 
|  | align_v1: 4, | 
|  | align_v2: 4, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding4ByteEnd { | 
|  | pub a: u64, | 
|  | pub b: u32, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding4ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding4ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u64, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u32, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffff00000000u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffff00000000u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding4ByteMiddle { | 
|  | pub a: u32, | 
|  | pub b: u64, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding4ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding4ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u32, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u64, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffff00000000u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffff00000000u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding5ByteEnd { | 
|  | pub a: u64, | 
|  | pub b: u16, | 
|  | pub c: u8, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding5ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding5ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u64, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u16, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | c { | 
|  | ty: u8, | 
|  | offset_v1: 10, | 
|  | offset_v2: 10, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffffff000000u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffffff000000u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding5ByteMiddle { | 
|  | pub a: u16, | 
|  | pub b: u8, | 
|  | pub c: u64, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding5ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding5ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u16, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u8, | 
|  | offset_v1: 2, | 
|  | offset_v2: 2, | 
|  | }, | 
|  | c { | 
|  | ty: u64, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffffff000000u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffffff000000u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding6ByteEnd { | 
|  | pub a: u64, | 
|  | pub b: u16, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding6ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding6ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u64, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u16, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffffffff0000u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffffffff0000u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding6ByteMiddle { | 
|  | pub a: u16, | 
|  | pub b: u64, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding6ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding6ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u16, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u64, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffffffff0000u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffffffff0000u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding7ByteEnd { | 
|  | pub a: u64, | 
|  | pub b: u8, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding7ByteEnd {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding7ByteEnd, | 
|  | members: [ | 
|  | a { | 
|  | ty: u64, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u8, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffffffffff00u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 8, | 
|  | mask: 0xffffffffffffff00u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)] | 
|  | #[repr(C)] | 
|  | pub struct Padding7ByteMiddle { | 
|  | pub a: u8, | 
|  | pub b: u64, | 
|  | } | 
|  |  | 
|  | impl fidl::encoding::Persistable for Padding7ByteMiddle {} | 
|  |  | 
|  | fidl_struct_copy! { | 
|  | name: Padding7ByteMiddle, | 
|  | members: [ | 
|  | a { | 
|  | ty: u8, | 
|  | offset_v1: 0, | 
|  | offset_v2: 0, | 
|  | }, | 
|  | b { | 
|  | ty: u64, | 
|  | offset_v1: 8, | 
|  | offset_v2: 8, | 
|  | }, | 
|  | ], | 
|  | padding_v1: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffffffffff00u64, | 
|  | },], | 
|  | padding_v2: [ | 
|  | { | 
|  | ty: u64, | 
|  | offset: 0, | 
|  | mask: 0xffffffffffffff00u64, | 
|  | },], | 
|  | size_v1: 16, | 
|  | size_v2: 16, | 
|  | align_v1: 8, | 
|  | align_v2: 8, | 
|  | } |