use core::fmt;
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
pub enum NumberBase {
Hexadecimal,
Decimal,
Octal,
Binary,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_NUMBER_BASE: [&str; 4] = [
"Hexadecimal",
"Decimal",
"Octal",
"Binary",
];
impl fmt::Debug for NumberBase {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_NUMBER_BASE[*self as usize])?;
Ok(())
}
}
impl Default for NumberBase {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
NumberBase::Hexadecimal
}
}
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
pub enum MemorySizeOptions {
Default,
Always,
Minimum,
Never,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_MEMORY_SIZE_OPTIONS: [&str; 4] = [
"Default",
"Always",
"Minimum",
"Never",
];
impl fmt::Debug for MemorySizeOptions {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_MEMORY_SIZE_OPTIONS[*self as usize])?;
Ok(())
}
}
impl Default for MemorySizeOptions {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
MemorySizeOptions::Default
}
}
#[allow(missing_copy_implementations)]
#[allow(missing_debug_implementations)]
pub struct FormatMnemonicOptions;
impl FormatMnemonicOptions {
pub const NONE: u32 = 0x0000_0000;
pub const NO_PREFIXES: u32 = 0x0000_0001;
pub const NO_MNEMONIC: u32 = 0x0000_0002;
}
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[allow(missing_docs)]
pub enum PrefixKind {
ES,
CS,
SS,
DS,
FS,
GS,
Lock,
Rep,
Repe,
Repne,
OperandSize,
AddressSize,
HintNotTaken,
HintTaken,
Bnd,
Notrack,
Xacquire,
Xrelease,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_PREFIX_KIND: [&str; 18] = [
"ES",
"CS",
"SS",
"DS",
"FS",
"GS",
"Lock",
"Rep",
"Repe",
"Repne",
"OperandSize",
"AddressSize",
"HintNotTaken",
"HintTaken",
"Bnd",
"Notrack",
"Xacquire",
"Xrelease",
];
impl fmt::Debug for PrefixKind {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_PREFIX_KIND[*self as usize])?;
Ok(())
}
}
impl Default for PrefixKind {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
PrefixKind::ES
}
}
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[cfg_attr(all(not(feature = "exhaustive_enums"), has_non_exhaustive), non_exhaustive)]
pub enum DecoratorKind {
Broadcast,
RoundingControl,
SuppressAllExceptions,
ZeroingMasking,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_DECORATOR_KIND: [&str; 4] = [
"Broadcast",
"RoundingControl",
"SuppressAllExceptions",
"ZeroingMasking",
];
impl fmt::Debug for DecoratorKind {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_DECORATOR_KIND[*self as usize])?;
Ok(())
}
}
impl Default for DecoratorKind {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
DecoratorKind::Broadcast
}
}
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[cfg_attr(all(not(feature = "exhaustive_enums"), has_non_exhaustive), non_exhaustive)]
#[allow(missing_docs)]
pub enum NumberKind {
Int8,
UInt8,
Int16,
UInt16,
Int32,
UInt32,
Int64,
UInt64,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_NUMBER_KIND: [&str; 8] = [
"Int8",
"UInt8",
"Int16",
"UInt16",
"Int32",
"UInt32",
"Int64",
"UInt64",
];
impl fmt::Debug for NumberKind {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_NUMBER_KIND[*self as usize])?;
Ok(())
}
}
impl Default for NumberKind {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
NumberKind::Int8
}
}
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
#[cfg_attr(all(not(feature = "exhaustive_enums"), has_non_exhaustive), non_exhaustive)]
pub enum FormatterTextKind {
Text,
Directive,
Prefix,
Mnemonic,
Keyword,
Operator,
Punctuation,
Number,
Register,
Decorator,
SelectorValue,
LabelAddress,
FunctionAddress,
Data,
Label,
Function,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_FORMATTER_TEXT_KIND: [&str; 16] = [
"Text",
"Directive",
"Prefix",
"Mnemonic",
"Keyword",
"Operator",
"Punctuation",
"Number",
"Register",
"Decorator",
"SelectorValue",
"LabelAddress",
"FunctionAddress",
"Data",
"Label",
"Function",
];
impl fmt::Debug for FormatterTextKind {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_FORMATTER_TEXT_KIND[*self as usize])?;
Ok(())
}
}
impl Default for FormatterTextKind {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
FormatterTextKind::Text
}
}
#[allow(missing_copy_implementations)]
#[allow(missing_debug_implementations)]
pub struct SymbolFlags;
impl SymbolFlags {
pub const NONE: u32 = 0x0000_0000;
pub const RELATIVE: u32 = 0x0000_0001;
pub const SIGNED: u32 = 0x0000_0002;
}
#[derive(Copy, Clone, Eq, PartialEq)]
#[allow(non_camel_case_types)]
#[allow(dead_code)]
pub(crate) enum PseudoOpsKind {
cmpps,
vcmpps,
cmppd,
vcmppd,
cmpss,
vcmpss,
cmpsd,
vcmpsd,
pclmulqdq,
vpclmulqdq,
vpcomb,
vpcomw,
vpcomd,
vpcomq,
vpcomub,
vpcomuw,
vpcomud,
vpcomuq,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_PSEUDO_OPS_KIND: [&str; 18] = [
"cmpps",
"vcmpps",
"cmppd",
"vcmppd",
"cmpss",
"vcmpss",
"cmpsd",
"vcmpsd",
"pclmulqdq",
"vpclmulqdq",
"vpcomb",
"vpcomw",
"vpcomd",
"vpcomq",
"vpcomub",
"vpcomuw",
"vpcomud",
"vpcomuq",
];
impl fmt::Debug for PseudoOpsKind {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_PSEUDO_OPS_KIND[*self as usize])?;
Ok(())
}
}
impl Default for PseudoOpsKind {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
PseudoOpsKind::cmpps
}
}
#[derive(Copy, Clone, Eq, PartialEq)]
#[allow(dead_code)]
pub(crate) enum FormatterFlowControl {
AlwaysShortBranch,
ShortBranch,
NearBranch,
NearCall,
FarBranch,
FarCall,
Xbegin,
}
#[cfg_attr(feature = "cargo-fmt", rustfmt::skip)]
static GEN_DEBUG_FORMATTER_FLOW_CONTROL: [&str; 7] = [
"AlwaysShortBranch",
"ShortBranch",
"NearBranch",
"NearCall",
"FarBranch",
"FarCall",
"Xbegin",
];
impl fmt::Debug for FormatterFlowControl {
#[inline]
fn fmt<'a>(&self, f: &mut fmt::Formatter<'a>) -> fmt::Result {
write!(f, "{}", GEN_DEBUG_FORMATTER_FLOW_CONTROL[*self as usize])?;
Ok(())
}
}
impl Default for FormatterFlowControl {
#[cfg_attr(has_must_use, must_use)]
#[inline]
fn default() -> Self {
FormatterFlowControl::AlwaysShortBranch
}
}