Commit Graph

260 Commits

Author SHA1 Message Date
David Tolnay
855f3d99bb Do not release any more 0.7 releases from master 2016-07-15 17:00:09 -07:00
Oliver Schneider
42c41922ce
adjust tests for new interface 2016-07-15 12:59:30 +02:00
Oliver Schneider
984181c558
Merge remote-tracking branch 'serde/master' into map_seq_ser 2016-07-15 10:59:46 +02:00
David Tolnay
7220029055
Use cargo override instead of relative paths
This makes it possible to use `cargo clone` + `cargo build`.
2016-07-15 01:17:23 -07:00
Oliver Schneider
16ba32dbe1
stateful map/seq serialization 2016-07-14 15:36:47 +02:00
Oliver Schneider
60938913b2
face -> palm 2016-07-13 19:18:01 +02:00
Oliver Schneider
26528fbbb4
silence lint about a: ref a patterns 2016-07-12 16:53:38 +02:00
Oliver Schneider
6adcaa55e5
json needs more info 2016-07-12 16:53:20 +02:00
Oliver Schneider
fb575225bc
simplify! 2016-07-12 16:16:48 +02:00
Oliver Schneider
3766633f4a
adjust codegen to work with the revamped map/seq serializer 2016-07-12 15:44:19 +02:00
David Tolnay
a070de28e2
Update syntex to 0.38 2016-07-09 11:37:01 -07:00
David Tolnay
97bc1e08e7
Release 0.7.13 2016-07-05 20:06:10 -07:00
David Tolnay
f25e6d3ea9
Close the seq before failing on invalid length
Equivalent to what 0f9a930 does for maps.
2016-07-05 10:08:36 -07:00
David Tolnay
431cbe48b7 Merge pull request #422 from serde-rs/missing
Close the map before checking for missing fields
2016-07-05 07:11:03 -07:00
David Tolnay
0f9a930c4f
Close the map before checking for missing fields 2016-07-05 01:42:38 -07:00
David Tolnay
1a449bb3d0
Invalid-length when enum seq is too short 2016-07-05 01:35:20 -07:00
David Tolnay
149c87d7c2
Record expansion info 2016-07-03 10:53:33 -07:00
David Tolnay
d450de1482
Update syntex to 0.37 2016-07-02 20:20:44 -07:00
David Tolnay
dc8d209f29
Remove filter no longer necessary for rustc >=1.7 2016-07-01 22:34:15 -07:00
David Tolnay
2d5a26dfc0
Rename serde_internals to serde_codegen_internals 2016-06-30 19:53:57 -07:00
David Tolnay
c6b6e2a5d9
Rename serde_item to serde_internals 2016-06-30 19:42:55 -07:00
Erick Tryzelaar
5941f1d071 Version bump the syntex stack 2016-06-22 20:19:47 -07:00
David Tolnay
5c6a0e12e9
Factor attr parsing into serde_item crate 2016-06-19 20:15:49 -07:00
David Tolnay
882d130e19
Test duplicates within a single attribute 2016-06-16 23:45:34 -07:00
David Tolnay
5f84e601b6
Add explanation of ignored errors in attr.rs 2016-06-16 23:25:46 -07:00
David Tolnay
ac69524258
Gather attrs at the beginning 2016-06-15 02:38:47 -07:00
David Tolnay
28589620f6
Error on duplicate attributes 2016-06-14 20:39:21 -07:00
Homu
b838651ac9 Auto merge of #378 - dtolnay:str, r=oli-obk
Better error when deriving Deserialize for struct containing &str

Fixes #360. The error looks like this:

```rust
#[derive(Serialize, Deserialize)]
struct Test<'a> {
    s: &'a str,
}
```

