| Crates.io | panic-custom |
| lib.rs | panic-custom |
| version | 0.1.1 |
| created_at | 2024-03-04 09:26:46.28864+00 |
| updated_at | 2024-03-04 09:44:38.090402+00 |
| description | Small panicking rust crate that allows to easily set the behavior of panicking for embedded or regular no_std binaries. |
| homepage | |
| repository | https://github.com/not-forest/panic-custom |
| max_upload_size | |
| id | 1161458 |
| size | 22,542 |
Small crate for custom panicking behavior, primarily designed for embedded or no_std projects.
By default, its behavior for panics is to halt in both release and debug mode.
This crate, panic_custom, allows developers to customize this behavior by providing a custom panic handler function.
The crate provides two main ways to define custom panicking behavior:
define_panic! macro with a closure argument.#[define_panic] procedural macro.define_panic! MacroThe define_panic! macro allows you to define custom panicking behavior by passing a closure as an argument.
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
});
The #[define_panic] procedural macro allows you to define a custom panic handler function.
To use this macro, enable the proc_macros feature and include features = "proc_macros" in your Cargo.toml.
[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: Enables procedural macros for custom panic handling.
abort_on_debug: Sets the default behavior to abort on panic in debug mode. By default, the crate halts on panic in debug mode.
abort_on_release: Sets the default behavior to abort on panic in release mode. By default, the crate halts on panic in release mode.