From 3d2e3beafefa58da4d6cf2f68fe06319dad08626 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 9 Jun 2016 00:54:32 -0700 Subject: [PATCH] Add serde_codegen::expand to avoid public Syntex dependency --- README.md | 10 ++-------- examples/serde-syntex-example/build.rs | 5 +---- serde_codegen/src/lib.rs | 12 ++++++++++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 03093081..ec8564c9 100644 --- a/README.md +++ b/README.md @@ -142,10 +142,7 @@ pub fn main() { let src = Path::new("src/main.rs.in"); let dst = Path::new(&out_dir).join("main.rs"); - let mut registry = syntex::Registry::new(); - - serde_codegen::register(&mut registry); - registry.expand("", &src, &dst).unwrap(); + serde_codegen::expand(&src, &dst).unwrap(); } ``` @@ -203,10 +200,7 @@ mod inner { let src = Path::new("src/main.rs.in"); let dst = Path::new(&out_dir).join("main.rs"); - let mut registry = syntex::Registry::new(); - - serde_codegen::register(&mut registry); - registry.expand("", &src, &dst).unwrap(); + serde_codegen::expand(&src, &dst).unwrap(); } } diff --git a/examples/serde-syntex-example/build.rs b/examples/serde-syntex-example/build.rs index b1aadd78..b034d05f 100644 --- a/examples/serde-syntex-example/build.rs +++ b/examples/serde-syntex-example/build.rs @@ -12,10 +12,7 @@ mod inner { let src = Path::new("src/main.rs.in"); let dst = Path::new(&out_dir).join("main.rs"); - let mut registry = syntex::Registry::new(); - - serde_codegen::register(&mut registry); - registry.expand("", &src, &dst).unwrap(); + serde_codegen::expand(&src, &dst).unwrap(); } } diff --git a/serde_codegen/src/lib.rs b/serde_codegen/src/lib.rs index 52ca7912..3a8e94b1 100644 --- a/serde_codegen/src/lib.rs +++ b/serde_codegen/src/lib.rs @@ -22,6 +22,11 @@ extern crate syntax; #[cfg(not(feature = "with-syntex"))] extern crate rustc_plugin; +#[cfg(feature = "with-syntex")] +use std::io; +#[cfg(feature = "with-syntex")] +use std::path::Path; + #[cfg(not(feature = "with-syntex"))] use syntax::feature_gate::AttributeType; @@ -31,6 +36,13 @@ include!(concat!(env!("OUT_DIR"), "/lib.rs")); #[cfg(not(feature = "with-syntex"))] include!("lib.rs.in"); +#[cfg(feature = "with-syntex")] +pub fn expand(src: &Path, dst: &Path) -> io::Result<()> { + let mut registry = syntex::Registry::new(); + register(&mut registry); + registry.expand("", src, dst) +} + #[cfg(feature = "with-syntex")] pub fn register(reg: &mut syntex::Registry) { use syntax::{ast, fold};