```
src/main.rs:6:5: 6:15 error: Serde does not support deserializing fields of type &str; consider using String instead
src/main.rs:6     s: &'a str,
                  ^~~~~~~~~~
```
2016-06-14 00:49:26 +09:00
David Tolnay
c5f606f10f
Remove unnecessary Syntexes 2016-06-12 15:50:45 -07:00
David Tolnay
c21bea8b30
Better error when deriving Deserialize for struct containing &str 2016-06-11 21:32:53 -07:00
Erick Tryzelaar
48da62ed07 Updating to rustc 1.11.0-nightly (7d2f75a95 2016-06-09) 2016-06-11 08:19:51 -07:00
David Tolnay
3119cc8857
Simplify implementation of #[serde(default=...)] 2016-06-09 23:21:42 -07:00
David Tolnay
bb059b97c0
Release 0.7.9 2016-06-09 20:16:49 -07:00
David Tolnay
c716c4e261
Use AsRef to accept paths in serde_codegen::expand 2016-06-09 11:23:43 -07:00
David Tolnay
3d2e3beafe
Add serde_codegen::expand to avoid public Syntex dependency 2016-06-09 11:23:43 -07:00
David Tolnay
58fa302007
Release 0.7.8 2016-06-06 10:13:52 -07:00
Homu
bf33daf124 Auto merge of #354 - dtolnay:attr, r=oli-obk
Fix attributes canceling each other

Fixes #353.
2016-06-06 18:08:20 +09:00
David Tolnay
bdffaf3ea1
Re-enable clippy lint "useless_let_if_seq"
This reverts commit 4e6cd2d63f.
2016-06-05 13:01:22 -07:00
David Tolnay
01dfad6705
Fix attributes canceling each other 2016-06-05 11:40:30 -07:00
David Tolnay
2e06786262
Remove unnecessary clones 2016-06-05 11:23:01 -07:00
David Tolnay
578f34ecaf
Use "bound" attribute instead of "where" 2016-06-05 11:17:43 -07:00
David Tolnay
45c51d3198 Fix build on 1.5.0 which does not have Vec::as_slice 2016-06-04 16:53:45 -07:00
David Tolnay
bd40830905 Do not generate bounds from recursive types 2016-06-04 16:12:01 -07:00
David Tolnay
4e6cd2d63f Disable clippy lint "useless_let_if_seq" 2016-06-04 15:48:44 -07:00
David Tolnay
2256a04926 Address clippy lint "ptr_arg" 2016-06-04 15:48:44 -07:00
David Tolnay
660ea7bd7b Attribute for handwritten where clauses 2016-06-04 15:48:42 -07:00
Oliver Schneider
5c2cf5778f
also publish the .in file used by the build script 2016-06-01 13:09:43 +02:00
Oliver Schneider
96cd910c92
undo the breaking change introduced in 0.7.6 2016-06-01 11:08:59 +02:00
Homu
e0bd57d63c Auto merge of #347 - erickt:master, r=erickt
Add "include" to Cargo.toml files

This filters out junk files from the crates.

Closes #331.
2016-05-30 23:23:57 +09:00
Erick Tryzelaar
2c69ccdca4 Add the build script to the Cargo include section 2016-05-30 07:23:09 -07:00
Erick Tryzelaar
66eddd4d9b Add "include" to Cargo.toml files
This filters out junk files from the crates.

Closes #331.
2016-05-30 07:00:13 -07:00
Manish Goregaokar
379c9e7148
Rustup too rustc 1.11.0-nightly (7746a334d 2016-05-28) 2016-05-30 14:01:57 +05:30
David Tolnay
938f42faf6 Support (de)serialize_with in tuples 2016-05-19 10:53:38 -07:00
David Tolnay
f1b4072444 Strip more references 2016-05-18 23:48:56 -07:00
David Tolnay
7d2423e856 Reduce code duplication in Deserialize generator
This combines deserialize_newtype_struct, deserialize_tuple_struct,
and deserialize_tuple_variant into a single method deserialize_tuple,
as well as deserialize_struct and deserialize_struct_variant into a
single method deserialize_struct. No behavior changes.
2016-05-15 13:32:54 -07:00
David Tolnay
004dcaec3b Remove unused imports and needless borrows 2016-05-13 10:47:09 -07:00
Erick Tryzelaar
41142d41ee Merge pull request #319 from dtolnay/release
Release 0.7.5
2016-05-12 09:30:41 -07:00
David Tolnay
3ad276944a Do not depend on multiple syntex versions 2016-05-11 09:52:28 -07:00
David Tolnay
709ac64dfc Release 0.7.5 2016-05-11 09:36:30 -07:00
Homu
a9a4b2d8e2 Auto merge of #293 - dtolnay:duplicate, r=oli-obk
feat(codegen): Detect repeated struct field when deserializing

