Module arret_runtime::intern[][src]

Interned symbols

This uses a fixed 8 byte representation for interned symbol. They are associated with a particular 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 the Interner instance.

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 symbol name.

Structs

Interner
RawGlobalNames

Traits

AsInterner

Type that can be converted to an Interner

Unions

InternedSym