pub trait Hashable: Hash {
type Hasher: Hasher + Default;
// Provided method
fn hashable(&self) -> u64 { ... }
}Expand description
A type that can hash itself.
In high-performance use cases, an object can pre-hash itself, or memoize its hash value, when it
is anticipated that an object will be hashed multiple times. Rather than the standard library
Hash trait, Hashable exposes an interface that forces objects to hash themselves entirely,
providing only the resulting 8-byte hash.
As a key may sometimes need to be rehashed, we need to ensure that the same hashing algorithm
used to pre-generate the hash for this value is used when rehashing it. All implementors must
define the hashing algorithm used by specifying the Hasher associated type.
A default implementation, DefaultHashable, is provided that utilizes the same hashing
algorithm that Key uses, which is high-performance. This type can be used to
satisfy Hashable so long as the type itself is already Hash.
Required Associated Types§
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.