@@ -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-
13681312impl < 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