Commit Graph

193 Commits

Author SHA1 Message Date
Hugo Duncan
c30311153c Rename fmt to format 2015-05-08 12:43:11 -04:00
Hugo Duncan
a935ebe8b9 Adds serializer format specific field names
Allows different field names to be used for different external formats.

Field names are specified using the `rename` field attribute, e.g:

    #[serde(rename(xml= "a4", json="a5"))]

Reverts #62

Addresses #61
2015-05-08 12:43:11 -04:00
Erick Tryzelaar
206e19edb4 Fix unquoting arms with latest quasi 2015-05-02 10:44:57 -07:00
Erick Tryzelaar
7cc319acca Bump version to 0.3.2. 2015-04-26 09:21:26 -07:00
Oliver Schneider
1748831152 missing field errors displayed original field name instead of renamed
closes #63
2015-04-23 17:28:42 +02:00
Hugo Duncan
fd6462f8d1 Add serialize, deserialize specific rename
Adds the rename_serialize and rename_deserialize field attributes to
specify serialisation and deserialisation specific renames.
2015-04-21 17:58:18 -04:00
Erick Tryzelaar
c90dc9f48f bump version to 0.3.1 2015-04-12 11:43:35 -07:00
Erick Tryzelaar
e0eff942b1 Add Error::unknown_field_error 2015-04-12 10:32:54 -07:00
Erick Tryzelaar
1da47c0870 Change de::VariantVisitor to let deserializers know the variant kind
This allows formats like cbor that encode a unit variant as just a
string to work.

[breaking-change]
2015-04-12 10:32:54 -07:00
Erick Tryzelaar
2cd49060fa Rename #[serde(alias)] to #[serde(rename)] and add tests
Closes #9 and #47.
2015-04-01 22:14:28 -07:00
Erick Tryzelaar
1b1c605102 Pull deserialization impls into their own file 2015-03-26 07:58:26 -07:00
Sebastian Thiel
2962287703 fix(macros): fully qualified usage of Result
Otherwise it was possible for the expanded macro to pickup a
user-defined `Result` type, which didn't fulfill the required type
bounds and cause compilation failure.
2015-03-23 17:04:23 +01:00
Erick Tryzelaar
d17846eff1 Add deserializer type hinting hooks
Formats like xml have trouble knowing if they should deserialize
tags into a sequence from the stream they are deserializing from.
This PR adds hooks so the deserializee can inform the deserializer
to provide them a sequence if possible.

