diff options
Diffstat (limited to 'serde_v8/de.rs')
| -rw-r--r-- | serde_v8/de.rs | 6 |
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) |
