summaryrefslogtreecommitdiff
path: root/serde_v8/de.rs
diff options
context:
space:
mode:
Diffstat (limited to 'serde_v8/de.rs')
-rw-r--r--serde_v8/de.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/serde_v8/de.rs b/serde_v8/de.rs
index 6708daa4d..5293a705d 100644
--- a/serde_v8/de.rs
+++ b/serde_v8/de.rs
@@ -13,6 +13,7 @@ use crate::magic::transl8::visit_magic;
use crate::magic::transl8::FromV8;
use crate::magic::transl8::MagicType;
use crate::payload::ValueType;
+use crate::AnyValue;
use crate::BigInt;
use crate::ByteString;
use crate::DetachedBuffer;
@@ -135,6 +136,7 @@ impl<'de, 'a, 'b, 's, 'x> de::Deserializer<'de>
self.deserialize_f64(visitor)
}
}
+ ValueType::BigInt => Err(Error::UnsupportedType),
ValueType::String => self.deserialize_string(visitor),
ValueType::Array => self.deserialize_seq(visitor),
ValueType::Object => self.deserialize_map(visitor),
@@ -172,7 +174,6 @@ impl<'de, 'a, 'b, 's, 'x> de::Deserializer<'de>
{
self.deserialize_f64(visitor)
}
-
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value>
where
V: Visitor<'de>,
@@ -355,6 +356,9 @@ impl<'de, 'a, 'b, 's, 'x> de::Deserializer<'de>
magic::Value::MAGIC_NAME => {
visit_magic(visitor, magic::Value::from_v8(self.scope, self.input)?)
}
+ AnyValue::MAGIC_NAME => {
+ visit_magic(visitor, AnyValue::from_v8(self.scope, self.input)?)
+ }
_ => {
// Regular struct
let obj = v8::Local::<v8::Object>::try_from(self.input)