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.
This is an experiment. The API is all of inconsistent, incomplete and redundant, but it explores interesting concepts.
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 |
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 |
|
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 |
Functions
indices |
Create an indexing scope for a container. |