Skip to content

Commit c209b16

Browse files
committed
Rework specialization
1 parent 71c8abb commit c209b16

File tree

4 files changed

+673
-259
lines changed

4 files changed

+673
-259
lines changed

benches/bench.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ impl<T: Copy> Vector<T> for SmallVec<T, VEC_SIZE> {
8080
}
8181

8282
fn from_elems(val: &[T]) -> Self {
83-
SmallVec::from_slice(val)
83+
SmallVec::from(val)
8484
}
8585

8686
fn extend_from_slice(&mut self, other: &[T]) {
@@ -278,17 +278,6 @@ fn gen_from_elem<V: Vector<u64>>(n: usize, b: &mut Bencher) {
278278
});
279279
}
280280

281-
#[bench]
282-
fn bench_insert_from_slice(b: &mut Bencher) {
283-
let v: Vec<u64> = (0..SPILLED_SIZE as _).collect();
284-
b.iter(|| {
285-
let mut vec = SmallVec::<u64, VEC_SIZE>::new();
286-
vec.insert_from_slice(0, &v);
287-
vec.insert_from_slice(0, &v);
288-
vec
289-
});
290-
}
291-
292281
#[bench]
293282
fn bench_macro_from_list(b: &mut Bencher) {
294283
b.iter(|| {

fuzz/fuzz_targets/smallvec_ops.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ fn do_test<const N: usize>(data: &[u8]) -> SmallVec<u8, N> {
139139
}
140140
}
141141
22 => {
142-
v = SmallVec::from_slice(data);
142+
v = SmallVec::from(data);
143143
}
144144

145145
23 => {
@@ -149,10 +149,10 @@ fn do_test<const N: usize>(data: &[u8]) -> SmallVec<u8, N> {
149149
}
150150

151151
24 => {
152-
if v.len() < CAP_GROWTH {
153-
let insert_pos = next_usize!(bytes) % (v.len() + 1);
154-
v.insert_from_slice(insert_pos, data);
155-
}
152+
let a = next_usize!(bytes) % (v.len() + 1);
153+
let b = next_usize!(bytes) % (v.len() + 1);
154+
let (start, end) = (a.min(b), a.max(b));
155+
v.extend_from_within(start..end);
156156
}
157157

158158
25 => {
@@ -161,7 +161,7 @@ fn do_test<const N: usize>(data: &[u8]) -> SmallVec<u8, N> {
161161
}
162162
}
163163
26 => {
164-
v = SmallVec::from_elem(next_u8!(bytes), next_usize!(bytes));
164+
v = smallvec::from_elem(next_u8!(bytes), next_usize!(bytes));
165165
}
166166
_ => panic!("booo"),
167167
}

0 commit comments

Comments
 (0)