This uses a fixed 8 byte representation for interned symbol. They are associated with a
Interner instance which can return the original
str name of the symbol.
Interned symbols from the same
Interner can be compared directly without a reference to
Symbol names of 8 bytes or less are encoded directly in the
InternedSym`` instance without storing the name in the Interner`. They are padded with a constant invalid UTF-8 sequence so
the length of the inline name can be recovered.
The encoding for names larger than 8 bytes uses an index in to a
Vec stored in the
Interner. The indexed representation is invalid UTF-8 so it cannot collide with a valid
Type that can be converted to an