summaryrefslogtreecommitdiffstats
path: root/src/de.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-03-14 10:29:39 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-11-21 12:20:18 +0100
commitf4424668191d1ae421127770eda1ad894dd01802 (patch)
treedc3e184343acf2c40ae1daae2c7f9ef94ef342a8 /src/de.rs
parente8cc94aaf6d44ad69cafe75d9a4a3944959103fe (diff)
Add support for different sized integers
This also enables support for 128 bit integers. Nothing is tested, though. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/de.rs')
-rw-r--r--src/de.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/de.rs b/src/de.rs
index 60fa4ea..8f55565 100644
--- a/src/de.rs
+++ b/src/de.rs
@@ -19,7 +19,11 @@ impl<'de> de::Deserializer<'de> for Value {
// Deserialize based on the underlying type
match self.kind {
ValueKind::Nil => visitor.visit_unit(),
- ValueKind::Integer(i) => visitor.visit_i64(i),
+ ValueKind::I8(i) => visitor.visit_i8(i),
+ ValueKind::I16(i) => visitor.visit_i16(i),
+ ValueKind::I32(i) => visitor.visit_i32(i),
+ ValueKind::I64(i) => visitor.visit_i64(i),
+ ValueKind::I128(i) => visitor.visit_i128(i),
ValueKind::Boolean(b) => visitor.visit_bool(b),
ValueKind::Float(f) => visitor.visit_f64(f),
ValueKind::String(s) => visitor.visit_string(s),
@@ -345,7 +349,11 @@ impl<'de> de::Deserializer<'de> for Config {
// Deserialize based on the underlying type
match self.cache.kind {
ValueKind::Nil => visitor.visit_unit(),
- ValueKind::Integer(i) => visitor.visit_i64(i),
+ ValueKind::I8(i) => visitor.visit_i8(i),
+ ValueKind::I16(i) => visitor.visit_i16(i),
+ ValueKind::I32(i) => visitor.visit_i32(i),
+ ValueKind::I64(i) => visitor.visit_i64(i),
+ ValueKind::I128(i) => visitor.visit_i128(i),
ValueKind::Boolean(b) => visitor.visit_bool(b),
ValueKind::Float(f) => visitor.visit_f64(f),
ValueKind::String(s) => visitor.visit_string(s),