mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-13 23:01:01 +00:00
Switch to the new custom_deserialize syntax
This commit is contained in:
@@ -15,8 +15,7 @@ use Animal::{Dog, Frog};
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Debug, RustcDecodable)]
|
#[derive(Clone, PartialEq, Debug, RustcDecodable, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
pub enum Animal {
|
pub enum Animal {
|
||||||
Dog,
|
Dog,
|
||||||
Frog(String, isize)
|
Frog(String, isize)
|
||||||
|
|||||||
@@ -17,9 +17,7 @@ use serde::ser::{self, Serialize, Serializer};
|
|||||||
|
|
||||||
use rustc_serialize::Encodable;
|
use rustc_serialize::Encodable;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, RustcEncodable, RustcDecodable)]
|
#[derive(Debug, PartialEq, RustcEncodable, RustcDecodable, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct Http {
|
struct Http {
|
||||||
protocol: HttpProtocol,
|
protocol: HttpProtocol,
|
||||||
status: u32,
|
status: u32,
|
||||||
@@ -161,9 +159,7 @@ impl de::Deserialize for CacheStatus {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, RustcEncodable, RustcDecodable)]
|
#[derive(Debug, PartialEq, RustcEncodable, RustcDecodable, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct Origin {
|
struct Origin {
|
||||||
ip: String,
|
ip: String,
|
||||||
port: u32,
|
port: u32,
|
||||||
@@ -546,9 +542,7 @@ impl de::Deserialize for Country {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, RustcEncodable, RustcDecodable)]
|
#[derive(Debug, PartialEq, RustcEncodable, RustcDecodable, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct Log {
|
struct Log {
|
||||||
timestamp: i64,
|
timestamp: i64,
|
||||||
zone_id: u32,
|
zone_id: u32,
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ use serde::de::{Deserializer, Deserialize};
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Debug, RustcDecodable)]
|
#[derive(Clone, PartialEq, Debug, RustcDecodable, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
pub struct Inner {
|
pub struct Inner {
|
||||||
a: (),
|
a: (),
|
||||||
b: usize,
|
b: usize,
|
||||||
@@ -24,8 +23,7 @@ pub struct Inner {
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive(Clone, PartialEq, Debug, RustcDecodable)]
|
#[derive(Clone, PartialEq, Debug, RustcDecodable, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
pub struct Outer {
|
pub struct Outer {
|
||||||
inner: Vec<Inner>,
|
inner: Vec<Inner>,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ pub fn expand_derive_deserialize(
|
|||||||
let generics = match item.node {
|
let generics = match item.node {
|
||||||
ast::ItemStruct(_, ref generics) => generics,
|
ast::ItemStruct(_, ref generics) => generics,
|
||||||
ast::ItemEnum(_, ref generics) => generics,
|
ast::ItemEnum(_, ref generics) => generics,
|
||||||
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive_deserialize]")
|
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive(Deserialize)]")
|
||||||
};
|
};
|
||||||
|
|
||||||
let impl_generics = builder.from_generics(generics.clone())
|
let impl_generics = builder.from_generics(generics.clone())
|
||||||
@@ -93,7 +93,7 @@ fn deserialize_body(
|
|||||||
enum_def,
|
enum_def,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive_deserialize]")
|
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive(Deserialize)]")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ mod field;
|
|||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
pub fn plugin_registrar(reg: &mut Registry) {
|
pub fn plugin_registrar(reg: &mut Registry) {
|
||||||
reg.register_syntax_extension(
|
reg.register_syntax_extension(
|
||||||
token::intern("derive_serialize"),
|
token::intern("derive_Serialize"),
|
||||||
Decorator(Box::new(ser::expand_derive_serialize)));
|
Decorator(Box::new(ser::expand_derive_serialize)));
|
||||||
|
|
||||||
reg.register_syntax_extension(
|
reg.register_syntax_extension(
|
||||||
token::intern("derive_deserialize"),
|
token::intern("derive_Deserialize"),
|
||||||
Decorator(Box::new(de::expand_derive_deserialize)));
|
Decorator(Box::new(de::expand_derive_deserialize)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ pub fn expand_derive_serialize(
|
|||||||
let generics = match item.node {
|
let generics = match item.node {
|
||||||
ast::ItemStruct(_, ref generics) => generics,
|
ast::ItemStruct(_, ref generics) => generics,
|
||||||
ast::ItemEnum(_, ref generics) => generics,
|
ast::ItemEnum(_, ref generics) => generics,
|
||||||
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive_serialize]")
|
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive(Serialize)]")
|
||||||
};
|
};
|
||||||
|
|
||||||
let impl_generics = builder.from_generics(generics.clone())
|
let impl_generics = builder.from_generics(generics.clone())
|
||||||
@@ -91,7 +91,7 @@ fn serialize_body(
|
|||||||
enum_def,
|
enum_def,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive_serialize]")
|
_ => cx.bug("expected ItemStruct or ItemEnum in #[derive(Serialize)]")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -46,7 +46,7 @@
|
|||||||
//! from JSON via the serialization API. To be able to serialize a piece of data, it must implement
|
//! from JSON via the serialization API. To be able to serialize a piece of data, it must implement
|
||||||
//! the `serde::Serialize` trait. To be able to deserialize a piece of data, it must implement the
|
//! the `serde::Serialize` trait. To be able to deserialize a piece of data, it must implement the
|
||||||
//! `serde::Deserialize` trait. Serde provides provides an annotation to automatically generate
|
//! `serde::Deserialize` trait. Serde provides provides an annotation to automatically generate
|
||||||
//! the code for these traits: `#[derive_serialize]` and `#[derive_deserialize]`.
|
//! the code for these traits: `#[derive(Serialize, Deserialize)]`.
|
||||||
//!
|
//!
|
||||||
//! The JSON API also provides an enum `serde::json::Value` and a method `to_value` to serialize
|
//! The JSON API also provides an enum `serde::json::Value` and a method `to_value` to serialize
|
||||||
//! objects. A `serde::json::Value` value can be serialized as a string or buffer using the
|
//! objects. A `serde::json::Value` value can be serialized as a string or buffer using the
|
||||||
@@ -70,8 +70,7 @@
|
|||||||
//! use serde::json;
|
//! use serde::json;
|
||||||
//!
|
//!
|
||||||
//! // Automatically generate `Serialize` and `Deserialize` trait implementations
|
//! // Automatically generate `Serialize` and `Deserialize` trait implementations
|
||||||
//! #[derive_serialize]
|
//! #[derive(Serialize, Deserialize)]
|
||||||
//! #[derive_deserialize]
|
|
||||||
//! pub struct TestStruct {
|
//! pub struct TestStruct {
|
||||||
//! data_int: u8,
|
//! data_int: u8,
|
||||||
//! data_str: String,
|
//! data_str: String,
|
||||||
|
|||||||
+4
-8
@@ -297,24 +297,20 @@ impl<'a, 'b> de::VariantVisitor for TokenDeserializerVariantVisitor<'a, 'b> {
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive(Copy, PartialEq, Debug)]
|
#[derive(Copy, PartialEq, Debug, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
struct NamedUnit;
|
struct NamedUnit;
|
||||||
|
|
||||||
#[derive(PartialEq, Debug)]
|
#[derive(PartialEq, Debug, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
struct NamedSeq(i32, i32, i32);
|
struct NamedSeq(i32, i32, i32);
|
||||||
|
|
||||||
#[derive(PartialEq, Debug)]
|
#[derive(PartialEq, Debug, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
struct NamedMap {
|
struct NamedMap {
|
||||||
a: i32,
|
a: i32,
|
||||||
b: i32,
|
b: i32,
|
||||||
c: i32,
|
c: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(PartialEq, Debug)]
|
#[derive(PartialEq, Debug, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
enum Enum {
|
enum Enum {
|
||||||
Unit,
|
Unit,
|
||||||
Seq(i32, i32, i32),
|
Seq(i32, i32, i32),
|
||||||
|
|||||||
+5
-14
@@ -28,9 +28,7 @@ macro_rules! treemap {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
enum Animal {
|
enum Animal {
|
||||||
Dog,
|
Dog,
|
||||||
Frog(String, Vec<isize>),
|
Frog(String, Vec<isize>),
|
||||||
@@ -38,18 +36,14 @@ enum Animal {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct Inner {
|
struct Inner {
|
||||||
a: (),
|
a: (),
|
||||||
b: usize,
|
b: usize,
|
||||||
c: Vec<String>,
|
c: Vec<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct Outer {
|
struct Outer {
|
||||||
inner: Vec<Inner>,
|
inner: Vec<Inner>,
|
||||||
}
|
}
|
||||||
@@ -903,9 +897,7 @@ fn test_parse_option() {
|
|||||||
("\"jodhpurs\"", Some("jodhpurs".to_string())),
|
("\"jodhpurs\"", Some("jodhpurs".to_string())),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct Foo {
|
struct Foo {
|
||||||
x: Option<isize>,
|
x: Option<isize>,
|
||||||
}
|
}
|
||||||
@@ -990,8 +982,7 @@ fn test_multiline_errors() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_missing_field() {
|
fn test_missing_field() {
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
struct Foo {
|
struct Foo {
|
||||||
x: Option<u32>,
|
x: Option<u32>,
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-15
@@ -25,37 +25,30 @@ trait Trait {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
||||||
#[derive_serialize]
|
|
||||||
#[derive_deserialize]
|
|
||||||
struct NamedUnit;
|
struct NamedUnit;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Serialize)]
|
||||||
#[derive_serialize]
|
|
||||||
struct SerNamedTuple<'a, 'b, A: 'a, B: 'b, C>(&'a A, &'b mut B, C);
|
struct SerNamedTuple<'a, 'b, A: 'a, B: 'b, C>(&'a A, &'b mut B, C);
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
struct DeNamedTuple<A, B, C>(A, B, C);
|
struct DeNamedTuple<A, B, C>(A, B, C);
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Serialize)]
|
||||||
#[derive_serialize]
|
|
||||||
struct SerNamedMap<'a, 'b, A: 'a, B: 'b, C> {
|
struct SerNamedMap<'a, 'b, A: 'a, B: 'b, C> {
|
||||||
a: &'a A,
|
a: &'a A,
|
||||||
b: &'b mut B,
|
b: &'b mut B,
|
||||||
c: C,
|
c: C,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
struct DeNamedMap<A, B, C> {
|
struct DeNamedMap<A, B, C> {
|
||||||
a: A,
|
a: A,
|
||||||
b: B,
|
b: B,
|
||||||
c: C,
|
c: C,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Serialize)]
|
||||||
#[derive_serialize]
|
|
||||||
enum SerEnum<'a, B: 'a, C: /* Trait + */ 'a, D> where D: /* Trait + */ 'a {
|
enum SerEnum<'a, B: 'a, C: /* Trait + */ 'a, D> where D: /* Trait + */ 'a {
|
||||||
Unit,
|
Unit,
|
||||||
Seq(
|
Seq(
|
||||||
@@ -95,8 +88,7 @@ enum SerEnum<'a, B: 'a, C: /* Trait + */ 'a, D> where D: /* Trait + */ 'a {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Deserialize)]
|
||||||
#[derive_deserialize]
|
|
||||||
enum DeEnum<B, C: /* Trait */, D> /* where D: Trait */ {
|
enum DeEnum<B, C: /* Trait */, D> /* where D: Trait */ {
|
||||||
Unit,
|
Unit,
|
||||||
Seq(
|
Seq(
|
||||||
|
|||||||
+4
-4
@@ -267,20 +267,20 @@ impl<'a> Serializer for AssertSerializer<'a> {
|
|||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#[derive_serialize]
|
#[derive(Serialize)]
|
||||||
struct NamedUnit;
|
struct NamedUnit;
|
||||||
|
|
||||||
#[derive_serialize]
|
#[derive(Serialize)]
|
||||||
struct NamedSeq(i32, i32, i32);
|
struct NamedSeq(i32, i32, i32);
|
||||||
|
|
||||||
#[derive_serialize]
|
#[derive(Serialize)]
|
||||||
struct NamedMap {
|
struct NamedMap {
|
||||||
a: i32,
|
a: i32,
|
||||||
b: i32,
|
b: i32,
|
||||||
c: i32,
|
c: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive_serialize]
|
#[derive(Serialize)]
|
||||||
enum Enum {
|
enum Enum {
|
||||||
Unit,
|
Unit,
|
||||||
Seq(i32, i32),
|
Seq(i32, i32),
|
||||||
|
|||||||
Reference in New Issue
Block a user