Oliver Schneider
56c42a907f
fix( #151 ): renaming Deserializer::visit_* to Deserializer::deserialize_*
2015-10-20 09:30:15 +02:00
Erick Tryzelaar
cc67c97224
Merge remote-tracking branch 'remotes/origin/master' into error-take-2
2015-10-18 19:43:32 -07:00
Paul Woolcock
7ef2205f80
fix(dependencies): Opt-out of default features of num
2015-10-17 23:31:36 -04:00
Erick Tryzelaar
f872b3fb4b
fix(cargo): Update aster, quasi, and syntex
2015-10-17 19:44:07 -07:00
Thomas Bahn
0b5e91d430
feat: Add deserializers that use visitors.
...
This deserializers can be used to delegate deserialization to another
type's visitor.
Example:
```json
fn visit_map<V>(&mut self, visitor: V) -> Result<Self::Value, V::Error>
where V: de::MapVisitor
{
let mut deserializer = de::value::MapVisitorDeserializer::new(visitor);
try!(Deserialize::deserialize(&mut deserializer))
}
```
2015-10-08 15:22:02 +02:00
Thomas Bahn
e0429cdd96
style: remove the redundant Error suffix
2015-10-06 01:37:39 +02:00
Thomas Bahn
7413bbb7bf
feat: ValueDeserializers are generic over the error type
...
This makes it possible to remove the `From<de::value::Error>` trait
bound from the `de::Error` trait.
An example for using a `ValueDeserializer` to forward deserializing to
another type's visitor:
```rust
fn visit_u8<E>(&mut self, value: u8) -> Result<Self::Value, E>
where E: de::Error
{
try!(Deserialize::deserialize(&mut value.into_deserializer()))
}
```
Please note that there is an regression in serde-rs/json which needs to
be fixed.
2015-10-06 01:37:39 +02:00
Erick Tryzelaar
00cd2900e7
Merge pull request #155 from erickt/skip
...
Add skip serializing fields if empty or none
2015-10-05 14:51:46 -07:00
Thomas Bahn
0a65153634
fix: forward more errors in de::value::Error
...
When using a `ValueDeserializer` errors produced with the methods
`type_mismatch`, `length_mismatch` and `syntax` were not forwarded
correctly. These methods now store all information in the enum
`de::value::Error`.
2015-10-05 23:40:36 +02:00
Oliver Schneider
310db21d64
add link to the README from the docs
...
The small starting page in the docs was noted at https://users.rust-lang.org/t/lets-talk-about-ecosystem-documentation/2791/25
2015-10-05 15:57:01 +02:00
Erick Tryzelaar
22b69fc5c9
docs(serde): Fix typo
2015-09-07 13:02:53 -07:00
Erick Tryzelaar
48ea75fddc
Bump version
...
This is because I removed some public, but unused things
2015-09-02 08:54:01 -07:00
Erick Tryzelaar
4b49f716b9
Document serde::de::impls.
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
55f5f397d7
Document serde::de::value
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
4be4f60f21
Document serde::de::mod.
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
9a8037bbf2
Remove unused Enum{Seq,Map}Visitor
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
c7f1af90b2
Document serde::iter
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
902d3a0aa5
Document serde::bytes.
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
c14eb28223
Remove unused buf module.
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
2722a04e52
Document serde::ser::impls
2015-09-02 08:36:14 -07:00
Erick Tryzelaar
5dbcd7957a
Start documenting everything, starting with serde::ser.
2015-09-01 08:02:17 -07:00
Erick Tryzelaar
7511eeae7b
Version bump
...
Closes #149
2015-08-31 10:04:34 -07:00
Erick Tryzelaar
42069ca669
Refactor tests to not use serde_json
2015-08-29 17:29:42 -07:00
Evgeny Safronov
8b1058b8ec
Add a Sized requirement to the Deserialize trait.
2015-08-24 18:44:19 +03:00
Erick Tryzelaar
cab653e7c7
Version bump
2015-08-18 12:50:39 -07:00
Erick Tryzelaar
8d999a8edd
VecMap was removed from libcollections
2015-08-18 12:49:50 -07:00
Erick Tryzelaar
764b25bd07
Have Deserializer::visit_{usize,u8,...,isize,i8,...,f32} call visit_{u64,i64,f64}
...
This cuts down the amount of overloading needed by a format like
toml which wants to prevent casting a float to an integer and
vice versa.
2015-08-13 08:40:19 -07:00
Erick Tryzelaar
3c915189f4
version bump
2015-08-10 10:09:37 -07:00
Erick Tryzelaar
63561609a6
Add Error::length_mismatch, Error::type_mismatch, and de::Type
...
This improves error handling to match the needs of msgpack
2015-08-09 21:42:42 -07:00
Erick Tryzelaar
ff53323790
Correct the documentation links in the crates
2015-08-09 16:38:10 -07:00
Erick Tryzelaar
7fb2bd50bf
Add a string argument to Error::syntax()
2015-08-07 08:08:56 -07:00
Erick Tryzelaar
2aeb51ad51
Remove "_error" from de::Error::*_error
2015-08-07 07:53:22 -07:00
Erick Tryzelaar
e88ef4715c
Explicitly make the visit_struct_{,variant}_elt key a &'static str
2015-07-31 07:22:14 -07:00
Erick Tryzelaar
94f3dd25d8
Allow VariantVisitor::visit_newtype to default to calling visit_tuple
2015-07-31 07:22:13 -07:00
Erick Tryzelaar
2c58a9c11d
Expose TupleVisitor*::new
2015-07-31 07:22:13 -07:00
Erick Tryzelaar
97528b59cf
Add support for serializing newtype structs
...
This enables formats like JSON to serialize newtype wrapper
structs without the normal object wrapper. Consider types like:
```rust
struct Point {
x: u32,
y: u32,
}
stuct MyPoint(Point);
```
Before this patch, `MyPoint(1,2)` would get serialized as
`[{"x":1,"y":2}]`, but now it gets serialized as `{"x":1,"y"2}`.
2015-07-31 07:22:13 -07:00
Erick Tryzelaar
6715fb6652
Rename visit_simple to visit_newtype
2015-07-31 07:22:13 -07:00
Erick Tryzelaar
fefc010deb
Rename visit_enum_simple to visit_newtype_variant
2015-07-31 07:22:13 -07:00
Erick Tryzelaar
de1059f648
Allow Result<T, E> to use usize variant names
2015-07-30 08:06:04 -07:00
Erick Tryzelaar
97f08086dd
Have visit_enum_simple default to calling visit_tuple_variant
2015-07-30 08:06:04 -07:00
Erick Tryzelaar
0348a3914d
Pass variant index to visit_enum_simple
2015-07-30 08:06:04 -07:00
Erick Tryzelaar
5dc245d2ce
Switch serializing Result to using simple enums
2015-07-30 08:06:04 -07:00
Erick Tryzelaar
71cc95248c
Allow Option<T> to be used directly as a ser::SeqVisitor
2015-07-30 08:06:04 -07:00
Erick Tryzelaar
49fa208242
Minor cleanup
2015-07-30 08:06:04 -07:00
Erick Tryzelaar
d2fef27721
Rename ser::Serializer::visit_enum_{unit,seq,map} to visit_{unit,tuple,struct}_variant
2015-07-30 06:45:21 -07:00
Erick Tryzelaar
351b7039a8
Rename de::VariantVisitor::visit_{map,seq} to visit_{struct,tuple}
2015-07-30 06:45:21 -07:00
Erick Tryzelaar
7585ce9ed4
Re-indent
2015-07-30 06:45:21 -07:00
Erick Tryzelaar
578a0178b5
Make sure the visit_{enum,struct,tuple_struct} name is a &'static str
2015-07-30 06:45:21 -07:00
Erick Tryzelaar
6c9cebdcc3
Pass the variant fields and tuple lengths into visit_{enum,tuple,tuple_struct}
2015-07-30 06:45:21 -07:00
Erick Tryzelaar
35e2022e9a
Point at github.com/serde-rs/serde
2015-07-30 06:43:20 -07:00