@@ -144,54 +144,6 @@ macro_rules! debug_unreachable {
144144 }
145145}
146146
147- /// Common operations implemented by both `Vec` and `SmallVec`.
148- ///
149- /// This can be used to write generic code that works with both `Vec` and `SmallVec`.
150- ///
151- /// ## Example
152- ///
153- /// ```rust
154- /// use smallvec::{VecLike, SmallVec};
155- ///
156- /// fn initialize<V: VecLike<u8>>(v: &mut V) {
157- /// for i in 0..5 {
158- /// v.push(i);
159- /// }
160- /// }
161- ///
162- /// let mut vec = Vec::new();
163- /// initialize(&mut vec);
164- ///
165- /// let mut small_vec = SmallVec::<[u8; 8]>::new();
166- /// initialize(&mut small_vec);
167- /// ```
168- #[ deprecated( note = "Use `Extend` and `Deref<[T]>` instead" ) ]
169- pub trait VecLike < T > :
170- ops:: Index < usize , Output =T > +
171- ops:: IndexMut < usize > +
172- ops:: Index < ops:: Range < usize > , Output =[ T ] > +
173- ops:: IndexMut < ops:: Range < usize > > +
174- ops:: Index < ops:: RangeFrom < usize > , Output =[ T ] > +
175- ops:: IndexMut < ops:: RangeFrom < usize > > +
176- ops:: Index < ops:: RangeTo < usize > , Output =[ T ] > +
177- ops:: IndexMut < ops:: RangeTo < usize > > +
178- ops:: Index < ops:: RangeFull , Output =[ T ] > +
179- ops:: IndexMut < ops:: RangeFull > +
180- ops:: DerefMut < Target = [ T ] > +
181- Extend < T > {
182-
183- /// Append an element to the vector.
184- fn push ( & mut self , value : T ) ;
185- }
186-
187- #[ allow( deprecated) ]
188- impl < T > VecLike < T > for Vec < T > {
189- #[ inline]
190- fn push ( & mut self , value : T ) {
191- Vec :: push ( self , value) ;
192- }
193- }
194-
195147/// Trait to be implemented by a collection that can be extended from a slice
196148///
197149/// ## Example
@@ -1320,13 +1272,6 @@ impl<A: Array> ExtendFromSlice<A::Item> for SmallVec<A> where A::Item: Copy {
13201272 }
13211273}
13221274
1323- #[ allow( deprecated) ]
1324- impl < A : Array > VecLike < A :: Item > for SmallVec < A > {
1325- #[ inline]
1326- fn push ( & mut self , value : A :: Item ) {
1327- SmallVec :: push ( self , value) ;
1328- }
1329- }
13301275
13311276impl < A : Array > FromIterator < A :: Item > for SmallVec < A > {
13321277 fn from_iter < I : IntoIterator < Item =A :: Item > > ( iterable : I ) -> SmallVec < A > {
@@ -2123,23 +2068,6 @@ mod tests {
21232068 assert_eq ! ( vec. drain( ) . len( ) , 3 ) ;
21242069 }
21252070
2126- #[ test]
2127- #[ allow( deprecated) ]
2128- fn veclike_deref_slice ( ) {
2129- use super :: VecLike ;
2130-
2131- fn test < T : VecLike < i32 > > ( vec : & mut T ) {
2132- assert ! ( !vec. is_empty( ) ) ;
2133- assert_eq ! ( vec. len( ) , 3 ) ;
2134-
2135- vec. sort ( ) ;
2136- assert_eq ! ( & vec[ ..] , [ 1 , 2 , 3 ] ) ;
2137- }
2138-
2139- let mut vec = SmallVec :: < [ i32 ; 2 ] > :: from ( & [ 3 , 1 , 2 ] [ ..] ) ;
2140- test ( & mut vec) ;
2141- }
2142-
21432071 #[ test]
21442072 fn shrink_to_fit_unspill ( ) {
21452073 let mut vec = SmallVec :: < [ u8 ; 2 ] > :: from_iter ( 0 ..3 ) ;
0 commit comments