1 个不稳定版本
0.1.0 | 2022年9月7日 |
---|
#16 在 #variant-name
273 次每月下载
在 solwalrs 中使用
6KB
57 行
name_variant
生成打印枚举变体名称的方法。
示例
use name_variant::NamedVariant;
#[derive(NamedVariant)]
enum TestEnum {
A,
B(),
C(i32, i32),
D { _name: String, _age: i32 },
VariantTest,
}
fn main() {
let x = TestEnum::C(1, 2);
assert_eq!(x.variant_name(), "C");
let x = TestEnum::A;
assert_eq!(x.variant_name(), "A");
let x = TestEnum::B();
assert_eq!(x.variant_name(), "B");
let x = TestEnum::D {_name: "Jane Doe".into(), _age: 30 };
assert_eq!(x.variant_name(), "D");
let x = TestEnum::VariantTest;
assert_eq!(x.variant_name(), "VariantTest");
}
lib.rs
:
生成打印枚举变体名称的方法。
示例
use name_variant::NamedVariant;
#[derive(NamedVariant)]
enum TestEnum {
A,
B(),
C(i32, i32),
D { _name: String, _age: i32 },
VariantTest,
}
let x = TestEnum::C(1, 2);
assert_eq!(x.variant_name(), "C");
let x = TestEnum::A;
assert_eq!(x.variant_name(), "A");
let x = TestEnum::B();
assert_eq!(x.variant_name(), "B");
let x = TestEnum::D {_name: "Jane Doe".into(), _age: 30 };
assert_eq!(x.variant_name(), "D");
let x = TestEnum::VariantTest;
assert_eq!(x.variant_name(), "VariantTest");
依赖项
~1.5MB
~36K SLoC