Everything I've built with Rust so far has been tiny in both scope and size, so writing out my error handling code by hand hasn't been much of a hassle. However, I've been meaning to look into some of the popular error handling crates so I don't have to write a ton of boilerplate every time I want to introduce a new type of error in my applications.

Nick Groenen covers two such crates in his blog post on error handling in Rust: https://nick.groenen.me/posts/rust-error-handling/

This reddit thread has further suggestions: https://www.reddit.com/r/rust/comments/gj8inf/rust_structuring_and_handling_errors_in_2020/