generalized rust wrapping macro
Macros for defining generalized wrappers
and applying them to arbitrary functions. See examples
.
```rust,ignore
defwrapper!{log1 = before = (fnargs) >> { println!("* [log-1] >> before everything! fnargs: {:?}", fnargs); }; after = (wrappedresult) >> { println!("* [log-1] >> after everything! wrappedresult: {:?}", wrapped_result); }; }
defwrapper!{log2 = before = (fnargs) >> { println!("* [log-2] >> before everything! fnargs: {:?}", fnargs); }; after = (wrappedresult) >> { println!("* [log-2] >> after everything! wrappedresult: {:?}", wrapped_result); }; }
wrapwith!{log1 >> fn greetlogged_inner(name: &str) -> String = { format!("How are you, {}?", name) }}
wrapwith!{log2 >> fn greetlogged(name: &str) -> String = { format!("Hello! {}", greetloggedinner(name)) }}
pub fn main() { println!("{}", greet_logged("james")); } ```