[][src]Crate cursed_collections

Collections that (seem) to break Rust safety.

Mutating a Vec as we still hold references to it's element is forbidden by the borrow checker. The reason is that the vector could grow and move its elements to a new buffer. Our poor references would point then point to invalid memory. But, what if you know you don't need more elements? Vec doesn't know about it, so that is where cursed-collections comes to the rescue. This create offers different collections that offer an extremely narrow interface in exchange of doing things that are unusual in safe rust.

All collections in this crate are extremely cursed, yet respect the safety garanties of Rust… assuming they are bug free!



A collection onto which new values can be appended, while still keeping references to previous values valid.