From 7a7767262a3b373cc9a3f6260a8ebd45da7edd1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=81abor?= Date: Mon, 3 Oct 2022 12:37:18 +0200 Subject: 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`. --- serde_v8/tests/de.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'serde_v8/tests') 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, "[]", vec![0; 0]); detest!(de_vec_u64, Vec, "[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) -- cgit v1.2.3