wrap 0.1.0

Generic function wrapping
Documentation
  • Coverage
  • 33.33%
    1 out of 3 items documented1 out of 1 items with examples
  • Size
  • Source code size: 12.36 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 204.51 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • jaemk/wrap
    2 0 1
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • jaemk

wrap

generalized rust wrapping macro

Macros for defining generalized wrappers and applying them to arbitrary functions. See examples.

Simple Usage

#[macro_use] extern crate wrap;


def_wrapper!{log1 =
    before = (fn_args) >> {
        println!("* [log-1] >> before everything! fn_args: {:?}", fn_args);
    };
    after  = (wrapped_result) >> {
        println!("* [log-1] >> after everything! wrapped_result: {:?}", wrapped_result);
    };
}


def_wrapper!{log2 =
    before = (fn_args) >> {
        println!("* [log-2] >> before everything! fn_args: {:?}", fn_args);
    };
    after  = (wrapped_result) >> {
        println!("* [log-2] >> after everything! wrapped_result: {:?}", wrapped_result);
    };
}


wrap_with!{log1 >>
fn greet_logged_inner(name: &str) -> String = {
    format!("How are you, {}?", name)
}}


wrap_with!{log2 >>
fn greet_logged(name: &str) -> String = {
    format!("Hello! {}", greet_logged_inner(name))
}}


pub fn main() {
    println!("{}", greet_logged("james"));
}