summaryrefslogtreecommitdiffstats
path: root/third_party/rust/serde_json/src/lexical/digit.rs
blob: 3d150a1afe7ffa76605dc797e0c345c9e9b6324c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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),
    }
}