#clucompany #macro #code-transformation #no-std

no-std drop_code

Macro for ensuring critical code execution on function return or panics in Rust, making it easy to include essential code for reliable operation

1 stable release

1.0.0 Apr 7, 2024

#1079 in Development tools

Apache-2.0

22KB
404 lines

[drop_code]

(Macro for ensuring critical code execution on function return or panics in Rust, making it easy to include essential code for reliable operation.)

Usage:

Add this to your Cargo.toml:

[dependencies]
drop_code  = "1.0.0"

and this to your source code:

use drop_code::drop_code;

Technical concept:

The drop_code macro generates the drop function code for the Drop trait in Rust, creating a hidden structure that encapsulates user-supplied arguments from the macro and ensuring their transfer. This mechanism guarantees the execution of critical operations when the object is destroyed, facilitating reliable handling of essential code within Rust applications, with the order of code execution dictated by Rust's rules and conventions.

Example:

use drop_code::drop_code;

#[allow(unreachable_code)]
fn main() {
	drop_code! {
		println!("Code that must be executed in any situation."); // 3
	}
	
	println!("your code"); // 1
	panic!("panic info"); // 2
}
See all

License:

This project has a single license (LICENSE-APACHE-2.0).

uproject  Copyright (c) 2022-2024 #UlinProject

 (Denis Kotlyarov).


Apache License:

apache2  Licensed under the Apache License, Version 2.0.



No runtime deps