diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2022-04-24 09:28:46 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-24 09:28:46 -0300 |
commit | 4b7d306a198d020ce2b6fa1c758c71714bfd036c (patch) | |
tree | 10de79efbbd30107d0f04538c351b0765ec97a06 /serde_v8/de.rs | |
parent | 2eb8c3b82fd54027c35c87ccc94797e34e2e95fd (diff) |
perf(serde_v8): zero-copy StringOrBuffer (#14381)
Diffstat (limited to 'serde_v8/de.rs')
-rw-r--r-- | serde_v8/de.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/serde_v8/de.rs b/serde_v8/de.rs index fb8b8edcf..54a3ffa5c 100644 --- a/serde_v8/de.rs +++ b/serde_v8/de.rs @@ -7,7 +7,9 @@ use crate::keys::{v8_struct_key, KeyCache}; use crate::magic::transl8::FromV8; use crate::magic::transl8::{visit_magic, MagicType}; use crate::payload::ValueType; -use crate::{magic, Buffer, ByteString, DetachedBuffer, U16String}; +use crate::{ + magic, Buffer, ByteString, DetachedBuffer, StringOrBuffer, U16String, +}; pub struct Deserializer<'a, 'b, 's> { input: v8::Local<'a, v8::Value>, @@ -359,6 +361,9 @@ impl<'de, 'a, 'b, 's, 'x> de::Deserializer<'de> U16String::MAGIC_NAME => { visit_magic(visitor, U16String::from_v8(self.scope, self.input)?) } + StringOrBuffer::MAGIC_NAME => { + visit_magic(visitor, StringOrBuffer::from_v8(self.scope, self.input)?) + } magic::Value::MAGIC_NAME => { visit_magic(visitor, magic::Value::from_v8(self.scope, self.input)?) } |