Commit Graph

461 Commits

Author SHA1 Message Date
David Tolnay
690467cbe2
Release 1.0.98 2019-07-28 10:33:34 -07:00
David Tolnay
3ae2bee272
Release 1.0.97 2019-07-17 14:56:51 -07:00
David Tolnay
cf70c3fb05
Format with rustfmt 2019-06-09 2019-07-17 12:27:26 -07:00
David Tolnay
92e0b62c6b
Merge pull request 1526 from fanzeyi/try_from 2019-07-17 12:16:31 -07:00
David Tolnay
cf32a5b204
Release 1.0.96 2019-07-17 12:04:19 -07:00
David Tolnay
da05163d51
Release 1.0.95 2019-07-16 10:08:53 -07:00
David Tolnay
1c1eecabc0
Release 1.0.94 2019-06-27 10:55:12 -07:00
David Tolnay
4cb13b33e0
Release 1.0.93 2019-06-23 12:50:17 -07:00
David Tolnay
89c6a79b6e
Suppress a new pedantic lint 2019-05-31 21:25:36 -07:00
David Tolnay
cd0412bddc
Release 1.0.92 2019-05-31 13:44:01 -07:00
Jonas Platte
e4e110e28f Fix a compile error in derive(Deserialize) with no_std + alloc 2019-05-31 22:16:40 +02:00
David Tolnay
0726623389
Ignore bare_trait_objects lint to support old compilers 2019-05-31 11:34:18 -07:00
Zeyi Fan
4c29eea790 add attribute try_from 2019-05-11 23:31:24 -07:00
David Tolnay
6dd2b4607f
Switch to SPDX 2.1 license expression 2019-05-09 15:21:20 -07:00
David Tolnay
5cc3902ab9
Release 1.0.91 2019-05-06 16:27:04 -07:00
David Tolnay
79a20e9e33
Resolve option_map_unwrap_or_else lint 2019-04-10 22:57:47 -07:00
David Tolnay
0be7f36d51
Release 1.0.90 2019-04-03 09:41:38 -07:00
David Tolnay
4c6cb6e359
Match on serde_path to handle Some(path) and None
I find this a bit easier to follow than map + unwrap_or_else.
2019-04-03 09:40:25 -07:00
David Tolnay
82bde8d166
Format with rustfmt 2019-03-27 2019-04-03 09:40:12 -07:00
David Tolnay
f3c6b9f05a
Simplify signature of Container::serde_path 2019-04-03 09:18:45 -07:00
David Tolnay
2f1945eaf2
Refer directly to serde_path in Deserialize impl
This makes it not a breaking change if we later want to eliminate
the `use #serde_path as _serde;` line.
2019-04-03 09:16:21 -07:00
Sean Griffin
b4d8a55b2a Change serde_path to crate
Also changed the generated code to have at least one thing refer to the
path directly, rather than via `use` -- This shows that the impl *can*
work without `use`, but doesn't actually do all the work to remove the
`use` lines unless we decide we need this feature to work on the 2015
edition
2019-03-28 11:42:50 -06:00
Sean Griffin
0e6ce8fa50 Fix for Rust 1.15 2019-03-20 14:31:49 -06:00
Sean Griffin
a295c38ba3 Allow #[serde(serde_path = "...")] to override extern crate serde
This is intended to be used by other crates which provide their own proc
macros and use serde internally. Today there's no consistent way to put
`#[derive(Deserialize)]` on a struct that consistently works, since
crates may be using either `features = ["derive"]` or relying on
`serde_derive` separately.

Even if we assume that everyone is using `features = ["derive"]`,
without this commit, any crate which generates
`#[derive(serde::Deserialize)]` forces its consumers to put `serde` in
their `Cargo.toml`, even if they aren't otherwise using serde for
anything.

Examples of crates which suffer from this in the real world are
tower-web and swirl.

With this feature, it's expected that these crates would have `pub
extern crate serde;` in some accessible path, and add
`#[serde(serde_path = "that_crate::wherever::serde")]` anywhere they
place serde's derives. Those crates would also have to derive
`that_crate::whatever::serde::Deserialize`, or `use` the macros
explicitly beforehand.

