@@ -142,54 +142,6 @@ macro_rules! debug_unreachable {
142
142
} ;
143
143
}
144
144
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
-
193
145
/// Trait to be implemented by a collection that can be extended from a slice
194
146
///
195
147
/// ## Example
@@ -1357,14 +1309,6 @@ where
1357
1309
}
1358
1310
}
1359
1311
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
-
1368
1312
impl < A : Array > FromIterator < A :: Item > for SmallVec < A > {
1369
1313
fn from_iter < I : IntoIterator < Item = A :: Item > > ( iterable : I ) -> SmallVec < A > {
1370
1314
let mut v = SmallVec :: new ( ) ;
@@ -2227,23 +2171,6 @@ mod tests {
2227
2171
assert_eq ! ( vec. drain( ) . len( ) , 3 ) ;
2228
2172
}
2229
2173
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
-
2247
2174
#[ test]
2248
2175
fn shrink_to_fit_unspill ( ) {
2249
2176
let mut vec = SmallVec :: < [ u8 ; 2 ] > :: from_iter ( 0 ..3 ) ;
0 commit comments