#error #error-message #docs #generate #thiserror #proc-macro #comments

error-doc

一个简单的过程宏,可以从#[error]消息生成#[doc]注释

2个不稳定版本

新版本 0.2.0 2024年8月21日
0.1.0 2024年8月17日

#366 in 过程宏

Download history 169/week @ 2024-08-14

169 每月下载量

MIT/Apache

5KB

error-doc

一个简单的过程宏,可以从#[doc]注释从#[error]消息

用法

errors宏会派生thiserror::Errorcore::fmt::Debug特性,并自动从错误消息生成错误变体的缺失文档。

使用error_doc宏,您还可以单独派生ErrorDebug特性。

示例

#[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,
}

许可证

根据您的选择,受以下任一许可证的许可:

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,均将如上所述双重许可,不附加任何额外条款或条件。

依赖项

~300–760KB
~18K SLoC