#2d-array #iterator #2d #distance

spiral

Iterate over a 2D structure in a spiral pattern

12 releases

0.2.1 Feb 9, 2024
0.2.0 Oct 9, 2022
0.1.9 Mar 14, 2018
0.1.8 Jan 6, 2018
0.1.5 Dec 29, 2017

#464 in Algorithms

Download history 5/week @ 2024-10-19 2/week @ 2024-10-26 13/week @ 2024-11-02 1/week @ 2024-11-09 6/week @ 2024-11-16 9/week @ 2024-11-23 21/week @ 2024-11-30 41/week @ 2024-12-07 33/week @ 2024-12-14 1/week @ 2024-12-21 6/week @ 2025-01-11 7/week @ 2025-01-18 16/week @ 2025-01-25 93/week @ 2025-02-01

122 downloads per month
Used in 3 crates (2 directly)

GPL-3.0 license

18KB
272 lines

spiral

Build Status Crates.io Documentation License: GPL-3.0 Downloads

Documentation

Iterators to iterate 2D structures in spiral patterns

Usage

This crate is on crates.io and can be used by adding spiral to the dependencies in your project's Cargo.toml.

[dependencies]
spiral = "0.2"

Examples

use spiral::ChebyshevIterator;

let center_x = 3;
let center_y = 3;
let radius = 4;
let iterator = ChebyshevIterator::new(center_x, center_y, radius);
for (x, y) in iterator {
    // Iterates over a 7x7 2D array with `x` & `y`.
}
use spiral::ManhattanIterator;

let center_x = 3;
let center_y = 3;
let radius = 4;
for (x, y) in ManhattanIterator::new(center_x, center_y, radius) {
    // Iterates over a 7x7 2D array with `x` & `y`.
}

Dependencies

~150KB