4 ms·
This is even easier with the thiserror crate: #[derive(Debug, Error) enum AppError { #[error("io: {0}")] Io(#[from] io::Error) } Automa
by treyd 4mo ago
This is even easier with the thiserror crate:
#[derive(Debug, Error)
enum AppError {
#[error("io: {0}")]
Io(#[from] io::Error)
}
Automatically generates From impls like this and a Display impl that lets you describe the error case with more detail. Very very good ergonomics and completely transparent to downstream libraries.
- dietr1ch 4mo agoI ended up using thiserror everywhere but `:/src/bin/`, and using eyre in there. It's a nice compromise between being precise on your errors with your code, but allowing you to be careless at the very end of the error lifecycle since running into errors there has very few ways of going about them, and you don't want to deal with the burden of updating that error handling all the time.
- OptionOfT 4mo agoI just wish support would land for `backtrace` on stable.