#[macro_use]
extern crate criterion;
use criterion::Criterion;
extern crate arrow;
use arrow::array::*;
use arrow::compute::kernels::length::length;
fn bench_length(array: &StringArray) {
criterion::black_box(length(array).unwrap());
}
fn add_benchmark(c: &mut Criterion) {
fn double_vec<T: Clone>(v: Vec<T>) -> Vec<T> {
[&v[..], &v[..]].concat()
}
let mut values = vec!["one", "on", "o", ""];
for _ in 0..10 {
values = double_vec(values);
}
let array = StringArray::from(values);
c.bench_function("length", |b| b.iter(|| bench_length(&array)));
}
criterion_group!(benches, add_benchmark);
criterion_main!(benches);