#enums #variant #background-jobs #derive

enum-each-variant-derive

Rust的后台任务

4个版本

使用旧的Rust 2015

0.1.3 2018年12月3日
0.1.2 2018年3月29日
0.1.1 2018年3月29日
0.1.0 2018年3月29日

#28 in #background-jobs

MIT 许可证

5KB

#[derive(EachVariant)]

返回枚举每个变体的派生方法

示例用法

#[macro_use]
extern crate enum_each_variant_derive;

#[derive(EachVariant, Eq, PartialEq, Debug)]
enum Thing {
    One,
    Two,
    Three,
    Four,
}

let all: Vec<Thing> = Thing::all_variants();

assert_eq!(all, vec![Thing::One, Thing::Two, Thing::Three, Thing::Four]);

注意

仅适用于没有关联值的枚举。因此,我们无法使用它为此枚举

enum TrainStatus {
    OnTime,
    DelayedBy(std::time::Duration),
}

lib.rs:

返回枚举每个变体的派生方法

示例用法

#[macro_use]
extern crate enum_each_variant_derive;

#[derive(EachVariant, Eq, PartialEq, Debug)]
enum Thing {
    One,
    Two,
    Three,
    Four,
}

let all: Vec<Thing> = Thing::all_variants();

assert_eq!(all, vec![Thing::One, Thing::Two, Thing::Three, Thing::Four]);

注意

仅适用于没有关联值的枚举。因此,我们无法使用它为此枚举

enum TrainStatus {
    OnTime,
    DelayedBy(std::time::Duration),
}

依赖

~2MB
~47K SLoC