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 chunkschunks_of(n)for fixed-size partitioning- Resettable and reusable with
.reset()
Example
use Range2D;
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.