<div align="center">
<img src="https://raw.githubusercontent.com/microsoft/oxidizer/refs/heads/main/logo.svg" alt="Ohno Macros Logo" width="96">
# Ohno Macros
[](https://crates.io/crates/ohno_macros)
[](https://docs.rs/ohno_macros)
[](https://crates.io/crates/ohno_macros)
[](https://github.com/microsoft/oxidizer/actions/workflows/main.yml)
[](https://codecov.io/gh/microsoft/oxidizer)
[](https://github.com/microsoft/oxidizer/blob/main/LICENSE)
<a href="https://github.com/microsoft/oxidizer"><img src="https://raw.githubusercontent.com/microsoft/oxidizer/refs/heads/main/logo.svg" alt="This crate was developed as part of the Oxidizer project" width="20"></a>
</div>
Macros for the [`ohno`][__link0] crate.
## Macros
* `#[derive(Error)]` - Automatically implement error traits
* `#[enrich_err("message")]` - Add error enrichment with file/line information to function errors
* `#[ohno::error]` - Turn a plain struct into an error type
<hr/>
<sub>
This crate was developed as part of <a href="https://github.com/microsoft/oxidizer">The Oxidizer Project</a>. Browse this crate's <a href="https://github.com/microsoft/oxidizer/tree/main/crates/ohno_macros">source code</a>.
</sub>
[__link0]: https://docs.rs/ohno