pathfinder_common/
hash.rs1use pathfinder_crypto::hash::{pedersen_hash, poseidon_hash};
4use pathfinder_crypto::Felt;
5
6pub trait FeltHash {
10 fn hash(a: Felt, b: Felt) -> Felt;
11}
12
13#[derive(Debug, Clone, Copy)]
15pub struct PedersenHash {}
16
17impl FeltHash for PedersenHash {
18 fn hash(a: Felt, b: Felt) -> Felt {
19 pedersen_hash(a, b)
20 }
21}
22
23#[derive(Debug, Clone, Copy)]
25pub struct PoseidonHash;
26impl FeltHash for PoseidonHash {
27 fn hash(a: Felt, b: Felt) -> Felt {
28 poseidon_hash(a.into(), b.into()).into()
29 }
30}