diff options
| author | Jakub Łabor <jacob.labor@gmail.com> | 2022-10-03 12:37:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-03 12:37:18 +0200 |
| commit | 7a7767262a3b373cc9a3f6260a8ebd45da7edd1c (patch) | |
| tree | 2a0677f3a010e52cdb892808192049a0a3b6d90a /serde_v8/tests | |
| parent | eacd6a7f295a9a8ce4f4ca38cbf3e9905c4a5d02 (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.rs | 9 |
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) |
