#![cfg_attr(all(coverage_nightly, test), feature(coverage_attribute))]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc(html_logo_url = "https://media.githubusercontent.com/media/microsoft/oxidizer/refs/heads/main/crates/ohno_macros/logo.png")]
#![doc(html_favicon_url = "https://media.githubusercontent.com/media/microsoft/oxidizer/refs/heads/main/crates/ohno_macros/favicon.ico")]
use proc_macro::TokenStream;
mod derive_error;
mod enrich_err;
mod error_type_attr;
mod utils;
#[proc_macro_derive(Error, attributes(error, display, no_constructors, no_debug, from))]
#[cfg_attr(test, mutants::skip)]
pub fn derive_error(input: TokenStream) -> TokenStream {
derive_error::derive_error(input)
}
#[proc_macro_attribute]
#[cfg_attr(test, mutants::skip)]
pub fn enrich_err(args: TokenStream, input: TokenStream) -> TokenStream {
enrich_err::enrich_err(args, input)
}
#[proc_macro_attribute]
#[cfg_attr(test, mutants::skip)]
pub fn error(args: TokenStream, input: TokenStream) -> TokenStream {
error_type_attr::error(args, input)
}