2个版本
0.1.1 | 2024年3月4日 |
---|---|
0.1.0 | 2024年3月4日 |
#11 在 #abort
10KB
69 行
Panic Custom
一个小型crate,用于自定义panic行为,主要用于嵌入式或no_std
项目。
默认情况下,其在发布和调试模式下的panic行为是停止。此crate(panic_custom
)允许开发人员通过提供自定义panic处理函数来自定义此行为。
用法
该crate提供了两种定义自定义panic行为的主要方式
- 使用带有闭包参数的
define_panic!
宏。 - 使用
#[define_panic]
过程宏。
使用define_panic!
宏
define_panic!
宏允许您通过传递闭包作为参数来定义自定义panic行为。
use panic_custom::define_panic;
const MY_CUSTOM_CONSTANT: usize = 0;
define_panic!(|info| {
let a = &MY_CUSTOM_CONSTANT;
let b = MY_CUSTOM_CONSTANT;
42 // The return type is not important
});
使用#[define_panic]过程宏
#[define_panic]
过程宏允许您定义自定义panic处理函数。要使用此宏,请启用proc_macros
功能,并在您的Cargo.toml
中包含features = "proc_macros"
。
[dependencies]
panic_custom = { version = "0.1", features = ["proc_macros"] }
use panic_custom::define_panic;
use core::panic::PanicInfo;
#[define_panic]
fn my_panic(info: &PanicInfo) -> ! {
loop {}
}
特性
-
proc_macros
:启用自定义panic处理的过程宏。 -
abort_on_debug
:将默认行为设置为在调试模式下终止panic。默认情况下,该crate在调试模式下停止panic。 -
abort_on_release
:将默认行为设置为在发布模式下终止panic。默认情况下,该crate在发布模式下停止panic。
依赖项
~215KB