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.
feat: Add support for custom external allocators
This pull request adds support for third-party allocators by introducing a new ExternalAllocator trait.
Motivation
The existing Allocator trait requires DerefMut<Target=[u8]>, which is incompatible with certain allocator designs, such as arena allocators that do not expose their memory as a single slice. This change introduces a reallocate/deallocate model to support these use cases.
Implementation
This feature is implemented as a non-breaking addition to the existing allocation system.
Validation
This change is backward-compatible. All existing tests pass, and a new integration test using bumpalo as a dev-dependency has been added to verify the functionality of the ExternalAllocator implementation.