summaryrefslogtreecommitdiff
path: root/serde_v8/tests
diff options
context:
space:
mode:
authorJakub Łabor <jacob.labor@gmail.com>2022-10-03 12:37:18 +0200
committerGitHub <noreply@github.com>2022-10-03 12:37:18 +0200
commit7a7767262a3b373cc9a3f6260a8ebd45da7edd1c (patch)
tree2a0677f3a010e52cdb892808192049a0a3b6d90a /serde_v8/tests
parenteacd6a7f295a9a8ce4f4ca38cbf3e9905c4a5d02 (diff)
chore(serde_v8): Use SeqAccess in MapObjectAccess to avoid intermediate allocation (#16137)
Existing implementation builds an intermediate vector of object keys when deserializing using `MapObjectAccess`. This logic is already handled by `SeqAccess` which can be used directly by `MapObjectAccess`.
Diffstat (limited to 'serde_v8/tests')
-rw-r--r--serde_v8/tests/de.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/serde_v8/tests/de.rs b/serde_v8/tests/de.rs
index c67b4012c..0f2c85d95 100644
--- a/serde_v8/tests/de.rs
+++ b/serde_v8/tests/de.rs
@@ -93,6 +93,7 @@ detest!(de_bool, bool, "true", true);
detest!(de_char, char, "'é'", 'é');
detest!(de_u64, u64, "32", 32);
detest!(de_string, String, "'Hello'", "Hello".to_owned());
+detest!(de_vec_empty, Vec<u64>, "[]", vec![0; 0]);
detest!(de_vec_u64, Vec<u64>, "[1,2,3,4,5]", vec![1, 2, 3, 4, 5]);
detest!(
de_vec_str,
@@ -107,7 +108,13 @@ detest!(
(123, true, ())
);
defail!(
- de_tuple_wrong_len,
+ de_tuple_wrong_len_short,
+ (u64, bool, ()),
+ "[123, true]",
+ |e| e == Err(Error::LengthMismatch)
+);
+defail!(
+ de_tuple_wrong_len_long,
(u64, bool, ()),
"[123, true, null, 'extra']",
|e| e == Err(Error::LengthMismatch)