wherror 2.2.2

The same derive(Error) macro thiserror provides + the features you want!
Documentation