Expand description
This crate provides the Finite trait for use with types with a small number of values
(typically, but not exclusively enums). Deriving this trait enables several useful
applications:
Macros
Implements helper traits for a concrete (i.e. non-parameteric) type that implements Finite.
Structs
A complete mapping from keys of type K to values of type V, implemented using an array
indexed by Finite::index_of of the key.
A set of values of type T, implemented using a bitmap.
A compressed representation of a value of type T, implemented by storing its index
according Finite::index_of using the smallest integer type possible.
An iterator over all of the values of a Finite type.
Traits
Provides the number of values for a type, as well as a 1-to-1 mapping between the subset of
integers [0 .. N) and those values. The ordering of integers in this mapping is homomorphic to
the ordering of values according to Ord (i.e. T::index_of(a) < T::index_of(b) iff
a < b).
A set of values of type T.
Functions
Gets a compressed representation of the given value.