MemoryPool: Add unmanaged versions #23234
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The memory pool takes a special place among the Zig std allocators since it is the only one that doesn't expose an
Allocator
interface.Because it doesn't have to adhere to the
Allocator
interface (which doesn't take an explicit child allocator) the memory pool is free to take an allocator as a parameter for its functions and it makes sense to me that there should be an unmanaged version.This is also in accordance with Zig's stated goal to embrace unmanaged-style containers by 0.15.0.
This pull request adds
MemoryPoolUnmanaged
,MemoryPoolAlignedUnmanaged
,MemoryPoolExtraUnmanaged
and the corresponding...WithAllocator
variants, to which the old types now alias.MemoryPoolError
has also been replaced withAllocator.Error
since it's the same anyways.