> Aztec.nr API reference, v6.0.0 (mainnet and testnet). Index: https://docs.aztec.network/aztec-nr-api/v6.0.0/llms.txt

# Trait Hash

Module: `std::hash`

```rust
pub trait Hash {
    // Required methods
    pub fn hash<H>(self, state: &mut H)
    where
        H: Hasher;
}
```

## Required methods

```rust
pub fn hash<H>(self, state: &mut H)
where
    H: Hasher
```

## Implementors

```rust
impl Hash for ()
```

```rust
impl<A, B> Hash for (A, B)
where
    A: Hash,
    B: Hash
```

```rust
impl<A, B, C> Hash for (A, B, C)
where
    A: Hash,
    B: Hash,
    C: Hash
```

```rust
impl<A, B, C, D> Hash for (A, B, C, D)
where
    A: Hash,
    B: Hash,
    C: Hash,
    D: Hash
```

```rust
impl<A, B, C, D, E> Hash for (A, B, C, D, E)
where
    A: Hash,
    B: Hash,
    C: Hash,
    D: Hash,
    E: Hash
```

```rust
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
```

```rust
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
```

```rust
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
```

```rust
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
```

```rust
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
```

```rust
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
```

```rust
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
```

```rust
impl<A> Hash for (A,)
where
    A: Hash
```

```rust
impl Hash for BinaryOp
```

```rust
impl Hash for CtString
```

```rust
impl Hash for EmbeddedCurvePoint
```

```rust
impl Hash for EmbeddedCurveScalar
```

```rust
impl Hash for Field
```

```rust
impl Hash for FunctionDefinition
```

```rust
impl Hash for Location
```

```rust
impl Hash for Module
```

```rust
impl<T> Hash for Option<T>
where
    T: Hash
```

```rust
impl Hash for Quoted
```

```rust
impl Hash for TraitConstraint
```

```rust
impl Hash for TraitDefinition
```

```rust
impl Hash for Type
```

```rust
impl Hash for TypeDefinition
```

```rust
impl Hash for UnaryOp
```

```rust
impl<let N: u32, T> Hash for [T; N]
where
    T: Hash
```

```rust
impl<T> Hash for [T]
where
    T: Hash
```

```rust
impl Hash for bool
```

```rust
impl Hash for i16
```

```rust
impl Hash for i32
```

```rust
impl Hash for i64
```

```rust
impl Hash for i8
```

```rust
impl Hash for u128
```

```rust
impl Hash for u16
```

```rust
impl Hash for u32
```

```rust
impl Hash for u64
```

```rust
impl Hash for u8
```
