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