# 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 ```rust #[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 ```rust #[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 ```rust #[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](./LICENSE-MIT) or https://opensource.org/licenses/MIT) * Apache License, Version 2.0 ([LICENSE-APACHE](./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.