variant_count 1.2.0

Derive macro for enum which adds to it the count of variants.
Documentation
#![allow(dead_code)]

use variant_count::VariantCount;

#[derive(VariantCount)]
enum Test {
    First(i32),
    Second(Option<String>),
    Third,
}

mod foo {
    use variant_count::VariantCount;

    #[derive(VariantCount)]
    pub enum TestGen<'a, T: 'a, U>
    where
        U: 'a,
    {
        First(T),
        Second(Option<&'a U>),
        Third(&'a T),
        Fourth(U),
    }
}

#[test]
fn variant_count() {
    assert_eq!(Test::VARIANT_COUNT, 3);
    assert_eq!(foo::TestGen::<i32, bool>::VARIANT_COUNT, 4);
}