rust/library/alloc/src
Yuki Okushi e2765f8cbd
Rollup merge of #81687 - WaffleLapkin:split_at_spare, r=KodrAus
Make Vec::split_at_spare_mut public

This PR introduces a new method to the public API, under
`vec_split_at_spare` feature gate:

```rust
impl<T, A: Allocator> impl Vec<T, A> {
    pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>]);
}
```

The method returns 2 slices, one slice references the content of the vector,
and the other references the remaining spare capacity.

The method was previously implemented while adding `Vec::extend_from_within` in #79015,
and used to implement `Vec::spare_capacity_mut` (as the later is just a
subset of former one).

See also previous [discussion in `Vec::spare_capacity_mut` tracking issue](https://github.com/rust-lang/rust/issues/75017#issuecomment-770381335).

## Unresolved questions

- [ ] Should we consider changing the name? `split_at_spare_mut` doesn't seem like an intuitive name
- [ ] Should we deprecate `Vec::spare_capacity_mut`? Any usecase of `Vec::spare_capacity_mut` can be replaced with `Vec::split_at_spare_mut` (but not vise-versa)

r? `@KodrAus`
2021-02-10 12:24:22 +09:00
..
alloc Rename AllocRef to Allocator and (de)alloc to (de)allocate 2020-12-04 14:47:15 +01:00
collections Auto merge of #81361 - ssomers:btree_drainy_refactor_7, r=Mark-Simulacrum 2021-02-08 23:37:06 +00:00
prelude mv std libs to library/ 2020-07-27 19:51:13 -05:00
raw_vec Rename AllocRef to Allocator and (de)alloc to (de)allocate 2020-12-04 14:47:15 +01:00
rc Re-stabilize Weak::as_ptr &friends for unsized T 2021-01-06 19:30:22 -05:00
sync Rollup merge of #80764 - CAD97:weak-unsized-as-ptr-again, r=RalfJung 2021-01-16 17:29:56 +00:00
vec update tracking issue for vec_split_at_spare 2021-02-10 09:50:59 +10:00
alloc.rs move WriteCloneIntoRaw into alloc::alloc 2021-01-12 12:24:28 -08:00
borrow.rs Mention Arc::make_mut and Rc::make_mut in the documentation of Cow 2020-12-28 17:13:28 +01:00
boxed.rs Rollup merge of #80438 - crlf0710:box_into_inner, r=m-ou-se 2021-02-10 12:24:19 +09:00
fmt.rs Improve grammar in documentation of format strings 2021-01-01 23:07:35 +01:00
lib.rs Rollup merge of #81526 - ojeda:btree-use-unwrap_unchecked, r=scottmcm 2021-02-07 14:45:46 +01:00
macros.rs Auto merge of #79233 - yoshuawuyts:alloc-doc-alias, r=GuillaumeGomez 2021-01-22 21:48:41 +00:00
raw_vec.rs Auto merge of #79113 - andjo403:raw_vec_ptr, r=m-ou-se 2021-01-26 02:56:37 +00:00
rc.rs rename raw_const/mut -> const/mut_addr_of, and stabilize them 2021-01-29 15:18:45 +01:00
slice.rs Replace the tracking issue for the slice_group_by feature 2020-12-31 12:13:03 +01:00
str.rs Remove many unnecessary manual link resolves from library 2020-12-31 11:54:32 -08:00
string.rs Fix small typo 2021-01-31 12:19:09 +01:00
sync.rs Rollup merge of #79285 - yoshuawuyts:stabilize-arc_mutate_strong_count, r=m-ou-se 2021-01-31 01:47:20 +01:00
task.rs Stabilize the Wake trait 2021-02-03 16:54:29 +01:00
tests.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00