keen/col/enum-map

Source
enum-map[k, v] record -new
values v[]
Efficient "map" with an enum key. This does actually not have the same interface as a map, since there must be a value for every key. The enum values must be 0 .. n. This is the default unless you explicitly write values.
list-new[k, v] (k, v) enum-map(elements (k, v)[]) k enum-like, v new
from-values[k, v] (k, v) enum-map(values v[]) k enum-like
to[k, v] (k, v) enum-map(a (k, v) mut-enum-map) k enum-like
to[k, v] (k, v) mut-enum-map(a (k, v) enum-map) k enum-like
make[k, v] (k, v) enum-map(f v mut(k)) k enum-like
Make an enum map by providing a value for each key in a loop.
size[k, v] nat32(a (k, v) enum-map)
Always the number of members in the enum.
subscript[k, v] v(a (k, v) enum-map, key k) k enum-like
some[k, v] bool(a (k, v) enum-map, f bool mut((k, v))) k enum-like
~[k, v] (k, v) enum-map(a (k, v) enum-map, (key k, value v)) k enum-like
map-enum-map[k, v-out, v-in] (k, v-out) enum-map(a (k, v-in) enum-map, cb v-out mut((k, v-in))) k enum-like
Map an enum-map to another with the same key type.
lens-for-key[k, v] ((k, v) enum-map, v) lens(key k) k enum-like