3个版本
0.1.2 | 2022年12月28日 |
---|---|
0.1.1 | 2022年12月28日 |
0.1.0 | 2022年12月28日 |
#17 in #abort
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