I like the ?
syntax a lot because it is very readable and delegates errors nicely but it often becomes unwieldly because ?
only coerces between like-typed error types.
If you define a type which contains each error type and the necessary impls for automatic type coercion, your life becomes much easier.
This macro does that. You define a list of all possible error types, and this macro spits out a system which you need only import.
pub mod error;