#枚举 #字符串 # #转换 #字符串表示

enum_str

创建一个单元枚举,以及枚举变体与字符串之间的转换

3 个版本

使用旧的 Rust 2015

0.1.2 2018年4月12日
0.1.1 2018年4月11日
0.1.0 2018年4月11日

#34 in #string-representation

MIT/Apache

7KB

此 crate 提供了一个宏,用于创建单元枚举,以及枚举变体到字符串表示和反向的转换。

为什么还需要另一个 crate?

字符串表示不必与枚举变体的标识符相同。下面示例中提供了解释。

示例

#[macro_use] extern crate enum_str;

use std::str::FromStr;
use enum_str::{Error, AsStr};

fn main() {
    enum_str! {
       Fruit,
       (Apple, "🍎"),
       (Pineapple, "🍍"),
       (Strawberry, "🍓"),
    }
    assert_eq!("🍎", Fruit::Apple.as_str());
    assert_eq!(Fruit::Apple, Fruit::from_str("🍎").unwrap());
}

lib.rs:

此 crate 提供了一个宏,用于创建单元枚举,以及枚举变体到字符串表示和反向的转换。

为什么还需要另一个 crate?

字符串表示不必与枚举变体的标识符相同。下面示例中提供了解释。

示例

#[macro_use] extern crate enum_str;

use std::str::FromStr;
use enum_str::{Error, AsStr};

fn main() {
enum_str! {
Fruit,
(Apple, "🍎"),
(Pineapple, "🍍"),
(Strawberry, "🍓"),
}
assert_eq!("🍎", Fruit::Apple.as_str());
assert_eq!(Fruit::Apple, Fruit::from_str("🍎").unwrap());
}

依赖

~1.5MB
~38K SLoC