diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2022-05-13 12:53:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-13 12:53:13 +0200 |
commit | 67e5a850cc9b37b76638cfbac9dee08286a3469a (patch) | |
tree | 6e8f3f93ba54f572173fb9d0fb588173157c941c /serde_v8/magic/buffer.rs | |
parent | 3e7afb8918fd0f6cedf839a7ebaae6aaee5e66ad (diff) |
feat(serde_v8): bytes::Bytes support (#14412)
Diffstat (limited to 'serde_v8/magic/buffer.rs')
-rw-r--r-- | serde_v8/magic/buffer.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/serde_v8/magic/buffer.rs b/serde_v8/magic/buffer.rs index 81f550bcb..da87c8b86 100644 --- a/serde_v8/magic/buffer.rs +++ b/serde_v8/magic/buffer.rs @@ -144,3 +144,19 @@ impl FromV8 for ZeroCopyBuf { Ok(Self::FromV8(V8Slice::from_v8(scope, value)?)) } } + +impl From<ZeroCopyBuf> for bytes::Bytes { + fn from(zbuf: ZeroCopyBuf) -> bytes::Bytes { + match zbuf { + ZeroCopyBuf::FromV8(v) => v.into(), + // WARNING(AaronO): potential footgun, but will disappear in future ZeroCopyBuf refactor + ZeroCopyBuf::ToV8(v) => v + .lock() + .unwrap() + .take() + .expect("ZeroCopyBuf was empty") + .into(), + ZeroCopyBuf::Temp(v) => v.into(), + } + } +} |