versatiles_core 4.2.2

A toolbox for converting, checking and serving map tiles in various formats.
Documentation
use criterion::{BatchSize, Criterion, criterion_group, criterion_main};
use std::fmt::Write;
use std::{hint::black_box, io::Cursor};
use versatiles_core::utils::read_csv_iter;

const DATA_SIZE: usize = 16 * 1024 * 1024;

fn large_csv_data() -> String {
	let mut csv_data = String::from("name,age\n");
	let mut i: u64 = 0;
	while csv_data.len() < DATA_SIZE {
		i += 1;
		writeln!(csv_data, "\"John, {i} Doe\",{}", 20 + i % 50).unwrap();
	}
	csv_data
}

fn benchmark_read_csv_iter(c: &mut Criterion) {
	let data = large_csv_data();
	let cursor = Cursor::new(data);

	c.bench_function("read_csv_iter", |b| {
		b.iter_batched(
			|| read_csv_iter(cursor.clone(), b',').unwrap(),
			|iter| {
				for row in black_box(iter) {
					row.unwrap();
				}
			},
			BatchSize::NumIterations(1),
		);
	});
}

criterion_group!(
	name = benches;
	config = Criterion::default().significance_level(0.1).sample_size(15);
	targets = benchmark_read_csv_iter
);
criterion_main!(benches);