2个不稳定版本
新版本 0.2.0 | 2024年8月21日 |
---|---|
0.1.0 | 2024年8月17日 |
#366 in 过程宏
169 每月下载量
5KB
error-doc
一个简单的过程宏,可以从#[doc]
注释从#[error]
消息
用法
errors
宏会派生thiserror::Error
和core::fmt::Debug
特性,并自动从错误消息生成错误变体的缺失文档。
使用error_doc
宏,您还可以单独派生Error
和Debug
特性。
示例
#[error_doc::errors]
pub enum SomeError {
#[error("failed to open config file")]
OpenFile(#[from] std::io::Error),
#[error(transparent)]
#[doc = "Database error"]
Database(#[from] sqlx::Error),
#[error("unexpected value: `{0}`")]
#[doc = "Unexpected value is provided"]
UnexpectedValue(u16),
#[error("some other error")]
Other,
}
和
#[error_doc::error_doc]
#[derive(thiserror::Error, Debug)]
pub enum SomeError {
#[error("failed to open config file")]
OpenFile(#[from] std::io::Error),
#[error(transparent)]
#[doc = "Database error"]
Database(#[from] sqlx::Error),
#[error("unexpected value: `{0}`")]
#[doc = "Unexpected value is provided"]
UnexpectedValue(u16),
#[error("some other error")]
Other,
}
生成
#[derive(thiserror::Error, Debug)]
pub enum SomeError {
#[error("failed to open config file")]
#[doc = "Failed to open config file"]
OpenFile(#[from] std::io::Error),
#[error(transparent)]
#[doc = "Database error"]
Database(#[from] sqlx::Error),
#[error("unexpected value: `{0}`")]
#[doc = "Unexpected value is provided"]
UnexpectedValue(u16),
#[error("some other error")]
#[doc = "Some other error"]
Other,
}
许可证
根据您的选择,受以下任一许可证的许可:
- MIT许可证(《LICENSE-MIT》或https://opensource.org/licenses/MIT》)
- Apache许可证,版本2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0》)
。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,均将如上所述双重许可,不附加任何额外条款或条件。
依赖项
~300–760KB
~18K SLoC