int-interval 0.9.4

A small, no_std half-open interval algebra library for primitive integer types.
Documentation
use criterion::{BenchmarkId, Criterion, black_box, criterion_group, criterion_main};
use int_interval::I8CO;
use rust_intervals::Interval;

const VALID: (i8, i8) = (-32, 96);

fn bench_construct(c: &mut Criterion) {
    let mut group = c.benchmark_group("construct");

    group.bench_function(BenchmarkId::new("int_interval", "valid_closed_open"), |b| {
        b.iter(|| {
            let (start, end_excl) = black_box(VALID);
            I8CO::try_new(start, end_excl)
        });
    });

    group.bench_function(BenchmarkId::new("rust_intervals", "valid_closed_open"), |b| {
        b.iter(|| {
            let (start, end_excl) = black_box(VALID);
            Interval::new_closed_open(start, end_excl)
        });
    });

    group.bench_function(BenchmarkId::new("std_range", "valid_closed_open"), |b| {
        b.iter(|| {
            let (start, end_excl) = black_box(VALID);
            start..end_excl
        });
    });

    group.finish();
}

mod support;

criterion_group! {
    name = benches;
    config = support::config();
    targets = bench_construct
}

criterion_main!(benches);