error-utils-derive

Crates.ioerror-utils-derive
lib.rserror-utils-derive
version0.1.3
sourcesrc
created_at2022-07-24 19:14:22.515134
updated_at2022-07-25 10:52:17.606047
descriptionSome rust proc-macros to simplify common error handling patterns
homepage
repositoryhttps://gitlab.com/robert-oleynik/rust-error-utils
max_upload_size
id632152
size17,010
(robert-oleynik)

documentation

README

pipeline status Latest Release

rust-error-utils

A collection of some rust macros to simplify common error handling patterns.

  1. Usage
    1. handle_err Macro
    2. fail Macro
    3. Errors Derive Macro
  2. License

Usage

Add to Cargo.toml:

[dependencies.error-utils]
git = "https://gitlab.com/robert-oleynik/rust-error-utils.git"

handle_err Macro

use error_utils::handle_err;
use std::path::Path;

fn read_file<P: AsRef<Path>>(path: P) -> std::io::Result<()> {
	let content = handle_err!(std::fs::read_string(path), err => {
		eprintln!("{}", err);
		return Err(err);
	})
	// ...
}

See Documentation

fail Macro

Shorthand for std::process::exit

fail!();
// or
fail!(10);

See Documentation

Errors Derive Macro

This Macro requires the derive feature. (Enabled per default)

Note: This example uses the toml crate.

use std::path::Path;

use error_utils::Errors;

#[derive(Debug, Errors)]
enum ConfigError {
	#[error("Failed to read config file (Reason: {})", from)]
	Io(std::io::Error),
	#[error("Failed to parse config file (Reason: {})", from)]
	Toml(toml::de::Error)
}

fn read_config<P: AsRef<Path>>(path: P) -> Result<toml::Value, ConfigError> {
	let content = std::fs::read_to_string(path)?;
	Ok(toml::from_str(&content)?)
}

See Documentation

License

This project is license under the MIT license. See LICENSE

Commit count: 43

cargo fmt