aboutsummaryrefslogtreecommitdiff
path: root/src/lexical/digit.rs
diff options
context:
space:
mode:
authorYi Kong <yikong@google.com>2020-08-31 01:25:28 +0800
committerYi Kong <yikong@google.com>2020-08-31 01:25:28 +0800
commitd600cb0f78a45ac8dee7efdc7e2e6a3193fcd380 (patch)
treec7ffe5daf0fac85734050e301d968a87bfac47aa /src/lexical/digit.rs
parente8a4b2f9b7ef3e3a1f064a9926e9d7b2c20c6221 (diff)
downloadserde_json-d600cb0f78a45ac8dee7efdc7e2e6a3193fcd380.tar.gz
Import 'serde_json' crate version 1.0.57
Bug: 163175424 Test: N/A Change-Id: I8e665db0617be60a7e3732acd21d33ddbbf7cefd
Diffstat (limited to 'src/lexical/digit.rs')
-rw-r--r--src/lexical/digit.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lexical/digit.rs b/src/lexical/digit.rs
new file mode 100644
index 0000000..882aa9e
--- /dev/null
+++ b/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)
+}