diff --git a/Cargo.toml b/Cargo.toml index 1a7eef77..16bdba55 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,3 +12,6 @@ include = [ "scripts/*.rhai", "Cargo.toml" ] + +[features] +debug_msgs = [] diff --git a/src/engine.rs b/src/engine.rs index a00fbc2c..4b6438d3 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -160,7 +160,7 @@ impl Engine { ident: String, args: Vec<&mut Any>, ) -> Result, EvalAltResult> { - println!( + debug_println!( "Trying to call function {:?} with args {:?}", ident, args.iter().map(|x| (&**x).type_id()).collect::>() @@ -196,7 +196,7 @@ impl Engine { } pub fn register_fn_raw(&mut self, ident: String, args: Option>, f: Box) { - println!("Register; {:?} with args {:?}", ident, args,); + debug_println!("Register; {:?} with args {:?}", ident, args); let spec = FnSpec { ident, args }; diff --git a/src/lib.rs b/src/lib.rs index f03ff9d5..14bc19a9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,6 +34,13 @@ #![allow(warnings, unknown_lints, type_complexity, new_without_default_derive, needless_pass_by_value, too_many_arguments)] +// needs to be here, because order matters for macros +macro_rules! debug_println { + () => (#[cfg(feature = "debug_msgs")] {print!("\n")}); + ($fmt:expr) => (#[cfg(feature = "debug_msgs")] {print!(concat!($fmt, "\n"))}); + ($fmt:expr, $($arg:tt)*) => (#[cfg(feature = "debug_msgs")] {print!(concat!($fmt, "\n"), $($arg)*)}); +} + mod any; mod call; mod engine; @@ -46,3 +53,4 @@ mod tests; pub use any::Any; pub use engine::{Engine, EvalAltResult, Scope}; pub use fn_register::RegisterFn; +