diff options
Diffstat (limited to 'third_party/rust/serde_json/src/lexical/digit.rs')
-rw-r--r-- | third_party/rust/serde_json/src/lexical/digit.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/third_party/rust/serde_json/src/lexical/digit.rs b/third_party/rust/serde_json/src/lexical/digit.rs new file mode 100644 index 0000000000..882aa9eef2 --- /dev/null +++ b/third_party/rust/serde_json/src/lexical/digit.rs @@ -0,0 +1,15 @@ +// 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> { + value.checked_mul(10)?.checked_add(digit as u64) +} |