Commit Graph

1117 Commits

Author SHA1 Message Date
Homu
c9e2e518ba Auto merge of #397 - dtolnay:item, r=oli-obk
Factor attr parsing into serde_item crate

Fixes #396. @KodrAus [let me know whether this fits the bill.](5c6a0e12e9/serde_item/src)

a few other changes to make the API a little more presentable:

- Rename attr::{ContainerAttrs,VariantAttrs,FieldAttrs} to remove the "Attrs" (I see you worked on the corresponding [clippy lint](https://github.com/Manishearth/rust-clippy/issues/904)).
- Rename attr::Container* to attr::Item to correspond with item::Item and ast::Item. The others already had a correspondence (attr::Variant/item::Variant/ast::Variant, attr::Field/item::Field/ast::Field). Also a unit struct isn't much of a "container."
- Change item::Item::from_ast to return a meaningful error enum instead of printing a message that was hard to generalize to other uses.
- Add item::Variant.span for consistency because Item and Field already had span.
- Remove the "ident" field from attr::Name because we can just fold it into the other two fields.
- Remove attr::Name::(de)serialize_name_expr because it wasn't using the right AstBuilder in the first place.
- Rename the attr:: constructors from_item/from_variant/from_field to from_ast to line up with the item:: constructors; the signatures match.
- Remove attr's dependency on aster because we were only using it for two very simple things.
2016-06-20 16:45:25 +09:00
David Tolnay
51042bde50
Remove ident from Name struct 2016-06-19 20:31:12 -07:00
David Tolnay
5c6a0e12e9
Factor attr parsing into serde_item crate 2016-06-19 20:15:49 -07:00
Homu
d4e1ef659a Auto merge of #389 - dtolnay:rule, r=oli-obk
Remove unused macro rule
2016-06-17 16:52:37 +09:00
David Tolnay
f5f35677f0
Remove unused macro rule 2016-06-17 00:06:11 -07:00
David Tolnay
90d9c77186 Merge pull request #385 from dtolnay/dup
Error on duplicate attributes
2016-06-17 00:02:04 -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
0bf6a17428 Merge pull request #387 from erickt/master
Extend tuple impls up to 16 elements
2016-06-16 09:47:58 -07:00
Erick Tryzelaar
db8881d845 Extend tuple impls up to 16 elements 2016-06-16 11:22:15 +01:00
David Tolnay
3403352749 Merge pull request #377 from dtolnay/travis
Remove some low-risk travis builds
2016-06-15 08:54:04 -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
David Tolnay
8e4da7f36b Merge pull request #383 from oli-obk/compile-fail
more cfail tests
2016-06-13 10:46:35 -07:00
Oliver Schneider
4c4a27f53c
more cfail tests 2016-06-13 18:56:45 +02: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
5cd8212a61 Merge pull request #381 from dtolnay/nosyntex
Remove unnecessary Syntexes
2016-06-12 22:25:50 -07: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
David Tolnay
22a26a33f4
Remove some low-risk travis builds 2016-06-11 16:21:20 -07:00
David Tolnay
8a09f05644
Release 0.7.10 2016-06-11 13:08:33 -07:00
David Tolnay
5923a0cd2f Merge pull request #371 from dtolnay/hasher
De/serialize for HashMap<K, V, S> and HashSet<T, S>
2016-06-11 11:51:57 -07:00
David Tolnay
1576b5a8a0
Serde_macros tests depend on fnv 2016-06-11 11:15:10 -07:00
Homu
2c4dbf5a84 Auto merge of #370 - dtolnay:expand, r=erickt
Use serde_codegen::expand in serde_tests/build.rs
2016-06-12 02:51:08 +09:00
David Tolnay
021f4f2d70
Use serde_codegen::expand in serde_tests/build.rs 2016-06-11 10:02:10 -07:00
David Tolnay
decc571988
De/serialize for HashSet<T, S> 2016-06-11 10:00:33 -07:00
David Tolnay
322d7a90db
Add ser tests for normal HashMap 2016-06-11 10:00:33 -07:00
David Tolnay
dd3f653103
Move bounds to where-clause to increase legibility 2016-06-11 10:00:33 -07:00
David Tolnay
46a1860601
De/serialize for HashMap<K, V, S> 2016-06-11 10:00:33 -07:00
Homu
84a573c926 Auto merge of #372 - dtolnay:old, r=erickt
Stop building on 1.5.0

Syntex no longer supports this version of Rust.
2016-06-12 01:09:49 +09:00
Erick Tryzelaar
7dfa8f43f4 Merge pull request #373 from erickt/master
Updating to rustc 1.11.0-nightly (7d2f75a95 2016-06-09)
2016-06-11 09:09:22 -07:00
David Tolnay
7375b4e847
Add travis builds for 1.6.0 and 1.7.0 2016-06-11 08:59:02 -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
9834af7ed9
Stop building on 1.5.0
Syntex no longer supports this version of Rust.
2016-06-11 01:31:17 -07:00
Homu
6b404d8529 Auto merge of #367 - dtolnay:default, r=oli-obk
Simplify implementation of #[serde(default=...)]
2016-06-10 17:57:39 +09: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
Homu
b7188f7022 Auto merge of #362 - dtolnay:expand, r=oli-obk
Add serde_codegen::expand to avoid public Syntex dependency

Required for #358. We can remove `serde_codegen::register` in the next breaking release.

This allows Syntex users to avoid being broken by Serde bumping its Syntex dependency.
2016-06-10 07:46:33 +09:00
David Tolnay
a64fe99d1b
Add cargo override for building examples 2016-06-09 11:23:43 -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
Homu
1917e54a6e Auto merge of #363 - dtolnay:example, r=oli-obk
Fix nightly check in serde-syntex-example

Fixes #361.
2016-06-10 01:58:51 +09:00
David Tolnay
898b346d48
1.5 does not have a stable libcore 2016-06-09 09:17:21 -07:00
David Tolnay
e90adb20ef
Run serde-syntex-example in Travis 2016-06-09 01:42:00 -07:00
Homu
a52e7f5554 Auto merge of #364 - dtolnay:rustup, r=oli-obk
Use rustup in serde-syntex-example instead of multirust

Multirust is deprecated.
2016-06-09 17:36:01 +09:00
David Tolnay
7afb8b52ae
Use rustup in serde-syntex-example instead of multirust 2016-06-09 01:16:31 -07:00
David Tolnay
cb4694387e
Fix nightly check in serde-syntex-example 2016-06-09 01:08:12 -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
Homu
4b472be56e Auto merge of #352 - dtolnay:where, r=oli-obk
Attribute for handwritten where clauses

Addresses (2) and (3) in https://github.com/serde-rs/serde/issues/336#issuecomment-220378916.

- If there is a `#[serde(bound="...")]` attribute on the type, use the union of that and the actual type's `where` clause as the `where` clause for the impl and do not attempt to generate any additional `where` clauses whatsoever.
- If there is a `#[serde(bound="...")]` attribute on a field, use that and do not attempt to generate any additional `where` clauses for the field.

The `bound` attribute behaves similar to `rename` in that you can specify a single attribute that applies to both ser and de, or individual ones.

```
#[serde(bound="D: Serialize + Deserialize")]

#[serde(bound(serialize="D: Serialize", deserialize="D: Deserialize"))]
```

EDIT: now addresses (4) from https://github.com/serde-rs/serde/issues/336#issuecomment-220378916 as well.

- If a field contains direct recursion, do not generate any bounds based on that field except from `bound` attributes.
2016-06-06 17:47:45 +09:00