StableHash

Trait StableHash 

Source
pub trait StableHash {
    // Required method
    fn stable_hash<H: StableHasher>(
        &self,
        field_address: H::Addr,
        state: &mut H,
    );
}
Expand description

Like Hash, but consistent across:

  • builds (independent of rustc version or std implementation details)
  • platforms (eg: 32 bit & 64 bit, x68 and ARM)
  • processes (multiple runs of the same program)

For examples of best practices when implementing: See also d3ba3adc-6e9b-4586-a7e7-6b542df39462

Required Methods§

Source

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

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.

Implementations on Foreign Types§

Source§

impl StableHash for bool

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for i8

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for i16

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for i32

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for i64

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for i128

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for isize

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for u8

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for u16

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for u32

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for u64

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for u128

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for usize

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl StableHash for String

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<'a> StableHash for &'a str

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<'a, T: StableHash> StableHash for &'a [T]

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<'a, T: StableHash> StableHash for &'a T

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<K: StableHash, V: StableHash, S> StableHash for HashMap<K, V, S>

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T0: StableHash, T1: StableHash, T2: StableHash, T3: StableHash, T4: StableHash, T5: StableHash, T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T1: StableHash, T2: StableHash, T3: StableHash, T4: StableHash, T5: StableHash, T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T2: StableHash, T3: StableHash, T4: StableHash, T5: StableHash, T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T3: StableHash, T4: StableHash, T5: StableHash, T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T4: StableHash, T5: StableHash, T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T4, T5, T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T5: StableHash, T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T5, T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T6: StableHash, T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T6, T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T7: StableHash, T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T7, T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T8: StableHash, T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T8, T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T9: StableHash, T10: StableHash, T11: StableHash> StableHash for (T9, T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T10: StableHash, T11: StableHash> StableHash for (T10, T11)

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T: StableHash> StableHash for Option<T>

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T: StableHash> StableHash for Vec<T>

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Source§

impl<T: StableHash, S> StableHash for HashSet<T, S>

Source§

fn stable_hash<H: StableHasher>(&self, field_address: H::Addr, state: &mut H)

Implementors§