summaryrefslogtreecommitdiff
path: root/vendor/itertools-0.12.1/benches/fold_specialization.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/itertools-0.12.1/benches/fold_specialization.rs')
-rw-r--r--vendor/itertools-0.12.1/benches/fold_specialization.rs75
1 files changed, 0 insertions, 75 deletions
diff --git a/vendor/itertools-0.12.1/benches/fold_specialization.rs b/vendor/itertools-0.12.1/benches/fold_specialization.rs
deleted file mode 100644
index b44f3472..00000000
--- a/vendor/itertools-0.12.1/benches/fold_specialization.rs
+++ /dev/null
@@ -1,75 +0,0 @@
-#![allow(unstable_name_collisions)]
-
-use criterion::{criterion_group, criterion_main, Criterion};
-use itertools::Itertools;
-
-struct Unspecialized<I>(I);
-
-impl<I> Iterator for Unspecialized<I>
-where
- I: Iterator,
-{
- type Item = I::Item;
-
- #[inline(always)]
- fn next(&mut self) -> Option<Self::Item> {
- self.0.next()
- }
-
- #[inline(always)]
- fn size_hint(&self) -> (usize, Option<usize>) {
- self.0.size_hint()
- }
-}
-
-mod specialization {
- use super::*;
-
- pub mod intersperse {
- use super::*;
-
- pub fn external(c: &mut Criterion) {
- let arr = [1; 1024];
-
- c.bench_function("external", move |b| {
- b.iter(|| {
- let mut sum = 0;
- for &x in arr.iter().intersperse(&0) {
- sum += x;
- }
- sum
- })
- });
- }
-
- pub fn internal_specialized(c: &mut Criterion) {
- let arr = [1; 1024];
-
- c.bench_function("internal specialized", move |b| {
- b.iter(|| {
- #[allow(clippy::unnecessary_fold)]
- arr.iter().intersperse(&0).fold(0, |acc, x| acc + x)
- })
- });
- }
-
- pub fn internal_unspecialized(c: &mut Criterion) {
- let arr = [1; 1024];
-
- c.bench_function("internal unspecialized", move |b| {
- b.iter(|| {
- #[allow(clippy::unnecessary_fold)]
- Unspecialized(arr.iter().intersperse(&0)).fold(0, |acc, x| acc + x)
- })
- });
- }
- }
-}
-
-criterion_group!(
- benches,
- specialization::intersperse::external,
- specialization::intersperse::internal_specialized,
- specialization::intersperse::internal_unspecialized,
-);
-criterion_main!(benches);