Original code from rustc_arena. There are some modifications, including converting unstable features to stable equivalents, allocating shared references and adding iteration, and adding the ability to filter and coalesce behind a mutable reference.
The arena, a fast but limited type of allocator.
Arenas are a type of allocator that destroy the objects within, all at once, once the arena itself is destroyed. They do not support deallocation of individual objects while the arena itself is still alive. The benefit of an arena is very fast allocation; just a pointer bump.
pub use self::typed_arena::TypedArena;
pub use self::typed_arena::TypedArenaGen;
pub use self::typed_arena::TypedArenaMut;
pub use dropless_arena::DroplessArena;