pub struct GlobalState<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> { /* private fields */ }Expand description
A BuildHasher that uses a global seed and secrets, randomized only once on startup.
The global secrets are randomized on the first instantiation, and then every subsequent instance of GlobalState will re-use the same seed and secrets, ensuring consistent hash outputs for the duration of the program.
Implementations§
Source§impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new global state with a global seed and secrets.
The seed and secrets will be randomized on the first instantiation of GlobalState, but all
subsequent instances will share the same seed and secrets.
On platforms which do not support atomic pointers, the secrets will be the default rapidhash secrets, which are not randomized. Therefore, targets without atomic pointer support will not have minimal HashDoS resistance guarantees.
Trait Implementations§
Source§impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> BuildHasher for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> BuildHasher for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§type Hasher = RapidHasher<'static, AVALANCHE, SPONGE, COMPACT, PROTECTED>
type Hasher = RapidHasher<'static, AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§fn build_hasher(&self) -> Self::Hasher
fn build_hasher(&self) -> Self::Hasher
Source§impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Clone for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Clone for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§fn clone(&self) -> GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
fn clone(&self) -> GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Copy for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Debug for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Debug for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Default for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Warning that GlobalState only randomizes the seed on platforms that support atomic pointers.
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Default for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Warning that GlobalState only randomizes the seed on platforms that support atomic pointers.
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> Eq for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> PartialEq for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
impl<const AVALANCHE: bool, const SPONGE: bool, const COMPACT: bool, const PROTECTED: bool> PartialEq for GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>
Source§fn eq(&self, other: &GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>) -> bool
fn eq(&self, other: &GlobalState<AVALANCHE, SPONGE, COMPACT, PROTECTED>) -> bool
self and other values to be equal, and is used by ==.