diff options
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, |