enum_default 0.2.6

DEPRECATED PLEASE SEE: https://rust-lang.github.io/rfcs/3107-derive-default-enum.html ---------------------------------------------------------------------------------------- enum_default provides an EnumDefault derive macro that provides a std::Default implementation for Enums by using the first value or specifying a #[default] attribute
Documentation
#![allow(dead_code)]

extern crate enum_default;
use enum_default::EnumDefault;

#[test]
pub fn it_derives_default_for_enum_from_first_variant() {
    #[derive(EnumDefault, PartialEq)]
    enum TestEnum {
        A,
        B,
    }

    assert!(TestEnum::default() == TestEnum::A);
}

#[test]
pub fn it_derives_default_for_enum_from_explicit_variant() {
    #[derive(EnumDefault, PartialEq)]
    enum TestEnum {
        A,
        #[default]
        B,
    }

    assert!(TestEnum::default() == TestEnum::B);
}

#[test]
pub fn it_derives_default_for_enum_with_generics_from_first_variant() {
    #[derive(EnumDefault, PartialEq)]
    enum TestEnum<T> {
        A,
        B(T),
    }

    assert!(TestEnum::<()>::default() == TestEnum::A);
}

#[test]
pub fn it_derives_default_for_enum_with_generics_from_explicit_variant() {
    #[derive(EnumDefault, PartialEq)]
    enum TestEnum<T> {
        A(T),
        #[default]
        B,
    }

    assert!(TestEnum::<()>::default() == TestEnum::B);
}