wherror 2.4.0

The same derive(Error) macro thiserror provides + the features you want!
Documentation
1
2
3
4
5
6
7
8
9
10
11
use wherror::Error;

#[derive(Error, Debug)]
pub enum Error {
    #[error("failed to open")]
    OpenFile(#[from] std::io::Error),
    #[error("failed to close")]
    CloseFile(#[from] std::io::Error),
}

fn main() {}