diff options
| author | Mark Mansi <markm@cs.wisc.edu> | 2018-04-25 16:33:02 -0500 |
|---|---|---|
| committer | Mark Mansi <markm@cs.wisc.edu> | 2018-04-25 16:33:02 -0500 |
| commit | 256096da9ee680366b839f912e8d3ecccc0da033 (patch) | |
| tree | af468b7e26785c13cd95894035a3144500243bf4 /src/liballoc/raw_vec.rs | |
| parent | 25749ad66de71ffb46e6b04fb0cccf1ae4fc5ed5 (diff) | |
| download | rust-256096da9ee680366b839f912e8d3ecccc0da033.tar.gz rust-256096da9ee680366b839f912e8d3ecccc0da033.zip | |
Make Vec::new const
Diffstat (limited to 'src/liballoc/raw_vec.rs')
| -rw-r--r-- | src/liballoc/raw_vec.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/liballoc/raw_vec.rs b/src/liballoc/raw_vec.rs index 7ef0a27fc72..dc8ad9ee061 100644 --- a/src/liballoc/raw_vec.rs +++ b/src/liballoc/raw_vec.rs @@ -68,6 +68,16 @@ impl<T, A: Alloc> RawVec<T, A> { } } + /// Like `empty` but parametrized over the choice of allocator for the returned `RawVec`. + pub const fn empty_in(a: A) -> Self { + // Unique::empty() doubles as "unallocated" and "zero-sized allocation" + RawVec { + ptr: Unique::empty(), + cap: 0, + a, + } + } + /// Like `with_capacity` but parameterized over the choice of /// allocator for the returned RawVec. #[inline] @@ -124,6 +134,12 @@ impl<T> RawVec<T, Global> { Self::new_in(Global) } + /// Create a `RawVec` with capcity 0 (on the system heap), regardless of `T`, without + /// allocating. + pub fn empty() -> Self { + Self::empty_in(Global) + } + /// Creates a RawVec (on the system heap) with exactly the /// capacity and alignment requirements for a `[T; cap]`. This is /// equivalent to calling RawVec::new when `cap` is 0 or T is |
