I imagine this could be adapted to use the same pattern as with_context
let file = open(config_file)
.with_zip_err(|| format!("Opening config file '{config_file}'"))?;
with a thiserror
style Error of
#[derive(Error, Debug)]
enum Error {
#[error("IO Error of: {0} with context of {1:?}")]
Io(#[from] std::io::Error, #[context] Option<String>)
}