Crate range2d

Crate range2d 

Source
Expand description

§range2d — A 2D Range Iterator

This crate provides Range2D, a highly flexible, efficient, and composable iterator for traversing a 2D rectangular coordinate space.

It yields (y, x) coordinate pairs from a rectangular region defined by two Range<usize> bounds, visiting each row in order from top to bottom and each column from left to right.

§Features

  • Forward and backward iteration (DoubleEndedIterator)
  • Exact length tracking (ExactSizeIterator)
  • Safe skipping with .nth()
  • Efficient split() for parallel workloads
  • split_into(n) for evenly sized chunks
  • chunks_of(n) for fixed-size partitioning
  • Resettable and reusable with .reset()

§Example

use range2d::Range2D;

let iter = Range2D::new(0..2, 0..3);
let coords: Vec<_> = iter.collect();

assert_eq!(coords, vec![
    (0, 0), (0, 1), (0, 2),
    (1, 0), (1, 1), (1, 2),
]);

§Use Cases

  • Tile maps
  • Grid-based simulations
  • Procedural generation
  • Image or framebuffer traversal

§Integration

This iterator is compatible with all iterator adapters (.rev(), .take(), .map(), etc.), and behaves predictably when fused or split into subranges.

Structs§

Range2D
A 2D coordinate iterator over (y, x) pairs.

Traits§

Idx