The test for this is a little funky, as it's testing this in a way that
is not the intended use case, or even one we want to support. It has its
own module which re-exports all of serde, but defines its own
`Serialize` and `Deserialize` traits. We then test that we generated
impls for those traits, instead of serde's. The only other way to test
this would be to create a new test crate which does not depend on serde,
but instead depends on `serde_derive` and a third crate which publicly
re-exports serde. This feels like way too much overhead for a single
test case, hence the funky test given.

I didn't see anywhere in this repo to document this attribute, so I
assume the docs will have to be done as a separate PR to a separate
repo.

Fixes #1487
2019-03-18 15:20:19 -06:00
David Tolnay
295730ba1e
Clippy cyclomatic complexity lint has been renamed 2019-03-09 16:36:51 -08:00
David Tolnay
b811588fa0
Release 1.0.89 2019-02-28 17:09:10 -08:00
David Tolnay
58bbaa9e80
Refer to Option through serde::export in generated code 2019-02-28 16:36:17 -08:00
Thomas Eizinger
2ea43c8986 Don't generate code with redundant closures
Fixes #1491.
2019-02-28 17:30:21 +11:00
David Tolnay
64c483cf80
Release 1.0.88 2019-02-15 19:55:50 -08:00
David Tolnay
ef9028d798
Remove conflict between flatten and skip 2019-02-15 18:39:15 -08:00
David Tolnay
1668cd19d3
Eliminate try!(..).value to improve rustfmt'd code
Rustfmt bails out on the original code, leaving it all on one line.
2019-02-13 09:13:50 -08:00
David Tolnay
134f268cee
Release 1.0.87 2019-02-04 07:08:41 +01:00
David Tolnay
c473633676
Format with rustfmt 2018-12-10 2019-02-04 00:39:32 +01:00
David Tolnay
6a3a82007c
Merge pull request #1474 from jwillbold/master
Fixed #1468, flattened struct fields made structs ignore their tag
2019-02-03 15:37:44 -08:00
Johannes Willbold
1d6ef76cfb Fixed #1468, flattened struct fields made structs ignore their tag 2019-02-03 02:09:37 +01:00
David Tolnay
c8e3959435
Release 1.0.86 2019-02-01 21:07:19 -08:00
David Tolnay
fa854a2108
Format with rustfmt 2018-12-10 2019-02-01 21:04:08 -08:00
David Tolnay
bb99b31eb0
Release 1.0.85 2019-01-18 22:36:49 -08:00
David Tolnay
84397183f3
Fix spelling of alises -> aliases 2019-01-18 22:34:23 -08:00
David Tolnay
aeae265777
Simpler way to get single element from vector 2019-01-18 22:33:43 -08:00
David Tolnay
a9c5df5da1
Remove unused Clone on attr::Attr 2019-01-18 22:31:25 -08:00
Lymia Aluysia
8bbc2995ca
Fix clippy lint in serde_derive 2019-01-15 11:35:26 -06:00
Lymia Aluysia
7d3872df57
Fix compilation on Rust 1.15.x 2019-01-15 11:29:55 -06:00
Lymia Aluysia
1ed228b92b
Implements alias annotation and allow multiple deserialization renames. 2019-01-15 11:15:01 -06:00
David Tolnay
fea4e8e5b6
Release 1.0.84 2018-12-31 23:45:34 -05:00
David Tolnay
11cc7014b3
Set all doc tests to 2018 edition 2018-12-31 23:22:13 -05:00
David Tolnay
054ab1adaf
Update serde documentation to 2018 edition 2018-12-31 23:22:11 -05:00
David Tolnay
2f36b26a5c
Clarify that these lints are ignored 2018-12-31 22:49:38 -05:00
David Tolnay
9b4edb3a1d
Address match_ref_pats lint in serde_derive 2018-12-31 22:47:48 -05:00
David Tolnay
b8adc5ffa2
Update name of stutter lint in serde_derive 2018-12-31 22:47:18 -05:00