use permutation::Poseidon2Degree3Cols;
use sp1_derive::AlignedBorrow;
pub mod air;
pub mod permutation;
pub mod trace;
pub const WIDTH: usize = 16;
pub const RATE: usize = WIDTH / 2;
pub const NUM_EXTERNAL_ROUNDS: usize = 8;
pub const NUM_INTERNAL_ROUNDS: usize = 20;
pub const NUM_ROUNDS: usize = NUM_EXTERNAL_ROUNDS + NUM_INTERNAL_ROUNDS;
pub const NUM_POSEIDON2_OPERATION_COLUMNS: usize = std::mem::size_of::<Poseidon2Operation<u8>>();
#[derive(AlignedBorrow, Clone, Copy)]
#[repr(C)]
pub struct Poseidon2Operation<T: Copy> {
pub permutation: Poseidon2Degree3Cols<T>,
}