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;

#[derive(EnumDefault, PartialEq)]
enum TestEnum {
    First,
    Second,
}

#[derive(EnumDefault, PartialEq)]
enum TestEnum2 {
    First,
    #[default]
    Second = 1337,
}

#[derive(EnumDefault, PartialEq)]
enum TestEnum3<T> {
    A,
    B(T),
}

#[derive(EnumDefault, PartialEq)]
enum TestEnum4<T> {
    A(T),
    #[default]
    B,
}

fn main() {
    assert!(TestEnum::default() == TestEnum::First);
    assert!(TestEnum2::default() == TestEnum2::Second);
    assert!(TestEnum3::<()>::default() == TestEnum3::A);
    assert!(TestEnum4::<()>::default() == TestEnum4::B);
}