Addresses #59. Let me know whether you think we need an escape hatch to opt out of this check.
2016-05-11 19:44:34 +09:00
Oliver Schneider
7374ac499d Merge pull request #311 from dtolnay/deserialize_with
Field with deserialize_with should not implement Deserialize
2016-05-11 11:48:19 +02:00
David Tolnay
eeb4efc19c feat(codegen): Detect repeated struct field when deserializing 2016-05-10 09:52:51 -07:00
David Tolnay
76b70455ec Field with deserialize_with should not implement Deserialize 2016-05-10 09:50:32 -07:00
David Tolnay
f43c8a6267 Prefix type parameters and lifetimes with double underscore 2016-05-10 09:12:38 -07:00
David Tolnay
f4414bfc14 Reduce dependence on type inference 2016-05-07 15:25:13 -07:00
Erick Tryzelaar
8378267b9b Merge pull request #303 from antrik/rustup
Update for latest libsyntax changes
2016-05-03 22:07:38 -07:00
Olaf Buddenhagen
0e9d45da60 Bump version to 0.7.4
Dependencies were updated in previous commit. (For supporting current
Nightly Rust.)

I guess this shouldn't affect our client interface -- which is why these
dependency bumps only get patch level version number updates for Serde,
I presume?
2016-05-02 07:26:16 +02:00
Olaf Buddenhagen
6e7a75c859 Adapt for parser::PathParsingMode interface change in libsyntax
This was renamed upstream in
6c44bea644

It's an incompatible change requiring new versions of syntex, aster, and
quasi.
2016-05-02 07:25:29 +02:00
Olaf Buddenhagen
0ff91e4451 Adapt for removal of old interfaces in libsyntax
9108fb7bae
dropped the `map()` method (among other things) -- so we need to adapt
our code.

This change should be backwards-compatible.
2016-05-02 07:08:43 +02:00
David Tolnay
305fab7c16 fix(codegen): Support extern crate serde not in toplevel module 2016-04-25 09:58:01 -07:00
Erick Tryzelaar
a959073a81 Merge pull request #296 from erickt/master
Fix a warning, bump the versions
2016-04-25 07:58:23 -07:00
Erick Tryzelaar
7bd87feb62 Fix a warning, bump the versions 2016-04-19 12:43:57 -05:00
David Tolnay
fd3c15fb68 fix(codegen): Discard type defaults from impl generics 2016-04-19 10:28:43 -07:00
David Tolnay
886670134a feat(codegen): Infer Default and Deserialize bounds correctly 2016-04-13 21:56:12 -07:00
Erick Tryzelaar
65e36647f5 Merge pull request #283 from dtolnay/defaultskip
fix(codegen): Take into account default=... when skip_deserializing
2016-04-13 08:43:10 -07:00
Erick Tryzelaar
a4de662adb Fix doc links 2016-04-13 08:11:02 -07:00
David Tolnay
ff02b0c741 fix(codegen): Take into account default=... when skip_deserializing 2016-04-12 23:42:24 -07:00
Erick Tryzelaar
6b3958d5fc Merge pull request #282 from erickt/doc
Fix generating serde_{codegen,macros} documentation
2016-04-12 17:08:15 -07:00
Erick Tryzelaar
dbba537b66 Merge branch 'skip_deserializing' of https://github.com/dtolnay/serde into dtolnay-skip_deserializing 2016-04-12 08:52:25 -07:00
Erick Tryzelaar
bc2324fba7 Merge branch 'feature/inhibit' of https://github.com/dtolnay/serde into dtolnay-feature/inhibit 2016-04-12 08:41:02 -07:00
Erick Tryzelaar
9082b75e75 Fix generating serde_{codegen,macros} documentation 2016-04-12 08:36:02 -07:00
Erick Tryzelaar
4b9f751d74 Merge pull request #264 from dtolnay/docs/links
Fix broken documentation links in Cargo.toml
2016-04-12 08:32:14 -07:00
Erick Tryzelaar
1c5d83889c Merge remote-tracking branch 'remotes/origin/master' into renamed_missing_field 2016-04-12 08:24:34 -07:00
David Tolnay
87393b61bb feat(codegen) skip_deserializing 2016-04-10 20:29:37 -07:00
Erick Tryzelaar
a84b6aaedd Bump syntex/aster/quasi version 2016-04-10 19:54:54 -07:00
Joe Wilm
4af850431c Fix deserialize_with in module with Result alias
Result<T, E> aliases usually provide one or both of `T` and `E`. This
would cause an error when using deserialize_with:

    error: wrong number of type arguments: expected 1, found 2

