Crate indexing [] [src]

Sound unchecked indexing in Rust using “generativity”; a type system approach to indices and ranges that are trusted to be in bounds.

Includes an index API and an interval (Range<'id, P>) API developing its own “algebra” for transformations of in bounds ranges.

Modules

algorithms

Respository of some indexing-implemented algorithms so we can dissect them and their codegen.

Structs

Container

A branded container, that allows access only to indices and ranges with the exact same brand in the 'id parameter.

Index

A branded index.

IndexingError

Error produced when an indexing operation is out of bounds or otherwise inapplicable.

Range

A branded range.

RangeIter

An iterator over the indices in a range.

Subdivide

Subdivide is an iterator of evenly sized nonempty, nonoverlapping ranges

Enums

NonEmpty

Length marker for range known to not be empty.

Unknown

Length marker for unknown length.

Traits

Buffer

A marker trait for collections where we can safely vet indices

BufferMut
IntoCheckedRange
ProofAdd

Represents the combination of two proofs P and Q by a new type Sum.

Functions

indices

Create an indexing scope for a container.