From e0d6b9d010c3368b5d631090559ee0dede658046 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Wed, 25 Jan 2017 20:07:55 -0800 Subject: [PATCH] Merge serde_codegen into serde_derive crate --- serde_codegen/Cargo.toml | 24 --------------- serde_codegen/src/lib.rs | 31 -------------------- serde_derive/Cargo.toml | 9 +++++- {serde_codegen => serde_derive}/src/bound.rs | 0 {serde_codegen => serde_derive}/src/de.rs | 0 serde_derive/src/lib.rs | 26 +++++++++++++--- {serde_codegen => serde_derive}/src/ser.rs | 0 7 files changed, 30 insertions(+), 60 deletions(-) delete mode 100644 serde_codegen/Cargo.toml delete mode 100644 serde_codegen/src/lib.rs rename {serde_codegen => serde_derive}/src/bound.rs (100%) rename {serde_codegen => serde_derive}/src/de.rs (100%) rename {serde_codegen => serde_derive}/src/ser.rs (100%) diff --git a/serde_codegen/Cargo.toml b/serde_codegen/Cargo.toml deleted file mode 100644 index 41f42271..00000000 --- a/serde_codegen/Cargo.toml +++ /dev/null @@ -1,24 +0,0 @@ -[package] -name = "serde_codegen" -version = "0.9.0" -authors = ["Erick Tryzelaar "] -license = "MIT/Apache-2.0" -description = "Macros to auto-generate implementations for the serde framework" -homepage = "https://serde.rs" -repository = "https://github.com/serde-rs/serde" -documentation = "https://serde.rs/codegen.html" -keywords = ["serde", "serialization"] -include = ["Cargo.toml", "src/**/*.rs"] - -[features] -unstable = [] -unstable-testing = ["clippy"] - -[dependencies] -clippy = { version = "0.*", optional = true } -quote = "0.3.8" -serde_codegen_internals = { version = "=0.11.3", default-features = false, path = "../serde_codegen_internals" } -syn = { version = "0.10", features = ["aster", "visit"] } - -[badges] -travis-ci = { repository = "serde-rs/serde" } diff --git a/serde_codegen/src/lib.rs b/serde_codegen/src/lib.rs deleted file mode 100644 index e89cd08c..00000000 --- a/serde_codegen/src/lib.rs +++ /dev/null @@ -1,31 +0,0 @@ -#![cfg_attr(feature = "clippy", plugin(clippy))] -#![cfg_attr(feature = "clippy", feature(plugin))] -#![cfg_attr(feature = "clippy", allow(too_many_arguments))] -#![cfg_attr(feature = "clippy", allow(used_underscore_binding))] - -// The `quote!` macro requires deep recursion. -#![recursion_limit = "192"] - -extern crate serde_codegen_internals as internals; - -extern crate syn; -#[macro_use] -extern crate quote; - -mod bound; -mod de; -mod ser; - -#[doc(hidden)] -/// Not public API. Use the serde_derive crate. -pub fn expand_derive_serialize(item: &str) -> Result { - let syn_item = syn::parse_macro_input(item).unwrap(); - ser::expand_derive_serialize(&syn_item) -} - -#[doc(hidden)] -/// Not public API. Use the serde_derive crate. -pub fn expand_derive_deserialize(item: &str) -> Result { - let syn_item = syn::parse_macro_input(item).unwrap(); - de::expand_derive_deserialize(&syn_item) -} diff --git a/serde_derive/Cargo.toml b/serde_derive/Cargo.toml index 75ada3b4..9ec6a605 100644 --- a/serde_derive/Cargo.toml +++ b/serde_derive/Cargo.toml @@ -10,6 +10,10 @@ documentation = "https://serde.rs/codegen.html" keywords = ["serde", "serialization"] include = ["Cargo.toml", "src/**/*.rs"] +[features] +unstable = [] +unstable-testing = ["clippy"] + [badges] travis-ci = { repository = "serde-rs/serde" } @@ -18,7 +22,10 @@ name = "serde_derive" proc-macro = true [dependencies] -serde_codegen = { version = "=0.9.0", path = "../serde_codegen" } +clippy = { version = "0.*", optional = true } +quote = "0.3.8" +serde_codegen_internals = { version = "=0.11.3", default-features = false, path = "../serde_codegen_internals" } +syn = { version = "0.10", features = ["aster", "visit"] } [dev-dependencies] compiletest_rs = "0.2" diff --git a/serde_codegen/src/bound.rs b/serde_derive/src/bound.rs similarity index 100% rename from serde_codegen/src/bound.rs rename to serde_derive/src/bound.rs diff --git a/serde_codegen/src/de.rs b/serde_derive/src/de.rs similarity index 100% rename from serde_codegen/src/de.rs rename to serde_derive/src/de.rs diff --git a/serde_derive/src/lib.rs b/serde_derive/src/lib.rs index 38953f5b..0f81cb46 100644 --- a/serde_derive/src/lib.rs +++ b/serde_derive/src/lib.rs @@ -1,11 +1,28 @@ -extern crate proc_macro; -extern crate serde_codegen; +#![cfg_attr(feature = "clippy", plugin(clippy))] +#![cfg_attr(feature = "clippy", feature(plugin))] +#![cfg_attr(feature = "clippy", allow(too_many_arguments))] +#![cfg_attr(feature = "clippy", allow(used_underscore_binding))] +// The `quote!` macro requires deep recursion. +#![recursion_limit = "192"] + +extern crate syn; +#[macro_use] +extern crate quote; + +extern crate serde_codegen_internals as internals; + +extern crate proc_macro; use proc_macro::TokenStream; +mod bound; +mod de; +mod ser; + #[proc_macro_derive(Serialize, attributes(serde))] pub fn derive_serialize(input: TokenStream) -> TokenStream { - match serde_codegen::expand_derive_serialize(&input.to_string()) { + let input = syn::parse_macro_input(&input.to_string()).unwrap(); + match ser::expand_derive_serialize(&input) { Ok(expanded) => expanded.parse().unwrap(), Err(msg) => panic!(msg), } @@ -13,7 +30,8 @@ pub fn derive_serialize(input: TokenStream) -> TokenStream { #[proc_macro_derive(Deserialize, attributes(serde))] pub fn derive_deserialize(input: TokenStream) -> TokenStream { - match serde_codegen::expand_derive_deserialize(&input.to_string()) { + let input = syn::parse_macro_input(&input.to_string()).unwrap(); + match de::expand_derive_deserialize(&input) { Ok(expanded) => expanded.parse().unwrap(), Err(msg) => panic!(msg), } diff --git a/serde_codegen/src/ser.rs b/serde_derive/src/ser.rs similarity index 100% rename from serde_codegen/src/ser.rs rename to serde_derive/src/ser.rs