Skip to main content

Fingerprint

Trait Fingerprint 

Source
pub trait Fingerprint {
    // Required method
    fn fingerprint(&self, hasher: &mut Hasher);
}
Expand description

A value whose contents can be reduced to a number that two processes will agree on.

Derive it with #[derive(Fingerprint)], which walks a struct’s fields in declaration order, or an enum’s variant index followed by its fields. Every field’s type has to implement it too.

Required Methods§

Source

fn fingerprint(&self, hasher: &mut Hasher)

Folds self into hasher.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Fingerprint for ()

Source§

fn fingerprint(&self, _hasher: &mut Hasher)

Source§

impl Fingerprint for String

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for bool

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for char

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for f32

Floats fingerprint by their bit pattern, so NaN matches itself and 0.0 does not match -0.0 — the opposite of what == says in both cases. The question a fingerprint answers is “are these the same state?”, not “are these numerically equal?”.

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for f64

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for i8

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for i16

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for i32

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for i64

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for i128

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for isize

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for str

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for u8

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for u16

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for u32

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for u64

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for u128

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl Fingerprint for usize

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<A: Fingerprint, B: Fingerprint, C: Fingerprint, D: Fingerprint, E: Fingerprint, F: Fingerprint> Fingerprint for (A, B, C, D, E, F)

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<A: Fingerprint, B: Fingerprint, C: Fingerprint, D: Fingerprint, E: Fingerprint> Fingerprint for (A, B, C, D, E)

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<A: Fingerprint, B: Fingerprint, C: Fingerprint, D: Fingerprint> Fingerprint for (A, B, C, D)

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<A: Fingerprint, B: Fingerprint, C: Fingerprint> Fingerprint for (A, B, C)

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<A: Fingerprint, B: Fingerprint> Fingerprint for (A, B)

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<A: Fingerprint> Fingerprint for (A,)

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

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

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<K: Fingerprint, V: Fingerprint> Fingerprint for BTreeMap<K, V>

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint + ?Sized> Fingerprint for &T

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint + ?Sized> Fingerprint for Box<T>

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint, E: Fingerprint> Fingerprint for Result<T, E>

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

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

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint> Fingerprint for BTreeSet<T>

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint> Fingerprint for Option<T>

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint> Fingerprint for Vec<T>

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Source§

impl<T: Fingerprint> Fingerprint for [T]

Source§

fn fingerprint(&self, hasher: &mut Hasher)

Implementors§