Add support for the Rust's unstable allocator-api on Vec #14
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.
This PR adds feature-gated support for rust's new(ish) allocator api on
Vec
(see rust-lang/rust#32838 & https://doc.rust-lang.org/unstable-book/library-features/allocator-api.html).This enables support for custom allocators, which are often needed in video games & high performance projects, as well as make it possible for libraries supporting the API to use
encase
with user-providedVec
s. I haven't added support forBox<T>
which now can also take a custom allocator, as that feature still sometime causes ICEs.As for the feature name, I chose
allocator_api
, as that's also the name of Rust's feature (and it's disabled by default).This takes the form of an additional bound on
Vec
s, which now look likeVec<T, A> where A: std::alloc::Allocator
.