While adding ReallocPlacement to get rid of grow_in_place and shrink_in_place I noticed, that neither of them returning a pointer, so the signatures can't be merged.
If we restructure the signatures of AllocRef a bit, we'll get a more convenient interface. First, I'll introduce a new struct:
This API feels much more rusty. It returns a block when allocating, it's passed as mutable reference, when it is changed, and it's moved out of scope when deallocating.
EDIT: Removed
MemoryLayout<T>
as #50 was closed.While adding
ReallocPlacement
to get rid ofgrow_in_place
andshrink_in_place
I noticed, that neither of them returning a pointer, so the signatures can't be merged. If we restructure the signatures ofAllocRef
a bit, we'll get a more convenient interface. First, I'll introduce a new struct:Now, the signatures of
AllocRef
can be changed:This API feels much more rusty. It returns a block when allocating, it's passed as mutable reference, when it is changed, and it's moved out of scope when deallocating.