Skip to content

Commit 4185a1f

Browse files
CoAlloc: VecDeque: COOP_PREFERRED
1 parent ee2504b commit 4185a1f

File tree

2 files changed

+16
-16
lines changed

2 files changed

+16
-16
lines changed

library/alloc/src/collections/vec_deque/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2799,11 +2799,11 @@ where
27992799
}
28002800

28012801
#[stable(feature = "rust1", since = "1.0.0")]
2802-
impl<T, A: Allocator, const COOP_PREFERRED: bool> FromIterator<T> for VecDeque<T, A, COOP_PREFERRED>
2802+
impl<T, const COOP_PREFERRED: bool> FromIterator<T> for VecDeque<T, Global, COOP_PREFERRED>
28032803
where
2804-
[(); alloc::co_alloc_metadata_num_slots_with_preference::<A>(COOP_PREFERRED)]:,
2804+
[(); alloc::co_alloc_metadata_num_slots_with_preference::<Global>(COOP_PREFERRED)]:,
28052805
{
2806-
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> VecDeque<T, A, COOP_PREFERRED> {
2806+
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> VecDeque<T, Global, COOP_PREFERRED> {
28072807
SpecFromIter::spec_from_iter(iter.into_iter())
28082808
}
28092809
}
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
use super::{IntoIter, VecDeque};
2-
use crate::alloc::Allocator;
2+
use crate::Global;
33
use core::alloc;
44

55
/// Specialization trait used for `VecDeque::from_iter`
66
pub(super) trait SpecFromIter<T, I> {
77
fn spec_from_iter(iter: I) -> Self;
88
}
99

10-
impl<T, I, A: Allocator, const COOP_PREFERRED: bool> SpecFromIter<T, I>
11-
for VecDeque<T, A, COOP_PREFERRED>
10+
impl<T, I, const COOP_PREFERRED: bool> SpecFromIter<T, I>
11+
for VecDeque<T, Global, COOP_PREFERRED>
1212
where
1313
I: Iterator<Item = T>,
14-
[(); alloc::co_alloc_metadata_num_slots_with_preference::<A>(COOP_PREFERRED)]:,
14+
[(); alloc::co_alloc_metadata_num_slots_with_preference::<Global>(COOP_PREFERRED)]:,
1515
{
1616
default fn spec_from_iter(iterator: I) -> Self {
1717
// Since converting is O(1) now, just re-use the `Vec` logic for
1818
// anything where we can't do something extra-special for `VecDeque`,
1919
// especially as that could save us some monomorphiziation work
2020
// if one uses the same iterators (like slice ones) with both.
21-
crate::vec::Vec::<T, A, COOP_PREFERRED>::from_iter(iterator).into()
21+
crate::vec::Vec::<T, Global, COOP_PREFERRED>::from_iter(iterator).into()
2222
}
2323
}
2424

25-
impl<T, A: Allocator, const COOP_PREFERRED: bool> SpecFromIter<T, crate::vec::IntoIter<T, A, COOP_PREFERRED>>
26-
for VecDeque<T, A, COOP_PREFERRED>
25+
impl<T, const COOP_PREFERRED: bool> SpecFromIter<T, crate::vec::IntoIter<T, Global, COOP_PREFERRED>>
26+
for VecDeque<T, Global, COOP_PREFERRED>
2727
where
28-
[(); alloc::co_alloc_metadata_num_slots_with_preference::<A>(COOP_PREFERRED)]:,
28+
[(); alloc::co_alloc_metadata_num_slots_with_preference::<Global>(COOP_PREFERRED)]:,
2929
{
3030
#[inline]
31-
fn spec_from_iter(iterator: crate::vec::IntoIter<T, A, COOP_PREFERRED>) -> Self {
31+
fn spec_from_iter(iterator: crate::vec::IntoIter<T, Global, COOP_PREFERRED>) -> Self {
3232
iterator.into_vecdeque()
3333
}
3434
}
3535

36-
impl<T, A: Allocator, const COOP_PREFERRED: bool> SpecFromIter<T, IntoIter<T, A, COOP_PREFERRED>>
37-
for VecDeque<T, A, COOP_PREFERRED>
36+
impl<T, const COOP_PREFERRED: bool> SpecFromIter<T, IntoIter<T, Global, COOP_PREFERRED>>
37+
for VecDeque<T, Global, COOP_PREFERRED>
3838
where
39-
[(); alloc::co_alloc_metadata_num_slots_with_preference::<A>(COOP_PREFERRED)]:,
39+
[(); alloc::co_alloc_metadata_num_slots_with_preference::<Global>(COOP_PREFERRED)]:,
4040
{
4141
#[inline]
42-
fn spec_from_iter(iterator: IntoIter<T, A, COOP_PREFERRED>) -> Self {
42+
fn spec_from_iter(iterator: IntoIter<T, Global, COOP_PREFERRED>) -> Self {
4343
iterator.into_vecdeque()
4444
}
4545
}

0 commit comments

Comments
 (0)