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