alloc/collections/vec_deque/
spec_from_iter.rs1use super::{IntoIter, VecDeque};
2
3pub(super) trait SpecFromIter<T, I> {
5 fn spec_from_iter(iter: I) -> Self;
6}
7
8impl<T, I> SpecFromIter<T, I> for VecDeque<T>
9where
10 I: Iterator<Item = T>,
11{
12 #[track_caller]
13 default fn spec_from_iter(iterator: I) -> Self {
14 crate::vec::Vec::from_iter(iterator).into()
19 }
20}
21
22impl<T> SpecFromIter<T, crate::vec::IntoIter<T>> for VecDeque<T> {
23 #[inline]
24 fn spec_from_iter(iterator: crate::vec::IntoIter<T>) -> Self {
25 iterator.into_vecdeque()
26 }
27}
28
29impl<T> SpecFromIter<T, IntoIter<T>> for VecDeque<T> {
30 #[inline]
31 fn spec_from_iter(iterator: IntoIter<T>) -> Self {
32 iterator.into_vecdeque()
33 }
34}