Error handling best practices have changed in Rust yet again. Investigate snafu and fehler.
Alternatively, anyhow and thiserror.
error-chain was replaced with thiserror. Next is replacing failure with anyhow.