namable_closures 0.1.0

Provides types and macros to create namable closure types
Documentation
# Make Rust Closure Types Namable


This crate provides some types and macros that can create closures which type is namable.

To use, as usual,

```rust
#[macro_use] extern crate namable_closures;

use namable_closures::Closure;
fn main() {
    let add_ten:Closure<i32,(i32,),i32> = closure!(state, i,  i+*state, 10);
    println!("{}",add_ten(1)); //11
}
```

There are 5 variants of the types, each of them have 3 type variables. The `State`
variable correspond to the captured environment of a closure. The `Input` must be
a unit or tuple type, correspond to the arguments of the closure. The `Output` is
the return type of the closure.

In additional to letting you name the closure type, the function body cannot capture
any variable by default, so all captures must be explicit.

# Nightly only


As this crate depends on unstable featues, unless `fn_traits` and `unboxed_closures`
become stable this crate only works on nightly build.