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