# `noop_allocator`
This crate provides an `Allocator` which does nothing: `NoopAllocator<'_>`.
Specifically:
* [`allocate`] and [`allocate_zeroed`] will return `Err` for any
non-zero-sized allocation requests
* [`deallocate`] is a no-op, and does not require that `ptr` be "currently
allocated", or fit `layout`.
* [`shrink`], [`grow`], and [`grow_zeroed`] do not require that `ptr` be
"currently allocated", or fit `old_layout`, and will successfully return
the original pointer unchanged (with the length of the new layout) if the
`ptr` is aligned for the new layout and the new layout is smaller or the
same size as the old layout.
This type is usable as an [`Allocator`] when you want to borrow an existing
memory range for use in a collection type, for example in
[`Box`][alloc::boxed::Box] or [`Vec`][alloc::vec::Vec].
# Safety:
Many functions in this crate assume that `impl Allocator for
NoopAllocator<'_>` as described above is sound, but `feature(allocator_api)`
is unstable and the preconditions may change.