I'm using thiserror
and anyhow
to handle errors and when I call the ensure!
macro from anyhow
I get some additional message that's printed after the one I've implemented. Here are some code snippets:
errors.rs
use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("Invalid tolerance. {} is not between 0.0 and 1.0", t)]
ToleranceError { t: f32 }
}
main.rs
fn main() -> Result<(), anyhow::Error> {
let input = user_input::args();
ensure!(input.tolerance < 1.0 && input.tolerance > 0.0, errors::Error::ToleranceError { t: input.tolerance });
// do stuff here
Ok(())
}
When the errors is triggered, it prints:
Error: Invalid tolerance. 2 is not between 0.0 and 1.0
error: process didn't exit successfully: `....` (exit code: 1)
I don't want it to print the second line. How do I prevent this?