Skip to content

Commit 9d00721

Browse files
LunaBorowskaemilio
authored andcommitted
Remove VecLike (#165)
This is a backwards incompatible change. VecLike was deprecated in 0.6.0 released 2 years ago, and that should have given plenty of time to remove its usages.
1 parent b9321bb commit 9d00721

File tree

1 file changed

+0
-73
lines changed

1 file changed

+0
-73
lines changed

lib.rs

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -142,54 +142,6 @@ macro_rules! debug_unreachable {
142142
};
143143
}
144144

145-
/// Common operations implemented by both `Vec` and `SmallVec`.
146-
///
147-
/// This can be used to write generic code that works with both `Vec` and `SmallVec`.
148-
///
149-
/// ## Example
150-
///
151-
/// ```rust
152-
/// use smallvec::{VecLike, SmallVec};
153-
///
154-
/// fn initialize<V: VecLike<u8>>(v: &mut V) {
155-
/// for i in 0..5 {
156-
/// v.push(i);
157-
/// }
158-
/// }
159-
///
160-
/// let mut vec = Vec::new();
161-
/// initialize(&mut vec);
162-
///
163-
/// let mut small_vec = SmallVec::<[u8; 8]>::new();
164-
/// initialize(&mut small_vec);
165-
/// ```
166-
#[deprecated(note = "Use `Extend` and `Deref<[T]>` instead")]
167-
pub trait VecLike<T>:
168-
ops::Index<usize, Output = T>
169-
+ ops::IndexMut<usize>
170-
+ ops::Index<ops::Range<usize>, Output = [T]>
171-
+ ops::IndexMut<ops::Range<usize>>
172-
+ ops::Index<ops::RangeFrom<usize>, Output = [T]>
173-
+ ops::IndexMut<ops::RangeFrom<usize>>
174-
+ ops::Index<ops::RangeTo<usize>, Output = [T]>
175-
+ ops::IndexMut<ops::RangeTo<usize>>
176-
+ ops::Index<ops::RangeFull, Output = [T]>
177-
+ ops::IndexMut<ops::RangeFull>
178-
+ ops::DerefMut<Target = [T]>
179-
+ Extend<T>
180-
{
181-
/// Append an element to the vector.
182-
fn push(&mut self, value: T);
183-
}
184-
185-
#[allow(deprecated)]
186-
impl<T> VecLike<T> for Vec<T> {
187-
#[inline]
188-
fn push(&mut self, value: T) {
189-
Vec::push(self, value);
190-
}
191-
}
192-
193145
/// Trait to be implemented by a collection that can be extended from a slice
194146
///
195147
/// ## Example
@@ -1357,14 +1309,6 @@ where
13571309
}
13581310
}
13591311

1360-
#[allow(deprecated)]
1361-
impl<A: Array> VecLike<A::Item> for SmallVec<A> {
1362-
#[inline]
1363-
fn push(&mut self, value: A::Item) {
1364-
SmallVec::push(self, value);
1365-
}
1366-
}
1367-
13681312
impl<A: Array> FromIterator<A::Item> for SmallVec<A> {
13691313
fn from_iter<I: IntoIterator<Item = A::Item>>(iterable: I) -> SmallVec<A> {
13701314
let mut v = SmallVec::new();
@@ -2227,23 +2171,6 @@ mod tests {
22272171
assert_eq!(vec.drain().len(), 3);
22282172
}
22292173

2230-
#[test]
2231-
#[allow(deprecated)]
2232-
fn veclike_deref_slice() {
2233-
use super::VecLike;
2234-
2235-
fn test<T: VecLike<i32>>(vec: &mut T) {
2236-
assert!(!vec.is_empty());
2237-
assert_eq!(vec.len(), 3);
2238-
2239-
vec.sort();
2240-
assert_eq!(&vec[..], [1, 2, 3]);
2241-
}
2242-
2243-
let mut vec = SmallVec::<[i32; 2]>::from(&[3, 1, 2][..]);
2244-
test(&mut vec);
2245-
}
2246-
22472174
#[test]
22482175
fn shrink_to_fit_unspill() {
22492176
let mut vec = SmallVec::<[u8; 2]>::from_iter(0..3);

0 commit comments

Comments
 (0)