Closes #38.
2015-03-20 08:32:33 -07:00
Erick Tryzelaar
5378d22708 Switch to the new custom_deserialize syntax 2015-03-19 20:19:49 -07:00
Erick Tryzelaar
c8b2ad01b5 Update to rust HEAD 2015-03-19 20:19:49 -07:00
Hugo Duncan
3e63d34c00 Mark serde field attributes as used
Prevents unused attribute warnings in code that marks fields with
field level #[serde] attributes.
2015-03-19 11:04:08 -04:00
Erick Tryzelaar
eb4af09456 Simplify the variant deserializer visitor 2015-03-18 07:35:05 -07:00
Erick Tryzelaar
78137ee3a4 Rewrite enum deserialization to not require allocations 2015-03-16 22:42:04 -07:00
Erick Tryzelaar
b40d8f7bac Remove the first argument from visit_{seq,map}_elt 2015-03-16 22:30:02 -07:00
Erick Tryzelaar
c6cc2340c8 Rename a variable 2015-03-16 21:11:30 -07:00
Oliver Schneider
f21cbb71e2 MapVisitor::end and SeqVisitor::end were mostly never called 2015-03-16 13:27:00 +01:00
Erick Tryzelaar
f4f8194f46 More cleanup 2015-03-15 18:38:52 -07:00
Erick Tryzelaar
90e02206fe Cleanup, and move default::Default #[derive_deserialize] support to get called when missing 2015-03-15 18:37:26 -07:00
Erick Tryzelaar
9fc9d1b33a Get rid of syntax::ext::generic from #[derive_deserialize] 2015-03-15 17:47:25 -07:00
Erick Tryzelaar
b9f5d22630 Spring cleaning 2015-03-15 15:31:31 -07:00
Erick Tryzelaar
cbafc83af4 Cleanup palooza 2015-03-15 15:14:57 -07:00
Erick Tryzelaar
b628446768 Cleanup train 2015-03-15 15:04:11 -07:00
Erick Tryzelaar
aacc14ad7b More cleanup 2015-03-15 14:50:00 -07:00
Erick Tryzelaar
35eb234c41 More aster driven cleanup 2015-03-15 14:31:05 -07:00
Erick Tryzelaar
9972478066 Fix #35 by not relying on the crate being import in the current module 2015-03-15 13:02:34 -07:00
Erick Tryzelaar
00287bd055 Cleanup 2015-03-14 21:47:23 -07:00
Erick Tryzelaar
11f47bd51f Minor cleanup 2015-03-14 15:20:00 -07:00
Erick Tryzelaar
5e98a83717 Remove redundant bounds 2015-03-14 15:03:41 -07:00
Erick Tryzelaar
008ce75ae5 Replace #[derive_serialize] syntax::ext::deriving::generic with aster 2015-03-14 14:57:05 -07:00
Erick Tryzelaar
5c62b7ed06 Split serde_macros into multiple files 2015-03-14 13:09:37 -07:00
Erick Tryzelaar
99f4efd313 Merge #[derive_serialize] for structs and struct variants 2015-03-14 12:53:53 -07:00
Erick Tryzelaar
d2bd361d9c Merge #[derive_serialize] backend for serializing tuple structs and variants 2015-03-14 12:02:21 -07:00
Erick Tryzelaar
5a32d420cd More cleanup 2015-03-14 00:47:10 -07:00
Erick Tryzelaar
a3b2f00c92 More cleanup 2015-03-14 00:08:23 -07:00
Erick Tryzelaar
13fcf1ad5b More cleanup 2015-03-14 00:04:25 -07:00
Erick Tryzelaar
c917941ec3 More cleanup 2015-03-13 23:43:21 -07:00
Erick Tryzelaar
f699d29fb3 More cleanup 2015-03-13 23:38:12 -07:00
Erick Tryzelaar
6723097a3f More cleanup 2015-03-13 23:26:38 -07:00
Erick Tryzelaar
80e27344f1 More cleanup 2015-03-13 23:17:44 -07:00
Erick Tryzelaar
f244e0f522 More cleanup 2015-03-13 23:11:05 -07:00
Erick Tryzelaar
61317f5935 Replace some aster with quasi in serde_macros 2015-03-13 22:46:21 -07:00
Erick Tryzelaar
9ca1e2a8f7 Bump aster and quasi 2015-03-13 19:37:01 -07:00
Erick Tryzelaar
dc87288f48 Allow json missing fields to be treated as a null
Closes #34.
2015-03-12 20:44:16 -07:00
Erick Tryzelaar
5dd53e7ea3 Change ser::{Seq,Map}Visitor to return an optional exact length
This is necessary for formats that serialize the length in the
format stream. Those formats need the exact length, so the
iterator-style size_hint has the wrong semantics.
2015-03-12 19:40:46 -07:00
Erick Tryzelaar
9e454a243a Rename Serialize::visit to Serialize::serialize 2015-03-12 07:33:34 -07:00
Erick Tryzelaar
3f62b6d2bf Merge ser::Serializer and ser::Visitor 2015-03-11 11:05:46 -07:00
Erick Tryzelaar
fbd6d1974a Remove the unused Serializer::Value associated type 2015-03-11 10:15:27 -07:00
Erick Tryzelaar
5d22be26d8 Fixed the description 2015-03-08 23:12:33 -07:00
Erick Tryzelaar
28f43993f2 Add cargo metadata 2015-03-08 23:02:44 -07:00
Erick Tryzelaar
e798108785 Bump quasi and aster dependencies 2015-03-08 22:59:25 -07:00
Erick Tryzelaar
805a3435cf Replace serde1 with serde2!
Closes #26!
2015-03-08 22:56:33 -07:00
Erick Tryzelaar
c327eb50fd get serde to compile 2015-02-15 22:03:32 -08:00
Erick Tryzelaar
4dccf8cdec Clean up warnings in serde 2015-02-13 10:26:13 -08:00
Erick Tryzelaar
b70d77b5c9 Cleanup code, fix some incompatibilites with rust head 2015-02-13 09:40:47 -08:00
Thomas Bahn
81f84a4ea4 Remove unneeded mut specifiers 2015-02-06 22:23:16 +01:00
Thomas Bahn
5dd077969c Use slicing syntax instead of .as_slice() 2015-02-06 22:23:16 +01:00
Thomas Bahn
3022d7301a Use deref coercions when possible 2015-02-06 22:23:15 +01:00
Thomas Bahn
3b5d71fbb5 Add empty associated_types in expand_derive 2015-02-06 16:51:11 +01:00
Dan Burkert
460dbce8cc Update for rustc 1.0.0-nightly (8903c21d6 2015-01-15 22:42:58 +0000) 2015-01-17 16:36:15 -08:00
Erick Tryzelaar
8715a41158 Update to rust HEAD 2015-01-07 09:30:11 -08:00
Erick Tryzelaar
b98719a4a0 update to rust HEAD, switch to rustc_serialize 2015-01-04 17:18:50 -08:00
Thomas Bahn
d09b9eb72c Unboxed closures: function signature of expand* changed 2015-01-02 13:32:54 +01:00
Thomas Bahn
ae665a1c05 Syntax extension internals in rust changed
See e656081b70
2015-01-01 14:22:23 +01:00
Erick Tryzelaar
29242ee6a6 update to rust head 2014-12-17 23:00:05 -08:00
Erick Tryzelaar
246396fdb4 update to rust HEAD, fix the tests 2014-12-13 16:55:42 -08:00
Erick Tryzelaar
857723dff6 Fix serde to compile on master again 2014-11-22 16:27:01 -08:00
Erick Tryzelaar
21a58e86e4 Rename Serializable to Serialize, Deserializable to Deserialize 2014-11-13 07:54:44 -08:00
Erick Tryzelaar
23f3173ded update to rust HEAD 2014-11-03 12:58:36 -08:00
Erick Tryzelaar
475fd50564 rewrite deserialization to allow for copy-less struct fields 2014-10-23 10:26:52 -07:00
kvark
bfd1fb0ee9 Fixed String and Option conflicts for the latest Rust 2014-09-29 21:50:24 -04:00
kvark
e4916fc4c5 Updated macros to use P instead of Gc 2014-09-15 23:01:45 -04:00
kvark
2224e9afdf Fixed the struct map interaction with serial_name. Added a separarte JSON test for serial_name. 2014-09-07 10:43:15 -04:00
kvark
b3ac319530 Implemented serializer support for serial_name attribute 2014-09-07 09:55:27 -04:00
kvark
394d0e987c Implemented serial_name attribute 2014-09-07 09:55:27 -04:00
Erick Tryzelaar
3a6eb83da6 typarameterize Serializer 2014-09-01 13:14:52 -07:00
Erick Tryzelaar
a24075559f Move the Deserializer typarams onto from the method to the Deserializable trait 2014-08-19 15:18:47 -07:00
Erick Tryzelaar
aff53e8dd4 allow the deserializer to optionally handle missing fields
This allows json to deserialize missing values as a `null`.
2014-08-18 07:40:36 -07:00
Erick Tryzelaar
c6d28afb6f add a "ignore_field" handler when a deserializable is skipping a field 2014-08-18 07:40:15 -07:00
Erick Tryzelaar
6cd71e3e1d deserializing from maps should ignore unknown values 2014-08-15 09:02:30 -07:00
Erick Tryzelaar
98aa2e7884 Flesh out error handling 2014-08-06 22:24:06 -04:00
Erick Tryzelaar
005b124cd3 simplify error reporting 2014-08-05 23:02:15 -04:00
Erick Tryzelaar
d689bc8b85 initial support for more full error messages 2014-08-03 12:35:15 -07:00
Erick Tryzelaar
d68710ea09 fix improper deserializing structs-as-maps 2014-08-02 15:39:16 -07:00
Erick Tryzelaar
9278f26ac2 More simplifications 2014-07-27 21:13:27 -07:00
Erick Tryzelaar
7200be09e1 more simplification 2014-07-27 21:07:01 -07:00
Erick Tryzelaar
14d97f9c26 Cleaning up #[deriving_deserializable] 2014-07-27 20:16:18 -07:00
Erick Tryzelaar
04e2528a29 Initial support for #[deriving_deserializable] deserializing from maps 2014-07-27 18:33:16 -07:00
Erick Tryzelaar
4077d83cf2 Migrate over to cargo 2014-07-18 06:17:47 -07:00