summaryrefslogtreecommitdiff
path: root/serde_v8/tests/ser.rs
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2023-03-16 17:59:47 +0100
committerGitHub <noreply@github.com>2023-03-16 16:59:47 +0000
commitb99c431ac78810034ea57cc778bf57d627998aa9 (patch)
tree4398efcd8d3757e42a5cd4bdcee4ed9533103f43 /serde_v8/tests/ser.rs
parent1a3c2e2f1dc5add94b5b7ff4ba4c26df55c7a011 (diff)
feat(serde_v8): support BigInt serialization (#18225)
This commit enables serializing `v8::BigInt` to `num_bigint::BigInt` in Rust. Pre-requisite for sub upcoming feature work.
Diffstat (limited to 'serde_v8/tests/ser.rs')
-rw-r--r--serde_v8/tests/ser.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/serde_v8/tests/ser.rs b/serde_v8/tests/ser.rs
index d6de3a62a..b61a758f9 100644
--- a/serde_v8/tests/ser.rs
+++ b/serde_v8/tests/ser.rs
@@ -3,6 +3,7 @@ use serde::Serialize;
use serde_json::json;
use serde_v8::utils::js_exec;
use serde_v8::utils::v8_do;
+use serde_v8::BigInt;
#[derive(Debug, Serialize, PartialEq)]
struct MathOp {
@@ -138,6 +139,61 @@ sertest!(
);
sertest!(
+ ser_bigint_u8,
+ BigInt::from(num_bigint::BigInt::from(255_u8)),
+ "x === 255n"
+);
+sertest!(
+ ser_bigint_i8,
+ BigInt::from(num_bigint::BigInt::from(-128_i8)),
+ "x === -128n"
+);
+sertest!(
+ ser_bigint_u16,
+ BigInt::from(num_bigint::BigInt::from(65535_u16)),
+ "x === 65535n"
+);
+sertest!(
+ ser_bigint_i16,
+ BigInt::from(num_bigint::BigInt::from(-32768_i16)),
+ "x === -32768n"
+);
+sertest!(
+ ser_bigint_u32,
+ BigInt::from(num_bigint::BigInt::from(4294967295_u32)),
+ "x === 4294967295n"
+);
+sertest!(
+ ser_bigint_i32,
+ BigInt::from(num_bigint::BigInt::from(-2147483648_i32)),
+ "x === -2147483648n"
+);
+sertest!(
+ ser_bigint_u64,
+ BigInt::from(num_bigint::BigInt::from(9007199254740991_u64)),
+ "x === 9007199254740991n"
+);
+sertest!(
+ ser_bigint_i64,
+ BigInt::from(num_bigint::BigInt::from(-9007199254740991_i64)),
+ "x === -9007199254740991n"
+);
+sertest!(
+ ser_bigint_u128,
+ BigInt::from(num_bigint::BigInt::from(
+ 340282366920938463463374607431768211455_u128
+ )),
+ "x === 340282366920938463463374607431768211455n"
+);
+sertest!(
+ ser_bigint_i128,
+ BigInt::from(num_bigint::BigInt::from(
+ -170141183460469231731687303715884105728_i128
+ )),
+ "x === -170141183460469231731687303715884105728n"
+);
+
+sertest!(
ser_map,
{
let map: std::collections::BTreeMap<&str, u32> =