impl-enum 0.3.1

Macros that make using enums like trait objects more convenient.
Documentation
#![cfg(feature = "with_methods")]

use std::collections::HashSet;

#[impl_enum::with_methods {
    fn len(&self) -> usize
    fn associated_fn(s: &str)
}]
enum Enum {
    Vec { vec: Vec<u8> },
    Set(HashSet<String>),
}

trait TestTrait {
    fn associated_fn(s: &str) {
        println!("{}", s);
    }
}

impl<T> TestTrait for Vec<T> {}

impl<T> TestTrait for HashSet<T> {}

#[test]
fn test() {
    let e = Enum::Vec {
        vec: vec![1, 2, 3, 4],
    };
    assert_eq!(e.len(), 4);

    let mut set = HashSet::new();
    set.insert("abcd".to_string());
    set.insert("bcde".to_string());
    let e = Enum::Set(set);
    assert_eq!(e.len(), 2);

    e.associated_fn("hello!");
}