Trait std::hash::HashStable
[-] [+]
[src]
pub trait Hash { fn hash<H>(&self, state: &mut H) where H: Hasher; fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher { ... } }
A hashable type.
The H
type parameter is an abstract hash state that is used by the Hash
to compute the hash. Specific implementations of this trait may specialize
for particular instances of H
in order to be able to optimize the hashing
behavior.
Required Methods
fn hash<H>(&self, state: &mut H) where H: Hasher
Feeds this value into the state given, updating the hasher as necessary.
Provided Methods
fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
Feeds a slice of this type into the state provided.
Implementors
impl<T> Hash for NonZero<T> where T: Zeroable, T: Hash
impl<T> Hash for PhantomData<T> where T: ?Sized
impl Hash for TypeId
impl<T> Hash for Option<T> where T: Hash
impl<T, E> Hash for Result<T, E> where T: Hash, E: Hash
impl Hash for u8
impl Hash for u16
impl Hash for u32
impl Hash for u64
impl Hash for usize
impl Hash for i8
impl Hash for i16
impl Hash for i32
impl Hash for i64
impl Hash for isize
impl Hash for bool
impl Hash for char
impl Hash for str
impl Hash for ()
impl<A> Hash for (A,) where A: Hash
impl<A, B> Hash for (A, B) where A: Hash, B: Hash
impl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash
impl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash
impl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash
impl<A, B, C, D, E, F> Hash for (A, B, C, D, E, F) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash
impl<A, B, C, D, E, F, G> Hash for (A, B, C, D, E, F, G) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash
impl<A, B, C, D, E, F, G, H> Hash for (A, B, C, D, E, F, G, H) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash
impl<A, B, C, D, E, F, G, H, I> Hash for (A, B, C, D, E, F, G, H, I) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash
impl<A, B, C, D, E, F, G, H, I, J> Hash for (A, B, C, D, E, F, G, H, I, J) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash
impl<A, B, C, D, E, F, G, H, I, J, K> Hash for (A, B, C, D, E, F, G, H, I, J, K) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash, K: Hash
impl<A, B, C, D, E, F, G, H, I, J, K, L> Hash for (A, B, C, D, E, F, G, H, I, J, K, L) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash, K: Hash, L: Hash
impl<T> Hash for [T] where T: Hash
impl<'a, T> Hash for &'a T where T: Hash, T: ?Sized
impl<'a, T> Hash for &'a mut T where T: Hash, T: ?Sized
impl<T> Hash for *const T
impl<T> Hash for *mut T
impl<T> Hash for [T; 0] where T: Hash
impl<T> Hash for [T; 1] where T: Hash
impl<T> Hash for [T; 2] where T: Hash
impl<T> Hash for [T; 3] where T: Hash
impl<T> Hash for [T; 4] where T: Hash
impl<T> Hash for [T; 5] where T: Hash
impl<T> Hash for [T; 6] where T: Hash
impl<T> Hash for [T; 7] where T: Hash
impl<T> Hash for [T; 8] where T: Hash
impl<T> Hash for [T; 9] where T: Hash
impl<T> Hash for [T; 10] where T: Hash
impl<T> Hash for [T; 11] where T: Hash
impl<T> Hash for [T; 12] where T: Hash
impl<T> Hash for [T; 13] where T: Hash
impl<T> Hash for [T; 14] where T: Hash
impl<T> Hash for [T; 15] where T: Hash
impl<T> Hash for [T; 16] where T: Hash
impl<T> Hash for [T; 17] where T: Hash
impl<T> Hash for [T; 18] where T: Hash
impl<T> Hash for [T; 19] where T: Hash
impl<T> Hash for [T; 20] where T: Hash
impl<T> Hash for [T; 21] where T: Hash
impl<T> Hash for [T; 22] where T: Hash
impl<T> Hash for [T; 23] where T: Hash
impl<T> Hash for [T; 24] where T: Hash
impl<T> Hash for [T; 25] where T: Hash
impl<T> Hash for [T; 26] where T: Hash
impl<T> Hash for [T; 27] where T: Hash
impl<T> Hash for [T; 28] where T: Hash
impl<T> Hash for [T; 29] where T: Hash
impl<T> Hash for [T; 30] where T: Hash
impl<T> Hash for [T; 31] where T: Hash
impl<T> Hash for [T; 32] where T: Hash
impl<T> Hash for Box<T> where T: Hash, T: ?Sized
impl<T> Hash for Arc<T> where T: Hash
impl<T> Hash for Rc<T> where T: Hash
impl Hash for BitVec
impl Hash for BitSet
impl<K, V> Hash for BTreeMap<K, V> where K: Hash, V: Hash
impl<T> Hash for BTreeSet<T> where T: Hash
impl<A> Hash for LinkedList<A> where A: Hash
impl<E> Hash for EnumSet<E> where E: Hash
impl<A> Hash for VecDeque<A> where A: Hash
impl Hash for String
impl<T> Hash for Vec<T> where T: Hash
impl<V> Hash for VecMap<V> where V: Hash
impl<'a, B> Hash for Cow<'a, B> where B: Hash, B: ToOwned, B: ?Sized
impl Hash for CString
impl Hash for CStr
impl Hash for OsString
impl Hash for OsStr
impl Hash for IpAddr
impl Hash for SocketAddr
impl Hash for FileType
impl Hash for FileStat
impl Hash for UnstableFileStat
impl Hash for FilePermission
impl Hash for Ipv6MulticastScope
impl Hash for IpAddr
impl Hash for Ipv4Addr
impl Hash for Ipv6Addr
impl Hash for SocketAddr
impl<'a> Hash for Prefix<'a>
impl<'a> Hash for Component<'a>
impl Hash for PathBuf
impl Hash for Path
impl Hash for Path
impl Hash for Path