Hi,
I'm currently a bit stuck as I don't know, how to shorten the following nested match
.
match dotenv::from_path("config.env") {
Err(e) => match e {
dotenv::Error::Io(ioerr) => match ioerr.kind() {
std::io::ErrorKind::NotFound => {
info!("config.env not found, creating example file");
()
},
_ => return Err("reading config.env failed".into()),
},
_ => return Err("reading config.env failed".into()),
},
_ => return Err("reading config.env failed".into()),
};
As you can see, I return 3 times the same error. I could have shorten this by using a flag, but instead I'd like to just handle this special error and all others should led to an error. So a simple if
would be enough like this:
// Hint: this doesn't compile
let result = dotenv::from_path("config.env");
if result.err().Io().kind() == std::io::ErrorKind::NotFound {
info!("config.env not found, creating example file");
} else {
return Err("reading config.env failed".into());
}
Is it possible to just handle this special case and put all other cases in the same else-Branch?
Thank you