diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-02-20 22:22:28 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 22:22:28 +0530 |
commit | ea7ca00c895c401af57a7201f3c41524333e7939 (patch) | |
tree | a238ea54a003111ab6c1b7b1cb14e0669cb4f7af /serde_v8/magic/string_or_buffer.rs | |
parent | a16c11c5d10052c688ba4c2eca09fd1a225e395a (diff) |
perf: use ops for node:crypto ciphers (#17819)
Towards #17809
Diffstat (limited to 'serde_v8/magic/string_or_buffer.rs')
-rw-r--r-- | serde_v8/magic/string_or_buffer.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/serde_v8/magic/string_or_buffer.rs b/serde_v8/magic/string_or_buffer.rs index b7f6724b8..04ce08be2 100644 --- a/serde_v8/magic/string_or_buffer.rs +++ b/serde_v8/magic/string_or_buffer.rs @@ -24,6 +24,16 @@ impl Deref for StringOrBuffer { } } +impl<'a> TryFrom<&'a StringOrBuffer> for &'a str { + type Error = std::str::Utf8Error; + fn try_from(value: &'a StringOrBuffer) -> Result<Self, Self::Error> { + match value { + StringOrBuffer::String(s) => Ok(s.as_str()), + StringOrBuffer::Buffer(b) => std::str::from_utf8(b.as_ref()), + } + } +} + impl ToV8 for StringOrBuffer { fn to_v8<'a>( &mut self, |