spongefish_poseidon2/
risc0_poseidon2.rs1use risc0_zkp::field::baby_bear::BabyBearElem;
2use spongefish::Permutation;
3
4#[derive(Clone, Debug, Default)]
5pub struct RiscZeroBabyBearPoseidon2_24;
6
7impl Permutation<24> for RiscZeroBabyBearPoseidon2_24 {
8 type U = BabyBearElem;
9
10 fn permute(&self, state: &[Self::U; 24]) -> [Self::U; 24] {
11 let mut new_state = *state;
12 risc0_zkp::core::hash::poseidon2::poseidon2_mix(&mut new_state);
13 new_state
14 }
15
16 fn permute_mut(&self, state: &mut [Self::U; 24]) {
17 risc0_zkp::core::hash::poseidon2::poseidon2_mix(state);
18 }
19}