176 Commits

Author SHA1 Message Date
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
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
fa854a2108
Format with rustfmt 2018-12-10 2019-02-01 21:04:08 -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
794ee15386
Merge pull request #1448 from motu42/master
Allow #[serde(tag="...")] on structs
2018-12-27 19:47:28 -05:00
David Tolnay
c6c1d8fa86
Work around deprecation of str::trim_left_matches 2018-12-27 15:20:32 -05:00
Johannes Willbold
414fd694c0 Allowed serde(tag="...") on structs
Added test test_internally_tagged_struct
Renamed EnumTag to TagType as it now also used for structs 
Modified serialize_struct_as_struct
2018-12-27 20:18:36 +01:00
David Tolnay
5c24f0f0f3
Clean up some indentation that isn't visible to rustfmt 2018-12-10 22:31:39 -08:00
David Tolnay
16daba8ea9
Format with rustfmt 2018-11-30 2018-12-10 22:09:34 -08:00
David Tolnay
85fbd8793a
Support default attr in deserialize_seq_in_place 2018-12-10 22:09:31 -08:00
Tim Ryan
385a385c62 Adds support for the default attr to tuple variants in enums. 2018-12-11 00:02:50 -05:00
hcpl
034db9f20f Improve overall quality of compile_error! errors
Also updates UI tests.
2018-11-30 02:51:49 +02:00
hcpl
8f3f073017 Use more spans for error messages 2018-11-25 16:44:41 +02:00
David Tolnay
58b3af4c29
Copyright/license headers
The following changes are included:

- Delete per-file license notices at the top of each file.
- Delete the first paragraph of LICENSE-MIT (an inaccurate
  pseudo-copyright line), leaving only the text of the MIT license.

Nothing about the license of Serde code has changed, only our
understanding of how to correctly communicate that license has changed.

This mirrors an equivalent change being applied in the rust-lang/rust
repository.
2018-11-24 15:53:09 -08:00
David Tolnay
9afc5fef11
Format with rustfmt 1.0.0-nightly 2018-11-21 01:13:17 -08:00
David Tolnay
53fe1b328e
Format with rustfmt 0.99.4 2018-09-11 23:00:08 -07:00
roblabla
dcd2232f69 Enforce unit struct for #[serde(other)] 2018-09-11 17:12:37 +00:00
roblabla
8cc7e6aa90 Implement #serde(other) on enum variant 2018-09-10 15:12:15 +00:00
David Tolnay
dc4bb0bf08
Trim the r# from raw identifiers in user-facing strings 2018-08-22 20:50:29 -04:00
David Tolnay
cbfdba3826
Use rustfmt to wrap and format comments 2018-08-14 22:32:27 -07:00
David Tolnay
28db9d4989
Format with rustfmt 0.99.1 2018-08-06 22:40:28 -07:00
Josh Chase
41dcb969e8 Shut clippy up 2018-06-28 11:12:27 -04:00
Josh Chase
6dbaea34ba Suppress 'extern crate' warning for rust 2018 2018-06-28 10:51:57 -04:00
David Tolnay
06dcbbbaba
Format with rustfmt 0.7.0 2018-05-22 21:27:37 -07:00
David Tolnay
ac1b25e91d
Improve error messages related to transparent 2018-05-20 21:55:48 -07:00
David Tolnay
0a4d536253
Implement transparent deserialize 2018-05-20 21:55:20 -07:00
David Tolnay
3d5141a2f1
Update to proc-macro2 0.4 2018-05-20 20:55:14 -07:00
David Tolnay
656ea96c65
Remove reminders about flatten in a sequence 2018-05-20 12:42:40 -07:00
David Tolnay
5302482596
Simplify deserialize_seq_in_place 2018-05-20 12:40:35 -07:00
David Tolnay
7ada27014d
Track field index in internal AST 2018-05-20 12:40:28 -07:00
David Tolnay
4fa2a50f62
Format with rustfmt 0.7.0 2018-05-19 17:33:30 -07:00
David Tolnay
16d1265e17
Fix generated code for deserializing untagged newtype variant 2018-05-19 17:20:14 -07:00
David Tolnay
f3f26796c7
Format with rustfmt 0.6.1 2018-05-10 09:11:19 -07:00
David Tolnay
368961e961
Support deserializing flattened untagged enum 2018-05-10 08:33:47 -07:00
David Tolnay
4ad140ea70
Improve error for struct deserialized from array that is too short 2018-05-08 12:03:35 -07:00
David Tolnay
be7fe2a5eb
Introduce bound attribute on enum variants 2018-05-08 11:16:10 -07:00
David Tolnay
c4181f46be
Respect variant skip attribute in inferred bounds 2018-05-07 21:30:00 -07:00
David Tolnay
7e3efaf6c5
Improve error when a 'de lifetime parameter already exists 2018-05-07 21:15:44 -07:00
David Tolnay
12fe42ed45
Support empty adjacently tagged enum 2018-05-07 21:02:42 -07:00
David Tolnay
0025ef9aba
Detect deserialize on a struct ending in dynamically sized slice 2018-05-07 11:52:59 -07:00
David Tolnay
62557731c3
Enable pedantic clippy lints in serde_derive 2018-05-07 11:03:09 -07:00
David Tolnay
6475e73b05
Less horrible logic for missing fields that unconditionally return error 2018-05-06 22:20:35 -07:00
David Tolnay
94b857057b
Support deserializing enums containing flatten 2018-05-06 20:41:02 -07:00
David Tolnay
aac1c65033
Simplify implementation of flattened internally tagged enum
The fact that the tag entry is consumed was only observable if there is
a later flattened map field, at which point the behavior is already
confusing anyway.

    #[derive(Deserialize)]
    struct Example {
        #[serde(flatten)]
        a: InternallyTagged,
        #[serde(flatten)]
        rest: BTreeMap<String, Value>,
    }

Before this simplification the map would receive all the fields of the
internally tagged enum but not its tag, after it receives all the fields
including the tag.
2018-05-05 22:30:46 -07:00
David Tolnay
d8120e19bc
Support deserializing a flattened internally tagged enum 2018-05-05 21:52:16 -07:00
David Tolnay
f263e3fcec
Format serde_derive generated where-clauses 2018-05-05 18:24:16 -07:00