summaryrefslogtreecommitdiff
path: root/serde_v8/magic/string_or_buffer.rs
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-02-20 22:22:28 +0530
committerGitHub <noreply@github.com>2023-02-20 22:22:28 +0530
commitea7ca00c895c401af57a7201f3c41524333e7939 (patch)
treea238ea54a003111ab6c1b7b1cb14e0669cb4f7af /serde_v8/magic/string_or_buffer.rs
parenta16c11c5d10052c688ba4c2eca09fd1a225e395a (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.rs10
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,