fastnum/
decimal.rs

1//! # Decimal numbers
2
3#[cfg(feature = "test-util")]
4#[doc(hidden)]
5pub mod extras;
6
7#[cfg(not(feature = "test-util"))]
8pub(crate) mod extras;
9
10pub(crate) mod dec;
11pub(crate) mod doc;
12pub(crate) mod impls;
13pub(crate) mod round;
14pub(crate) mod udec;
15
16mod context;
17mod sign;
18mod signals;
19
20#[cfg(debug_assertions)]
21mod assertions;
22
23#[allow(dead_code)]
24pub(crate) mod utils;
25
26pub(crate) mod errors;
27
28#[macro_use]
29mod macros;
30
31pub use context::{Context, RoundingMode, SignalsTraps};
32pub use dec::Decimal;
33pub use errors::{DecimalError, ParseError};
34pub use sign::Sign;
35pub use signals::Signals;
36pub use udec::UnsignedDecimal;
37
38macro_rules! decimal_types {
39    ( $($bits: literal $u: ident $s: ident; ) *)  => {
40        $(
41            #[doc = doc::decimal_type_doc!($bits U)]
42            pub type $u = UnsignedDecimal::<{$bits / 64}>;
43
44            #[doc = doc::decimal_type_doc!($bits)]
45            pub type $s = Decimal::<{$bits / 64}>;
46        )*
47    };
48}
49
50decimal_types!(
51    64 UD64 D64;
52    128 UD128 D128;
53    256 UD256 D256;
54    512 UD512 D512;
55    1024 UD1024 D1024;
56    // 2048 UD2048 D2048;
57    // 4096 UD4096 D4096;
58    // 8192 UD8192 D8192;
59);