Thin slice type for bumpalo
.
bumpalo_thin_slice
provides three items: BumpaloThinSliceExt
, ThinSlice
, and ThinSliceMut
.
ThinSlice
and ThinSliceMut
are structs consisting of a single pointer into a Bump
allocation where the length and data is stored contiguously.
This allows for storing slices in less space, which can be beneficial for reducing the size of nodes in tree structures stored in a Bump
allocator.
They also dereference to a regular slice, allowing for all the flexibility that slices in the standard library come with.
BumpaloThinSliceExt
is a trait implemented for bumpalo::Bump
that provides .alloc_thin_slice_*()
methods for each corresponding .alloc_slice_*()
method that Bump
comes with.
Using these three items, you should be able to replace &'bump [T]
with ThinSlice<'bump, T>
, &'bump mut [T]
with ThinSliceMut<'bump, T>
, and bump.alloc_slice_*()
methods with bump.alloc_thin_slice_*()
.
TODO
use bumpalo_thin_slice::{BumpaloThinSliceExt, ThinSliceMut, ThinSlice};
TODO