1 stable release
1.0.0 | Jul 23, 2023 |
---|
#1766 in Rust patterns
6KB
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`"
))
}