Data structure with one-to-one mapping
$ luarocks install otom
These one-to-one maps can essentially be used in reverse: given a value, the associated key can be
obtained easily. The client uses the one-to-one map as though it were two tables: a forward table
associating keys with values and a reverse table associating values with keys. When a value would
be repeated, one-to-one mapping is enforced by overwriting the old key-value association. Ordinary
tables can be used to construct one-to-one maps: the user can configure how repeated values in the
original table should be handled.