drop_code

Crates.iodrop_code
lib.rsdrop_code
version1.0.1
created_at2024-04-07 22:54:01.808974+00
updated_at2025-04-15 22:40:32.344003+00
descriptionA macro that allows you to implement code that will be automatically executed after the function code has finished, be it the end of the function or even a panic state.
homepagehttps://github.com/clucompany/drop_code.git
repositoryhttps://github.com/clucompany/drop_code.git
max_upload_size
id1199593
size51,886
Denis Kotlyarov (denisandroid)

documentation

README

Usage

Add this to your Cargo.toml:

[dependencies]
drop_code = "1.0.1"

and this to your source code:

use drop_code::drop_code;

How does this work?

The drop_code macro generates a hidden structure and defines the code for the Drop trait, the user can pass any data to the structure to create more complex code. The Drop trait mechanism ensures that critical operations are executed when an object is destroyed, making it easier to reliably handle important code in Rust applications, but note that the order of code execution is determined by Rust's rules and conventions. Note that this code is executed even during a panic, but only if you have not disabled stack unwinding.

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.



Commit count: 21

cargo fmt