1#[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 );