#error #macro #utility

error-utils

一些用于简化常见错误处理模式的 Rust 宏

5 个版本

0.1.4 2022 年 7 月 25 日
0.1.3 2022 年 7 月 24 日
0.1.2 2022 年 7 月 24 日
0.1.1 2022 年 7 月 24 日
0.1.0 2022 年 7 月 24 日

#2236 in Rust 模式

MIT 许可证

6KB

pipeline status Latest Release

rust-error-utils

一些用于简化常见错误处理模式的 Rust 宏集合。

  1. 用法
    1. handle_err
    2. fail
    3. Errors 派生宏
  2. 许可证

用法

添加到 Cargo.toml

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

handle_err

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);
	})
	// ...
}

查看 文档

fail

std::process::exit 的缩写

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

查看 文档

Errors 派生宏

此宏需要 derive 功能。(默认启用)

注意:此示例使用了 toml 包。

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)?)
}

查看 文档

许可证

本项目受 MIT 许可证保护。查看 LICENSE

依赖关系

~220KB