use crate::{Felt, Word, ZERO};
pub(crate) mod digest;
pub mod blake;
pub mod keccak;
pub mod sha2;
pub mod poseidon2 {
pub use p3_goldilocks::Poseidon2Goldilocks;
pub use super::algebraic_sponge::poseidon2::{
Poseidon2, Poseidon2Challenger, Poseidon2Compression, Poseidon2Hasher,
Poseidon2Permutation256,
};
}
pub mod rpo {
pub use super::algebraic_sponge::rescue::rpo::{
Rpo256, RpoChallenger, RpoCompression, RpoHasher, RpoPermutation256,
};
}
pub mod rpx {
pub use super::algebraic_sponge::rescue::rpx::{
Rpx256, RpxChallenger, RpxCompression, RpxHasher, RpxPermutation256,
};
}
mod algebraic_sponge;
pub trait HasherExt {
type Digest;
fn hash_iter<'a>(slices: impl Iterator<Item = &'a [u8]>) -> Self::Digest;
}