The ability to forget something is intrinsic to Rust at this point. If memory safety requires destructors, the two options are pinning and scopes.
Pin
requires the destructor of a place to be run before invalidating it IIRC. Scopes like crossbeam::scope
allow loaning of the space such that it cannot be forgotten in user code.