121 Commits

Author SHA1 Message Date
David Tolnay
ac1b25e91d
Improve error messages related to transparent 2018-05-20 21:55:48 -07:00
David Tolnay
7dba1e303d
Implement transparent serialize 2018-05-20 21:55:19 -07:00
David Tolnay
3d5141a2f1
Update to proc-macro2 0.4 2018-05-20 20:55:14 -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
f3f26796c7
Format with rustfmt 0.6.1 2018-05-10 09:11:19 -07:00
David Tolnay
67777eb585
Account for skip_serializing_if in tuple struct length 2018-05-08 11:49:37 -07:00
David Tolnay
b4e51fcc77
Respect skip_serializing in tuple structs and variants 2018-05-08 11:37:52 -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
62557731c3
Enable pedantic clippy lints in serde_derive 2018-05-07 11:03:09 -07:00
David Tolnay
3cd9d071c2
Fix adjacently tagged empty tuple variant or struct variant 2018-05-06 21:50:40 -07:00
David Tolnay
979df3427b
Support serializing enums containing flatten 2018-05-06 20:14:35 -07:00
David Tolnay
f263e3fcec
Format serde_derive generated where-clauses 2018-05-05 18:24:16 -07:00
David Tolnay
47676cdb49
Clean up references to Ident 2018-05-05 00:45:30 -07:00
David Tolnay
b78f434086
Pretend remote derives are not dead code 2018-05-02 14:23:59 -07:00
David Tolnay
6d1807bb4a
Improve Serialize of adjacently tagged newtype variants
The existing implementation was unnecessarily complicated.

    struct __AdjacentlyTagged<'__a> {
        data: (&'__a String,),
        phantom: _serde::export::PhantomData<AdjacentlyTagged>,
    }
    impl<'__a> _serde::Serialize for __AdjacentlyTagged<'__a> {
        fn serialize<__S>(
            &self,
            __serializer: __S,
        ) -> _serde::export::Result<__S::Ok, __S::Error>
        where
            __S: _serde::Serializer,
        {
            let (__field0,) = self.data;
            _serde::Serialize::serialize(__field0, __serializer)
        }
    }
    _serde::ser::SerializeStruct::serialize_field(
        &mut __struct,
        "content",
        &__AdjacentlyTagged {
            data: (__field0,),
            phantom: _serde::export::PhantomData::<AdjacentlyTagged>,
        },
    )?;

Instead the new implementation does simply:

    _serde::ser::SerializeStruct::serialize_field(
        &mut __struct,
        "content",
        __field0,
    )?;
2018-04-21 11:41:39 -07:00
David Tolnay
b37cf858ce
Remove unneeded quote_spanned that uses call_site 2018-04-21 11:33:39 -07:00
David Tolnay
6a8c39b2aa
More efficient try!() alternative 2018-04-21 10:53:13 -07:00
David Tolnay
9f38ca032e
Format with rustfmt 0.4.1 2018-04-12 23:04:47 -07:00
David Tolnay
24700ebeb6
Move associated type search into with_bounds 2018-04-12 22:46:53 -07:00
Osspial
fd14332729 Ignore skipped fields 2018-04-09 23:57:20 -04:00
Osspial
c413775574 Add partially-working where bounds for associated types 2018-04-09 23:22:18 -04:00
David Tolnay
d82a0cc5ff
Remove use of Span::located_at 2018-03-31 23:44:50 +02:00
David Tolnay
d2b65e0a5d
Prefer call site spans 2018-03-28 10:49:30 +02:00
Armin Ronacher
abeea89147 Fully qualify some calls in generated code and fix a bad comment 2018-03-20 13:35:16 +01:00
Armin Ronacher
58d52e784b Remove #[serde(repr = "map")] 2018-03-18 18:30:46 +01:00
Armin Ronacher
9e8cda4c37 Added basic not fully working FlatMapSerializer 2018-03-16 23:05:48 +01:00
Jan Michael Auer
6627540dd6 Added support basic deserialization in derive 2018-03-16 23:05:48 +01:00
Jan Michael Auer
5ae06bba49 Store flatten flag in container attributes 2018-03-16 23:05:47 +01:00
Jan Michael Auer
571bb8caed Derive serialization for serde(flatten) 2018-03-16 23:05:47 +01:00
Armin Ronacher
b4dbae250b Added support for serialization of structs as maps 2018-03-16 23:05:22 +01:00
David Tolnay
72ecb9064c
Fix parsing of qself in paths in attributes 2018-03-15 10:02:40 -07:00
David Tolnay
cc2558b0dc
Meaningful spans when invoking serializer trait methods 2018-01-10 19:22:07 -08:00
David Tolnay
63623eb3b3
Hygiene fixes 2018-01-09 22:22:08 -08:00
David Tolnay
b313f947dc
Use call_site as the span of unnamed member access 2018-01-09 20:28:23 -08:00
David Tolnay
16bc9fb99e
Address clippy lints in serde_derive 2018-01-09 19:40:34 -08:00
David Tolnay
34eaab00f7
Address clippy lints in serde_derive_internals 2018-01-09 19:40:33 -08:00
David Tolnay
ef4dd6c0ec
Update to syn 0.12 2018-01-09 19:05:08 -08:00
David Tolnay
ee75e6c0e9
Format with rustfmt-nightly 0.3.4 2017-12-23 20:17:52 -08:00
David Tolnay
15b2714058 Merge pull request #1015 from spinda/with-variant
implement (de)serialize_with for variants
2017-09-09 10:49:24 -07:00
Steven Fackler
2fe9a860cd Inform serializers about skipped fields.
Closes #960.
2017-09-05 21:55:33 -07:00
Michael Smith
5b815b7001
Implement serialize_with for variants
As discussed in #1013, serialize_with functions attached to variants receive an
argument for each inner value contained within the variant. Internally such a
function is wired up to the serializer as if the variant were a newtype variant.
2017-08-14 11:17:08 -07:00
David Tolnay
f36a1e0895
Inherit the visibility of remote struct definition 2017-07-25 23:52:06 -07:00
David Tolnay
cf1cdadc77
Fix some rustfmt screwups 2017-04-19 15:56:22 -07:00
David Tolnay
7a7d4c6364
Format in rfc style 2017-04-18 14:23:21 -07:00
David Tolnay
cdfd445528
Generate deserialize impls for identifiers 2017-04-14 21:53:48 -07:00
David Tolnay
f9535a4d67
Remove "item" terminology in favor of "container"
The docs have been using "container" for a long time.
2017-04-14 15:52:58 -07:00
David Tolnay
6d55501dab
Replace "codegen" with "derive" 2017-04-14 15:42:27 -07:00
David Tolnay
3f920f645c
License boilerplate 2017-04-13 17:34:42 -07:00