macro_rules! evanesco {
($item:expr) => { ... };
}Expand description
Alias for Box::leak. The item is still there, it’s just invisible. Can be revealed with aparecium!.
§Examples
If the returned pointer is dropped this causes a memory leak. You forgot where you put it, and it’s invisible.
ⓘ
let a = Box::new(vec![5; 100]);
evanesco!(a);
println!("{a:?}");let ostrich = Box::new(vec![5; 100]);
// What do you have there?
evanesco!(ostrich);
// A smoothie..?Using Box::from_raw is one way of getting the item back.
This crate allows that function to be cast with aparecium!.
let a: &mut Vec<i32> = evanesco!(Box::new(vec![5; 100]));
assert_eq!(unsafe { aparecium!(a) }, Box::new(vec![5; 100]));