pub use ahash::AHasher; use ahash::RandomState; pub use instant::{Duration, Instant}; use std::{future::Future, pin::Pin}; pub use tracing; pub use uuid::Uuid; #[cfg(not(target_arch = "wasm32"))] pub type BoxedFuture<'a, T> = Pin + Send + 'a>>; #[cfg(target_arch = "wasm32")] pub type BoxedFuture<'a, T> = Pin + 'a>>; /// A hasher builder that will create a fixed hasher. #[derive(Default)] pub struct FixedState; impl std::hash::BuildHasher for FixedState { type Hasher = AHasher; #[inline] fn build_hasher(&self) -> AHasher { AHasher::new_with_keys( 0b1001010111101110000001001100010000000011001001101011001001111000, 0b1100111101101011011110001011010100000100001111100011010011010101, ) } } /// A std hash map implementing AHash, a high speed keyed hashing algorithm /// intended for use in in-memory hashmaps. /// /// AHash is designed for performance and is NOT cryptographically secure. pub type HashMap = std::collections::HashMap; /// A stable std hash map implementing AHash, a high speed keyed hashing algorithm /// intended for use in in-memory hashmaps. /// /// Unlike [`HashMap`] this has an iteration order that only depends on the order /// of insertions and deletions and not a random source. /// /// AHash is designed for performance and is NOT cryptographically secure. pub type StableHashMap = std::collections::HashMap; /// A std hash set implementing AHash, a high speed keyed hashing algorithm /// intended for use in in-memory hashmaps. /// /// AHash is designed for performance and is NOT cryptographically secure. pub type HashSet = std::collections::HashSet; /// A stable std hash set implementing AHash, a high speed keyed hashing algorithm /// intended for use in in-memory hashmaps. /// /// Unlike [`HashSet`] this has an iteration order that only depends on the order /// of insertions and deletions and not a random source. /// /// AHash is designed for performance and is NOT cryptographically secure. pub type StableHashSet = std::collections::HashSet;