// WARNING: This file is machine generated by fidlgen.

#![allow(
	deprecated, // FIDL Impl struct pattern is referenced internally
	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
)]

#[allow(unused_imports)]
use fidl::{fidl_bits, fidl_empty_struct, fidl_enum, fidl_struct, fidl_table, fidl_xunion};
#[cfg(target_os = "fuchsia")]
#[allow(unused_imports)]
use fuchsia_zircon as zx;
#[allow(unused_imports)]
use fuchsia_zircon_status as zx_status;

fidl_bits! {
  BitsType(u32) {
    Value = 1,
    True_ = 2,
  }
}

pub const ENABLED_FLAG: bool = true;

pub const OFFSET: i8 = -33;

pub const ANSWER: u16 = 42;

pub const ANSWER_IN_BINARY: u16 = 42;

pub const POPULATION_USA_2018: u32 = 330000000;

pub const DIAMOND: u64 = 1746410393481133080;

pub const FUCHSIA: u64 = 4054509061583223046;

pub const USERNAME: &str = r###""squeenze""###;

pub const MIN_TEMP: f32 = -273.15;

pub const CONVERSION_FACTOR: f64 = 1.41421;

pub const ENUM_VAL: EnumType = EnumType::Value;

pub const ENUM_PRIMITIVE_VAL: i32 = EnumType::Value;

pub const ENUM_TRUE: EnumType = EnumType::True_;

pub const ENUM_PRIMITIVE_TRUE: i32 = EnumType::True_;

pub const BITS_VAL: BitsType = BitsType::Value;

pub const BITS_PRIMITIVE_VAL: i32 = BitsType::Value;

pub const BITS_TRUE: BitsType = BitsType::True_;

pub const BITS_PRIMITIVE_TRUE: i32 = BitsType::True_;

fidl_enum! {
  EnumType(i32) {
    Value = 1,
    True_ = 2,
  }
}
