summaryrefslogtreecommitdiff
path: root/serde_v8/tests/magic.rs
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2022-05-13 12:53:13 +0200
committerGitHub <noreply@github.com>2022-05-13 12:53:13 +0200
commit67e5a850cc9b37b76638cfbac9dee08286a3469a (patch)
tree6e8f3f93ba54f572173fb9d0fb588173157c941c /serde_v8/tests/magic.rs
parent3e7afb8918fd0f6cedf839a7ebaae6aaee5e66ad (diff)
feat(serde_v8): bytes::Bytes support (#14412)
Diffstat (limited to 'serde_v8/tests/magic.rs')
-rw-r--r--serde_v8/tests/magic.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/serde_v8/tests/magic.rs b/serde_v8/tests/magic.rs
index 6d60efd66..3fc46abeb 100644
--- a/serde_v8/tests/magic.rs
+++ b/serde_v8/tests/magic.rs
@@ -129,6 +129,20 @@ fn magic_buffer() {
assert!(eq.is_true());
let eq = js_exec(scope, "t3.b[4] === 11");
assert!(eq.is_true());
+
+ // ZeroCopyBuf as bytes::Bytes
+ let v8_array = js_exec(scope, "new Uint8Array([1,2,3,4,5])");
+ let zbuf: serde_v8::ZeroCopyBuf =
+ serde_v8::from_v8(scope, v8_array).unwrap();
+ let buf: bytes::Bytes = zbuf.into();
+ assert_eq!(buf, bytes::Bytes::from_static(&[1, 2, 3, 4, 5]));
+ assert_eq!(buf, bytes::Bytes::from_static(&[1, 2, 3, 4, 5]));
+ assert_eq!(buf.slice(0..2), bytes::Bytes::from_static(&[1, 2]));
+ assert_eq!(buf.slice(2..), bytes::Bytes::from_static(&[3, 4, 5]));
+ // We're specifically testing that slices are preserved post-clone
+ #[allow(clippy::redundant_clone)]
+ let buf2 = buf.slice(2..).clone();
+ assert_eq!(buf2, bytes::Bytes::from_static(&[3, 4, 5]));
})
}