For that haven’t seen it, I’ll drop in my library SNAFU
Along the way, it makes adding details to your error easier (automatic calls to Into without a closure; optional implicit details).
It combines string-like errors (anyhow) and structured errors (thiserror) in one library.
It has basic command line error formatting that shows the causal chain without duplication.
I don’t use eyre so I don’t feel comfortable comparing to it.
Having the context selectors called the exact same as the variants was the way the original version of SNAFU worked, but it was also the number one cause of confusion and support requests.
[0]: https://docs.rs/snafu/latest/snafu/derive.Snafu.html#changin...
.context(ReticulatingSnafu { spline: 42 })?
Automatically generates structs for typing error contexts instead of just having strings. This forms a chain of causes, each of which contains additional context about what was happening when the error was returned.https://doc.rust-lang.org/std/backtrace/struct.Backtrace.htm...