2 unstable releases
0.2.0 | Aug 21, 2024 |
---|---|
0.1.0 | Aug 17, 2024 |
#1477 in Rust patterns
76 downloads per month
5KB
error-doc
A simple proc macro to generate #[doc]
comments from #[error]
messages
Usage
The errors
macro derives thiserror::Error
and core::fmt::Debug
traits, and automatically generates missing documents for error variants from error messages.
Using error_doc
macro, you can also derive Error
and Debug
trait separately.
Example
#[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,
}
and
#[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,
}
generates
#[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,
}
License
Licensed under either of
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~260–720KB
~17K SLoC