| Crates.io | allocator_api |
| lib.rs | allocator_api |
| version | 0.6.0 |
| created_at | 2018-03-28 07:37:20.543997+00 |
| updated_at | 2019-04-24 07:52:02.859016+00 |
| description | This is a copy of the unstable allocator_api (https://github.com/rust-lang/rust/issues/32838) and of parts of the unstable alloc feature. Usable with stable rust, but requires 1.33. |
| homepage | |
| repository | https://github.com/glandium/allocator_api |
| max_upload_size | |
| id | 57869 |
| size | 107,965 |
This is a copy of the unstable allocator_api (https://github.com/rust-lang/rust/issues/32838) and of parts of the unstable alloc feature.
Usable with stable rust, but requires 1.33.
The code was copied from the rust code as of 1.34.0 with #[stable] annotations and #[unstable] implementations removed.
In the alloc module (corresponding to parts of both core::alloc and
std::alloc), the oom function infinitely loops instead of calling
core::intrinsics::abort, which is not stable. Users of this crate should use
set_oom_hook to set their own oom function that aborts in the right way (in
non-no_std cases, one can use process::abort()).
In the raw_vec module (corresponding to alloc::raw_vec), RawVec uses
NonNull instead of Unique.
In the boxed module (corresponding to alloc::boxed), the Box type is
augmented such that it is associated with an allocator, similarly to RawVec.
Its API is consequently slightly different from std::boxed::Box (e.g.
from_raw is replaced with from_raw_in). The same (stable) features as
std::boxed::Box are implemented, except for downcast for Box<Any> and
Box<Any + Send>. Like for RawVec, the type relies on NonNull rather than
Unique.
Caveat: the types provided in this crate cannot be used where the corresponding
types from std/alloc are expected. Few APIs should be taking those types
directly as input, though.