overloading 0.1.2

A POC crate that utilizes `Fn*` traits to implement partial overloading
Documentation
#![feature(unboxed_closures)]
#![feature(fn_traits)]

extern crate overloading;

#[overloading::overloading]
fn overloaded(abc: String) -> i32 {
    abc.parse().unwrap()
}

#[overloading::overloading(overloaded)]
fn overloaded() -> i32 {
    114514
}

#[overloading::overloading(overloaded)]
fn overloaded<T: Fn() -> i32>(t: T) -> i32 {
    t()
}

#[test]
fn test() {
    let res = overloaded("123".to_owned());
    assert_eq!(res, 123);

    let res = overloaded();
    assert_eq!(res, 114514);

    let res = overloaded(|| 1919810);
    assert_eq!(res, 1919810);
}