HashStr is a dynamically sized type so it is used similarly to &str.
A hash is stored at the beginning followed by a str. The length is
known by the fat pointer when in the form &HashStr.
A type that can be used in HashStrCache like HashStr but does not require allocation.
Useful for reusing the hash without needing to create a HashStr. Used internally
as part of the Presence struct to pass the hash and str along a cache chain.
Helper type for indexing a HashMap without allocation
Unhashed str is hashed on the fly instead of using a precalculated hash.
Useful for indexing a HashMap without needing to allocate a Box