easy-error 0.1.1

Simple error utilities
Documentation
use easy_error::{ensure, Error, ResultExt};
use std::{fs::File, io::Read};

fn run() -> Result<i32, Error> {
    let file = std::env::args().nth(1).unwrap_or("example.txt".to_string());
    let mut file = File::open(file).context("Could not open file")?;

    let mut contents = String::new();
    file.read_to_string(&mut contents)
        .context("Unable to read file")?;

    let value = contents.trim().parse().context("Could not parse file")?;
    ensure!(value != 0, "Value cannot be zero");

    Ok(value)
}

fn main() {
    if let Err(e) = run() {
        eprintln!("Error: {}", e);
        e.iter_causes().for_each(|c| eprintln!("Caused by: {}", c));
    }
}