#[macro_use]
extern crate bitflags;
extern crate libc;
#[cfg(feature = "ord_subset")]
extern crate ord_subset;
#[cfg(feature = "rustc-serialize")]
extern crate rustc_serialize;
#[cfg(feature = "serde")]
extern crate serde;
#[cfg(feature = "serde")]
#[cfg(test)]
extern crate serde_json;
#[macro_export]
macro_rules! d128 {
($lit:expr) => {{
use std::str::FromStr;
$crate::d128::from_str(stringify!($lit)).expect("Invalid decimal float literal")
}}
}
mod context;
mod dec128;
pub use dec128::d128;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Rounding {
Ceiling = 0,
Up,
HalfUp,
HalfEven,
HalfDown,
Down,
Floor,
ZeroOrFiveUp,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[allow(dead_code)]
pub enum Class {
Snan = 0,
Qnan,
NegInf,
NegNormal,
NegSubnormal,
NegZero,
PosZero,
PosSubnormal,
PosNormal,
PosInf,
}
bitflags! {
pub struct Status: u32 {
const CONVERSION_SYNTAX = 0x00000001;
const DIVISION_BY_ZERO = 0x00000002;
const DIVISION_IMPOSSIBLE = 0x00000004;
const DIVISION_UNDEFINED = 0x00000008;
const INEXACT = 0x00000020;
const INVALID_OPERATION = 0x00000080;
const OVERFLOW = 0x00000200;
const UNDERFLOW = 0x00002000;
}
}