Crates.io | destruct-drop-derive |
lib.rs | destruct-drop-derive |
version | 0.2.0 |
source | src |
created_at | 2021-09-28 21:57:18.787602 |
updated_at | 2023-06-07 11:48:52.308096 |
description | Actual derive macro for destruct-drop. |
homepage | |
repository | https://github.com/OpenByteDev/destruct-drop-derive |
max_upload_size | |
id | 457800 |
size | 6,327 |
Macro for dropping the fields of a struct or enum without dropping the container.
Add #[derive(DestructDrop)]
to your struct
or enum
definition.
use destruct_drop::DestructDrop;
#[derive(DestructDrop)]
struct Container {
inner: Inner
}
struct Inner;
impl Drop for Container {
fn drop(&mut self) {
println!("dropped Container");
}
}
impl Drop for Inner {
fn drop(&mut self) {
println!("dropped Inner");
}
}
fn main() {
// prints "dropped Inner" and then "dropped Container"
drop(Container { inner: Inner });
// prints only "dropped Inner"
Container { inner: Inner }.destruct_drop();
}
Licensed under MIT license (LICENSE or http://opensource.org/licenses/MIT)