1 //! Helper utilities for low-level features.
2 // Fix a compiler bug that thinks `pow` isn't used.
3 #![allow(unused_imports)]
4 
5 // Hide implementation details.
6 #[macro_use]
7 mod assert;
8 
9 #[macro_use]
10 mod index;
11 
12 #[macro_use]
13 mod perftools;
14 
15 #[macro_use]
16 mod traits;
17 
18 #[cfg(test)]
19 #[macro_use]
20 pub(crate) mod test;
21 
22 // Hide implementation details.
23 mod algorithm;
24 mod cast;
25 mod config;
26 mod consume;
27 mod div128;
28 mod error;
29 mod format;
30 mod iterator;
31 mod mask;
32 mod num;
33 mod primitive;
34 mod pow;
35 mod result;
36 mod rounding;
37 mod sign;
38 mod table;
39 
40 #[cfg(feature = "format")]
41 mod skip_value;
42 
43 cfg_if! {
44 if #[cfg(feature = "correct")] {
45     #[macro_use]
46     mod sequence;
47 } else {
48     mod wrapped;
49 }}  // cfg_if
50 
51 // Publicly export everything with crate-visibility.
52 pub(crate) use self::algorithm::*;
53 pub(crate) use self::cast::*;
54 pub(crate) use self::consume::*;
55 pub(crate) use self::div128::*;
56 pub(crate) use self::iterator::*;
57 pub(crate) use self::mask::*;
58 pub(crate) use self::primitive::*;
59 pub(crate) use self::pow::*;
60 pub(crate) use self::rounding::*;
61 pub(crate) use self::sign::*;
62 pub(crate) use self::table::*;
63 
64 #[cfg(feature = "format")]
65 pub(crate) use self::skip_value::*;
66 
67 cfg_if! {
68 if #[cfg(feature = "correct")] {
69     pub(crate) use self::sequence::*;
70 } else {
71     pub(crate) use self::wrapped::*;
72 }}  // cfg_if
73 
74 // Publicly export config globally.
75 pub use self::config::*;
76 pub use self::error::*;
77 pub use self::format::*;
78 pub use self::num::*;
79 pub use self::result::*;
80 pub use self::traits::*;
81 
82 #[cfg(feature = "rounding")]
83 pub use self::rounding::RoundingKind;
84