which unhelpfully just pointed to `#[derive(Deserialize)]`
2016-04-05 15:53:51 -07:00
Anthony Ramine
c7c5b50f35 Silence unused_variables warning with empty enums
Deriving Serialize or Deserialize on Void-like enums triggered an
unused_variables warning.
2016-04-03 14:31:04 +02:00
Oliver Schneider
d9b6feef19 pass the renamed deserialize field name to missing_field 2016-03-30 17:29:27 +02:00
Erick Tryzelaar
9785646246 feat(cargo): Update syntex 2016-03-16 23:52:21 -07:00
David Tolnay
fb18a5cc56 Fix broken documentation links in Cargo.toml 2016-03-06 19:28:26 -08:00
David Tolnay
eaff73a541 Where clause for generic types only 2016-02-29 21:53:58 -08:00
David Tolnay
19ec8bbdb9 feat(codegen): Inhibit generic bounds if skip_serializing
The generated code for a struct like:

    struct Test<A, B, C> {
        a: X<A>
        #[serde(skip_serializing)]
        b: B
        #[serde(serialize_with="...")]
        c: C
    }

Used to be:

    impl<A, B, C> Serialize for Test<A, B, C>
        where A: Serialize,
              B: Serialize,
              C: Serialize,
    { ... }

Now it is:

    impl<A, B, C> Serialize for Test<A, B, C>
        where X<A>: Serialize,
    { ... }

Both `skip_serializing` and `serialize_with` mean the type does not need to
implement `Serialize`.
2016-02-28 19:11:51 -08:00
Erick Tryzelaar
57433e1eaa feat(codegen): Optimize deserializing fields from byte strings 2016-02-23 20:38:06 -08:00
Erick Tryzelaar
118476b98b feat(de): Rename de::Error trait methods 2016-02-23 20:21:07 -08:00
Erick Tryzelaar
d6a50b8977 feat(cargo): Version bump to 0.7! 2016-02-23 05:26:07 -08:00
Erick Tryzelaar
740865b637 feat(de): Add an Error::unknown_variant error.
Closes #169
2016-02-21 16:26:52 -08:00
Erick Tryzelaar
78cf29d1d1 feat(codegen): Switch attributes to using using paths not expressions 2016-02-21 15:28:25 -08:00
Erick Tryzelaar
0c35ce0a4f feat(codegen): Improve error messages in annotations 2016-02-21 09:54:03 -08:00
Erick Tryzelaar
c268eb2258 feat(codegen): Remove #[serde(skip_serializing_if_{none,empty})]
`#[serde(skip_serializing_if="...")]` can replace this functionality.
2016-02-18 19:31:43 -08:00
Erick Tryzelaar
40f8e6b061 feat(codegen): Add #[serde(deserialize_with="...")]
This allows a field to be deserialized with an expression instead
of the default deserializer. This simplifies deserializing a struct
or enum that contains an external type that doesn't implement
`serde::Deserialize`. This expression is passed a variable
`deserializer` that needs to be used to deserialize the expression.
2016-02-18 19:13:55 -08:00