#枚举 #int #traits #整数 #derive #macro

from_int

一个包,可以轻松为带有 #[derive(FromInt)] 的枚举添加 from_int 方法

3 个版本

使用旧的 Rust 2015

0.1.2 2018 年 3 月 28 日
0.1.1 2018 年 3 月 27 日
0.1.0 2018 年 3 月 27 日

Rust 模式 中排名第 2437

MIT 许可证

4KB

from_int 最新版本

动机

该软件包提供了一个简单的方法将普通整数转换为枚举类型,这是 Rust 目前可以在相反方向上原生的操作。

使用方法

from_int 的使用非常简单。只需将其作为依赖项添加到您的软件包中,然后

extern crate from_int; // contains the trait
#[macro_use] extern crate from_int_derive; // contains the macro

use from_int::FromInt;

#[derive(FromInt, Debug, PartialEq)]
enum TestEnum {
    VariantOne = 1,
    VariantTwo = 2,
    VariantThree = 528,
    VariantX = 999
}

assert_eq!(TestEnum::VariantOne, TestEnum::from_int(1).unwrap());
assert_eq!(TestEnum::VariantTwo, TestEnum::from_int(2).unwrap());
assert_eq!(TestEnum::VariantThree, TestEnum::from_int(528).unwrap());
assert_eq!(TestEnum::VariantX, TestEnum::from_int(999).unwrap());

// This would panic:
assert_eq!(None, TestEnum::from_int(123));

依赖项

~2MB
~47K SLoC