diff options
Diffstat (limited to 'vendor/serde_json/src/lexical/digit.rs')
-rw-r--r-- | vendor/serde_json/src/lexical/digit.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/vendor/serde_json/src/lexical/digit.rs b/vendor/serde_json/src/lexical/digit.rs new file mode 100644 index 0000000..3d150a1 --- /dev/null +++ b/vendor/serde_json/src/lexical/digit.rs @@ -0,0 +1,18 @@ +// Adapted from https://github.com/Alexhuszagh/rust-lexical. + +//! Helpers to convert and add digits from characters. + +// Convert u8 to digit. +#[inline] +pub(crate) fn to_digit(c: u8) -> Option<u32> { + (c as char).to_digit(10) +} + +// Add digit to mantissa. +#[inline] +pub(crate) fn add_digit(value: u64, digit: u32) -> Option<u64> { + match value.checked_mul(10) { + None => None, + Some(n) => n.checked_add(digit as u64), + } +} |