[][src]Module gridly::prelude

The gridly prelude includes all traits and common structs.

Note that the prelude does not include the single-character shorthand functions, so as not to pollute your namespace with single-character identifiers on a bulk import.

Re-exports

pub use crate::direction::Down;
pub use crate::direction::Left;
pub use crate::direction::Right;
pub use crate::direction::Up;
pub use crate::rotation::Anticlockwise;
pub use crate::rotation::Clockwise;

Structs

Column

A column component of a Location. See Component for details.

Columns

A columns component of a Vector

Location

A location on a grid. A location is the primary indexing type for a Grid, and represents a single cell on that grid. It is comprised of a Row and a Column. Increasing row count downward and increasing columns count rightward.

LocationRange

A range over Locations in a given Row or Column.

Row

A row component of a Location. See Component for details.

Rows

A rows component of a Vector

Vector

A measurement of distance between two Locations

Enums

BoundsError

An out-of-bounds error for a Location on a grid

Direction

The four cardinal directions: Up, Down, Left, and Right. Direction implements a number of simple helper methods. It also implements VectorLike, which allows it to be used in contexts where a Vector can be used as a unit vector in the given direction (for example, with Vector arithmetic).

Rotation

The 4 cardinal rotations: None (no rotation), Flip, Clockwise, and Anticlockwise. These rotations support basic arithmetic operations with themselves (sums, multiplication by a factor, etc) and can be applied to Direction and Vector.

Statics

DIAGONAL_ADJACENCIES

This array contains unit vectors associated with the 4 diagonal directions. It is intended to allow for easy iteration over diagonally adjacent locations. The order of the vectors is unspecified and should not be relied upon.

EACH_DIRECTION

This array contains each direction; it is intended to allow for easy iteration over adjacent locations. The order of the directions is left unspecified and should not be relied upon.

ORTHOGONAL_ADJACENCIES

This array contains unit vectors associated with the 4 orthogonally adjacent directions. It is intended to allow for easy iteration over orthogonally adjacent locations. The order of the vectors is unspecified and should not be relied upon.

TOUCHING_ADJACENCIES

This array contains unit vectors associated with the 8 adjacent directions. It is intended to allow for easy iteration over all locations that touch a center location (for instance, when scanning adjacencies in an implementation of Conway's Game of Life). The order of the vectors is unspecified and should not be relied upon.

Traits

Grid

Base Reader trait for grids. This trait provides the grid's cell type, Item, and an unsafe getter method for fetching a cell at a bounds-checked location. It uses this unsafe getter, plus GridBounds based bounds-checking, to provide a comprehensive and safe interface for reading and iterating over elements in a grid.

GridBounds

Grid trait implementing grid sizes and boundary checking.

GridMut
GridSetter

Setter trait for grids. Allows setting and replacing elements in the grid. Implementors should implement the unsafe setter and replacer methods. This trait then provides implementations of safe, bounds-checked setters.

LocationComponent

A component of a Location, which may be either a Row or a Column. It is effectively an index into a given row or column of a grid; for instance, a Row can index a row in a grid.

LocationLike

This trait covers structs that act like a Location, such as tuples. See the Location documentation for more details.

VectorComponent

A Rows or Columns component of a Vector

VectorLike

VectorLike is implemented for types that can be used as a vector. They can participate in vector arithmetic, comparison, and other vector oprations.

Type Definitions

ColumnRange
ColumnRangeError
RowRange
RowRangeError