int-interval-set 0.1.0

Integer half-open interval set structures built on top of int-interval.
Documentation

int-interval-set

Integer half-open interval set structures built on top of int-interval.

This crate provides efficient representations of integer interval sets ([start, end_excl)) with a focus on predictable semantics and low-overhead abstractions.

Features

  • Half-open interval semantics ([start, end))
  • Automatic normalization (merge overlapping / adjacent intervals)
  • Efficient point and interval queries
  • Codegen-based implementations for zero-cost abstractions

Implementation Status

Currently implemented:

  • Batch (unsigned): optimized for bulk construction and read-heavy workloads

Planned (not yet implemented):

  • Online: incremental updates with dynamic structure
  • Signed types support

Example

use int_interval::U8CO;
use int_interval_set::U8COBatchSet;

let a = U8CO::try_new(10, 20).unwrap();
let b = U8CO::try_new(15, 25).unwrap();

let set = U8COBatchSet::from([a, b]);

assert!(set.contains_point(18));
assert!(set.contains_interval(U8CO::try_new(12, 18).unwrap()));

assert_eq!(set.interval_count(), 1);

Design

  • Built on top of int-interval

  • Separation of concerns:

    • interval representation (int-interval)
    • interval set structure (this crate)

Status

Early-stage. APIs may evolve.

License

MIT OR Apache-2.0