* More Warlock provides some collections typically provided by =std= which are optimized for use alongside an arena allocator. That is, these collections *DO NOT free their own memory. The memory they allocate is expected to be cleaned up by the allocator itself. However, when the collections contain items that impl Drop, the collections will drop any items they contain properly.

These collections also differ slightly from the standard collections in that they assume that memory allocations can fail, and will return Results for any operation that allocates memory.

Warlock also provides a very, very, very simple bump allocator, which may be used alongside these data structures.

* Goals - As close to =std= as possible - Compile on Rust stable (see [[About allocators]] for more information)

** Non-goals - Be a 100% drop-in replacement for =std= containers

** Why not to use this crate - You want collections that behave correctly w/r/t memory allocation under any circumstance. - You want a 100% stable crate. This crate is under heavy development

* About allocators As of this writing, there is currently an ongoing effort to add a standard =Allocator= trait/concept to =std=. It is /partially/ complete, however, I expect that it will be quite a while before it lands in stable. In the meantime, this crate provides an =Allocator= trait which is designed to be as close as possible to the proposed standard. Once the standard =Allocator= trait is merged, *this will be dropped.

In the future, this crate will provide an optional feature which will add a blanket implementation of the =std= =Allocator= trait for =warlock::Allocator=.