#abort #attributes #error #proc-macro #error-handling

abort-if

一个非常有用的属性,可以在编译时如果出现错误则终止函数

3个版本

0.1.2 2022年12月28日
0.1.1 2022年12月28日
0.1.0 2022年12月28日

#17 in #abort

MIT许可证

7KB

Abort-if包

abort_if过程宏确保在满足特定条件时特定函数会引发panic。

安装

将以下内容放入你的Cargo.toml文件

[dependencies]
abort-if = "0.1.2"

示例

你可以确保在启用功能x时函数不会被使用

use abort_if::abort_if;
#[abort_if(feature = x)]
fn foo() {
	using_that_feature();
}

fn main() {
	foo();
}

如果该功能被启用,此代码将引发panic。

特性

默认使用compiler_error!引发panic。这将输出以下信息

error: Condition was met.
 --> src/main.rs:5:1
  |
5 | #[abort_if(feature = "x")]
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the attribute macro `abort_if` (in Nightly builds, run with -Z macro-backtrace for more info)

你可以使用特性custom_abort来编写自定义的abort宏。当使用此特性时,确保有一个custom_abort_error!宏,其参数为expr


如果你使用custom_abort特性,你也可以使用keep_going特性。此特性使得如果你的custom_abort_error宏作为警告而不是硬错误工作,代码将继续执行。

依赖

~1.5MB
~36K SLoC