enum_default 0.2.5

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
extern crate enum_default;
use enum_default::EnumDefault;

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

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

fn main() {
    assert!(TestEnum::default() == TestEnum::First);
    assert!(TestEnum2::default() == TestEnum2::Second);
}