1 | // The code in this module is derived from the `lexical` crate by @Alexhuszagh |
2 | // which the author condensed into this minimal subset for use in serde_json. |
3 | // For the serde_json use case we care more about reliably round tripping all |
4 | // possible floating point values than about parsing any arbitrarily long string |
5 | // of digits with perfect accuracy, as the latter would take a high cost in |
6 | // compile time and performance. |
7 | // |
8 | // Dual licensed as MIT and Apache 2.0 just like the rest of serde_json, but |
9 | // copyright Alexander Huszagh. |
10 | |
11 | //! Fast, minimal float-parsing algorithm. |
12 | |
13 | // MODULES |
14 | pub(crate) mod algorithm; |
15 | mod bhcomp; |
16 | mod bignum; |
17 | mod cached; |
18 | mod cached_float80; |
19 | mod digit; |
20 | mod errors; |
21 | pub(crate) mod exponent; |
22 | pub(crate) mod float; |
23 | mod large_powers; |
24 | pub(crate) mod math; |
25 | pub(crate) mod num; |
26 | pub(crate) mod parse; |
27 | pub(crate) mod rounding; |
28 | mod shift; |
29 | mod small_powers; |
30 | |
31 | #[cfg (limb_width_32)] |
32 | mod large_powers32; |
33 | |
34 | #[cfg (limb_width_64)] |
35 | mod large_powers64; |
36 | |
37 | // API |
38 | pub use self::parse::{parse_concise_float, parse_truncated_float}; |
39 | |