tiny-error

Crates.iotiny-error
lib.rstiny-error
version1.0.0
sourcesrc
created_at2023-07-23 18:39:53.540889
updated_at2023-07-23 18:39:53.540889
descriptionA small crate for simple error handling
homepage
repositoryhttps://github.com/Sapiet1/tiny-error
max_upload_size
id923891
size15,937
(Sapiet1)

documentation

README

tiny-error

A tiny crate for error handling. It is able to convert items of the Error trait into their messages, allowing for easy propagation.

Examples

use tiny_error::ErrorMessage;

use std::{
    env,
    fs,
    path::PathBuf,
};

fn main() -> Result<(), ErrorMessage> {
    // Text when failed:
    // Error: Invalid input
    // Correct Usage: `[crate_name] example/file/path.txt`
    let path = get_path()?;
    // Text when failed: 
    // Error: No such file or directory (os error 2)
    let file = fs::read_to_string(path)?;

    Ok(())
}

// Gets the first argument passed. If none or more were, returns an
// `ErrorMessage`.
fn get_path() -> Result<PathBuf, ErrorMessage> {
    let mut args = env::args().skip(1);
    let arg = args.next().filter(|_| args.next().is_none());    

    arg
        .map(|input| input.into())
        .ok_or_else(|| ErrorMessage::new(
            "Invalid input\n\
             Correct Usage: `[crate_name] example/file/path.txt`"
        ))
}
Commit count: 6

cargo fmt