@@ -144,54 +144,6 @@ macro_rules! debug_unreachable {
144
144
}
145
145
}
146
146
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
-
195
147
/// Trait to be implemented by a collection that can be extended from a slice
196
148
///
197
149
/// ## Example
@@ -1320,13 +1272,6 @@ impl<A: Array> ExtendFromSlice<A::Item> for SmallVec<A> where A::Item: Copy {
1320
1272
}
1321
1273
}
1322
1274
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
- }
1330
1275
1331
1276
impl < A : Array > FromIterator < A :: Item > for SmallVec < A > {
1332
1277
fn from_iter < I : IntoIterator < Item =A :: Item > > ( iterable : I ) -> SmallVec < A > {
@@ -2123,23 +2068,6 @@ mod tests {
2123
2068
assert_eq ! ( vec. drain( ) . len( ) , 3 ) ;
2124
2069
}
2125
2070
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
-
2143
2071
#[ test]
2144
2072
fn shrink_to_fit_unspill ( ) {
2145
2073
let mut vec = SmallVec :: < [ u8 ; 2 ] > :: from_iter ( 0 ..3 ) ;
0 commit comments