David Tolnay
ccae35d92a
Do not emit deserialize_from if every field has deserialize_with
2017-12-10 22:55:28 -08:00
David Tolnay
61ca928325
Can never see getters in a deserialize_from
2017-12-10 22:46:46 -08:00
David Tolnay
a93f2ebff0
Enable deserialize_from in the test suite
2017-12-10 22:46:25 -08:00
David Tolnay
a45f1ae915
Remove unused dev-dependency of serde_test on deserialize_from
2017-12-10 22:02:11 -08:00
David Tolnay
9641978481
Hide deserialize_from
2017-12-10 21:55:07 -08:00
David Tolnay
ffd2017c6f
Use the default deserialize_from for Option<T>
...
The custom one was functionally identical to the default implementation given by
the Deserialize trait. If someone has benchmarks that the custom one performs
better, we can put it back.
2017-12-10 21:27:44 -08:00
Alexis Beingessner
34936be574
test deserialize_from
2017-12-04 13:29:03 -05:00
Alexis Beingessner
e354dd0c7f
Derive deserialize_from for tuples and structs
...
This adds a new "deserialize_from" feature (default off) that opts into
deriving deserialize_from with #[derive(Deserialize)].
2017-12-04 13:23:26 -05:00
Alexis Beingessner
bc221abb04
Augment builtin std/core Deserialize impls to implement deserialize_from
2017-12-04 13:23:26 -05:00
Alexis Beingessner
ab5e8780ab
Add deserialize_from to Deserialize
2017-12-04 13:23:26 -05:00
David Tolnay
0c34e06e51
Merge pull request #1106 from khuey/inlines
...
Inline various deserialization helper methods.
2017-12-02 15:57:07 -08:00
Kyle Huey
4a0c4e0c25
Mark size_hint::cautious as inline.
2017-12-01 14:31:52 -08:00
David Tolnay
8c34e0940f
Release 1.0.23
2017-11-29 22:26:32 -08:00
David Tolnay
eb6bf16a51
Revert "Catch wrong field names length in serde_test"
...
There are at least two reasonable things to expect the len field to
check: the length of the fields array passed to deserialize_struct, or
the number of field tokens. Even beyond these, in some cases it can be
useful to test deserialization with a bogus len to test how the
Deserialize impl reacts to an incorrect size_hint.
This reverts commit 436cafb0a3
which was
released in serde_test 1.0.20.
2017-11-29 22:21:05 -08:00
David Tolnay
797d049db5
Release 1.0.22
2017-11-29 20:01:43 -08:00
David Tolnay
d61a373f12
Merge pull request #1104 from serde-rs/abs
...
Fix missing absolute paths in deserialize_seq
2017-11-29 19:58:21 -08:00
David Tolnay
e0eea551b4
Fix missing absolute paths in deserialize_seq
2017-11-29 19:45:22 -08:00
David Tolnay
c650a92bf7
Update to compiletest-rs 0.3 to fix "every suggestion should have at least one span"
2017-11-24 17:12:58 -08:00
David Tolnay
f218f4d7bf
Release 1.0.21
2017-11-15 22:24:18 -08:00
Alex Shapiro
8c0a2015be
Fix error when deserializing untagged enum
...
Serde's `ContentDeserializer` and `ContentRefDeserializer`
cannot deserialize struct enum variant associated data when
that data is encoded as a sequence. This failure leads to
errors when decoding an enum nested in another untagged
enum. For example:
#[derive(Serialize, Deserialize)]
#[serde(untagged)]
enum Foo {
A(Bar),
}
#[derive(Serialize, Deserialize)]
enum Bar {
B{f1: String},
}
let data1 = Foo::A(Bar::B{f1: "Hello".into()});
let bytes = rmp_serde::to_vec(&data1).unwrap();
let data2 = rmp_serde::from_slice::<Foo>(&bytes).unwrap();
Deserializing fails with the error `Syntax("data did not
match any variant of untagged enum Foo")`, but the
underlying failure occurs when decoding the associated data
of `Bar::B`.
This pull request fixes the issue by allowing
`ContentDeserializer` and `ContentRefDeserializer` to
deserialize sequence-encoded struct enum variant data.
2017-11-15 21:56:33 -08:00
David Tolnay
4773863e3a
Release 1.0.20
2017-11-12 10:29:08 -08:00
David Tolnay
80cd9c7617
Merge pull request #1091 from serde-rs/fields-len
...
Catch wrong field names length in serde_test
2017-11-12 10:28:26 -08:00
David Tolnay
436cafb0a3
Catch wrong field names length in serde_test
2017-11-12 10:16:43 -08:00
David Tolnay
98bb02e9b4
Whitelist use of Debug in serde_test
2017-11-07 10:00:18 -08:00
David Tolnay
142439088c
Merge pull request #1086 from Marwes/better_errors
...
Print the contents of the expected token when a serialize assert fails
2017-11-07 09:53:58 -08:00
Markus Westerlind
ce81288235
Print the contents of the expected token when a serialize assert fails
...
Before
```
expected Token::Str but serialized as Str(“F9168C5E-CEB2-4FAA-B6BF-329BF39FA1E4")
```
After
```
expected Token::Str(“f9168c5e-ceb2-4faa-b6bf-329bf39fa1e4”) but serialized as Str(“F9168C5E-CEB2-4FAA-B6BF-329BF39FA1E4")
```
2017-11-07 14:22:42 +01:00
David Tolnay
88d5fe6bfd
Release 1.0.19
2017-11-06 23:50:24 -08:00
David Tolnay
9a2c352025
Rephrase serde_test::Configure documentation
2017-11-06 23:47:39 -08:00
David Tolnay
61c90cb8cb
Fix typo in serde_test::Configure documentation
2017-11-06 23:45:26 -08:00
David Tolnay
66e8b0a0cd
Merge pull request #1085 from serde-rs/internally-unit-struct
...
Allow internally tagged newtype variant containing unit struct
2017-11-06 23:44:29 -08:00
David Tolnay
9e7a3437d9
Allow internally tagged newtype variant containing unit struct
2017-11-06 23:32:36 -08:00
David Tolnay
7ac8d4f9ae
AsciiExt transition
2017-11-06 22:50:10 -08:00
David Tolnay
501bae42f5
Fix space in serde_test panic message
...
Without this, the message contains "representationsmust".
2017-11-06 22:46:28 -08:00
David Tolnay
7a0397451e
Allow serde_test::Configure to be dynamically sized
...
This is a more cautious choice for the trait. In the future we may need
a `whatever_ref(&self)` that works for !Sized types.
2017-11-06 22:40:09 -08:00
David Tolnay
16787318d1
Enable clippy_pedantic in serde_test
2017-11-06 22:31:35 -08:00
David Tolnay
f4ae0888c8
Run clippy on serde_test in Travis
2017-11-06 22:28:58 -08:00
David Tolnay
213071fe5c
Combine identical match arms in serde_test
...
As recommended by Clippy's match_same_arms lint.
2017-11-06 22:27:51 -08:00
David Tolnay
cfd26c6fda
Avoid cloning Copy types
...
As recommended by Clippy's clone_on_copy lint.
2017-11-06 22:26:55 -08:00
David Tolnay
23fa83941e
Whitelist float_cmp lint in serde_test
2017-11-06 22:26:01 -08:00
David Tolnay
88f5b9511d
Use ..
in patterns
...
As recommended by Clippy's unneeded_field_pattern lint.
2017-11-06 22:24:25 -08:00
David Tolnay
d537f1e1f0
Whitelist needless_pass_by_value lint
...
This lint has a false positive on trait methods with a default implementation.
2017-11-06 22:10:11 -08:00
David Tolnay
f6ac232580
Merge pull request #1084 from Marwes/serde_test_readable_
...
Add an API for making tests for readable/compact representations
2017-11-06 22:05:29 -08:00
Markus Westerlind
aad7a7987f
Add an example to the Configure trait
2017-11-06 10:35:22 +01:00
David Tolnay
b24ad76880
Merge pull request #1080 from xfix/patch-2
...
serde_test requires serde 1.0.16 to work
2017-11-05 15:03:28 -08:00
Konrad Borowski
5796f1a0f5
serde_test requires serde 1.0.16 to work
...
This is due to implementing is_human_readable which was
added in serde 1.0.16.
2017-11-05 23:51:01 +01:00
David Tolnay
6437167930
Merge pull request #1083 from serde-rs/ty-macro
...
Fix bounds for macro named the same as a type parameter
2017-11-05 12:56:57 -08:00
David Tolnay
f98daaa250
Merge pull request #1082 from serde-rs/borrow-variant
...
Allow borrow attribute on newtype variants
2017-11-05 12:20:40 -08:00
David Tolnay
b8a40551a2
Fix bounds for macro named the same as a type parameter
2017-11-05 12:18:39 -08:00
David Tolnay
40db31691a
Allow borrow attribute on newtype variants
2017-11-05 12:10:40 -08:00
David Tolnay
ab68132b1f
Release 1.0.18
2017-11-03 10:20:41 -07:00