[][src]Trait rustc_data_structures::stable_hasher::HashStable

pub trait HashStable<CTX> {
    fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher);
}

Something that implements HashStable<CTX> can be hashed in a way that is stable across multiple compilation sessions.

Note that HashStable imposes rather more strict requirements than usual hash functions:

Required methods

fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher)

Loading content...

Implementations on Foreign Types

impl<CTX> HashStable<CTX> for i8[src]

impl<CTX> HashStable<CTX> for i16[src]

impl<CTX> HashStable<CTX> for i32[src]

impl<CTX> HashStable<CTX> for i64[src]

impl<CTX> HashStable<CTX> for isize[src]

impl<CTX> HashStable<CTX> for u8[src]

impl<CTX> HashStable<CTX> for u16[src]

impl<CTX> HashStable<CTX> for u32[src]

impl<CTX> HashStable<CTX> for u64[src]

impl<CTX> HashStable<CTX> for usize[src]

impl<CTX> HashStable<CTX> for u128[src]

impl<CTX> HashStable<CTX> for i128[src]

impl<CTX> HashStable<CTX> for char[src]

impl<CTX> HashStable<CTX> for ()[src]

impl<CTX> HashStable<CTX> for NonZeroU32[src]

impl<CTX> HashStable<CTX> for NonZeroUsize[src]

impl<CTX> HashStable<CTX> for f32[src]

impl<CTX> HashStable<CTX> for f64[src]

impl<CTX> HashStable<CTX> for Ordering[src]

impl<T1: HashStable<CTX>, CTX> HashStable<CTX> for (T1,)[src]

impl<T1: HashStable<CTX>, T2: HashStable<CTX>, CTX> HashStable<CTX> for (T1, T2)[src]

impl<T1, T2, T3, CTX> HashStable<CTX> for (T1, T2, T3) where
    T1: HashStable<CTX>,
    T2: HashStable<CTX>,
    T3: HashStable<CTX>, 
[src]

impl<T1, T2, T3, T4, CTX> HashStable<CTX> for (T1, T2, T3, T4) where
    T1: HashStable<CTX>,
    T2: HashStable<CTX>,
    T3: HashStable<CTX>,
    T4: HashStable<CTX>, 
[src]

impl<T: HashStable<CTX>, CTX> HashStable<CTX> for [T][src]

impl<T: HashStable<CTX>, CTX> HashStable<CTX> for Vec<T>[src]

impl<K, V, R, CTX> HashStable<CTX> for IndexMap<K, V, R> where
    K: HashStable<CTX> + Eq + Hash,
    V: HashStable<CTX>,
    R: BuildHasher
[src]

impl<K, R, CTX> HashStable<CTX> for IndexSet<K, R> where
    K: HashStable<CTX> + Eq + Hash,
    R: BuildHasher
[src]

impl<A, CTX> HashStable<CTX> for SmallVec<[A; 1]> where
    A: HashStable<CTX>, 
[src]

impl<T: ?Sized + HashStable<CTX>, CTX> HashStable<CTX> for Box<T>[src]

impl<T: ?Sized + HashStable<CTX>, CTX> HashStable<CTX> for Arc<T>[src]

impl<CTX> HashStable<CTX> for str[src]

impl<CTX> HashStable<CTX> for String[src]

impl<CTX> HashStable<CTX> for bool[src]

impl<T, CTX> HashStable<CTX> for Option<T> where
    T: HashStable<CTX>, 
[src]

impl<T1, T2, CTX> HashStable<CTX> for Result<T1, T2> where
    T1: HashStable<CTX>,
    T2: HashStable<CTX>, 
[src]

impl<'a, T: ?Sized, CTX> HashStable<CTX> for &'a T where
    T: HashStable<CTX>, 
[src]

impl<T, CTX> HashStable<CTX> for Discriminant<T>[src]

impl<T, CTX> HashStable<CTX> for RangeInclusive<T> where
    T: HashStable<CTX>, 
[src]

impl<I: Idx, T, CTX> HashStable<CTX> for IndexVec<I, T> where
    T: HashStable<CTX>, 
[src]

impl<I: Idx, CTX> HashStable<CTX> for BitSet<I>[src]

impl<R: Idx, C: Idx, CTX> HashStable<CTX> for BitMatrix<R, C>[src]

impl<T, CTX> HashStable<CTX> for FiniteBitSet<T> where
    T: HashStable<CTX> + FiniteBitSetTy
[src]

impl<CTX> HashStable<CTX> for Path[src]

impl<CTX> HashStable<CTX> for PathBuf[src]

impl<K, V, R, HCX> HashStable<HCX> for HashMap<K, V, R> where
    K: ToStableHashKey<HCX> + Eq,
    V: HashStable<HCX>,
    R: BuildHasher
[src]

impl<K, R, HCX> HashStable<HCX> for HashSet<K, R> where
    K: ToStableHashKey<HCX> + Eq,
    R: BuildHasher
[src]

impl<K, V, HCX> HashStable<HCX> for BTreeMap<K, V> where
    K: ToStableHashKey<HCX>,
    V: HashStable<HCX>, 
[src]

impl<K, HCX> HashStable<HCX> for BTreeSet<K> where
    K: ToStableHashKey<HCX>, 
[src]

Loading content...

Implementors

impl<CTX> HashStable<CTX> for Fingerprint[src]

impl<I: Idx, K, V, C> HashStable<C> for SortedIndexMultiMap<I, K, V> where
    K: HashStable<C>,
    V: HashStable<C>, 
[src]

impl<P, T, HCX, const COMPARE_PACKED: bool> HashStable<HCX> for CopyTaggedPtr<P, T, COMPARE_PACKED> where
    P: Pointer + HashStable<HCX>,
    T: Tag + HashStable<HCX>, 
[src]

impl<P, T, HCX, const COMPARE_PACKED: bool> HashStable<HCX> for TaggedPtr<P, T, COMPARE_PACKED> where
    P: Pointer + HashStable<HCX>,
    T: Tag + HashStable<HCX>, 
[src]

impl<T> HashStable<T> for Svh[src]

impl<T, HCX> HashStable<HCX> for StableVec<T> where
    T: HashStable<HCX> + ToStableHashKey<HCX>, 
[src]

impl<T: HashStable<CTX>, CTX> HashStable<CTX> for ThinVec<T>[src]

impl<T: ?Sized + HashStable<CTX>, CTX> HashStable<CTX> for Rc<T>[src]

Loading content...