2 个版本
0.1.1 | 2023年6月14日 |
---|---|
0.1.0 | 2023年6月14日 |
1833 in Rust 模式
7KB
58 代码行
枚举码
简介
enum-code
是一个用于 enum
类型的 derive
宏。该库生成将错误码与错误类型关联的代码。它可以与 thiserror
库一起使用。开发者可以通过调用 get_code
方法快速检索错误码。
安装
enum-code
已发布在 Cargo 上,可以使用以下命令安装:
$ cargo add enum-code
使用
-
将
Code
属性添加到enum
类型#[derive(enum_code::Code)] enum TestError { #[code(1)] Tuple(String), #[code(2)] Struct { message: String }, #[code(3)] Simple, }
-
代码生成
对于上面的
TestError
枚举,生成一个关联的impl TestError
结构体,其中包含一个get_code
方法,该方法根据变体值返回相应的错误码。impl TestError { pub const fn get_code(&self) -> u32 { match self { TestError::Tuple(..) => 1u32, TestError::Struct { .. } => 2u32, TestError::Simple => 3u32, } } }
-
检索错误码
可以通过调用
get_code
来检索错误码let err = TestError::Tuple("error message".to_owned()); let code = err.get_code(); println!("error code: {}", code); // should print 「error code: 1」
许可证
MIT
依赖
~285–740KB
~18K SLoC