use core::mem::size_of;
use p3_keccak_air::KeccakCols;
use sp1_derive::AlignedBorrow;
use crate::memory::MemoryReadWriteCols;
use super::STATE_NUM_WORDS;
#[derive(AlignedBorrow)]
#[repr(C)]
pub(crate) struct KeccakMemCols<T> {
pub keccak: KeccakCols<T>,
pub shard: T,
pub channel: T,
pub clk: T,
pub nonce: T,
pub state_addr: T,
pub state_mem: [MemoryReadWriteCols<T>; STATE_NUM_WORDS],
pub do_memory_check: T,
pub receive_ecall: T,
pub is_real: T,
}
pub const NUM_KECCAK_MEM_COLS: usize = size_of::<KeccakMemCols<u8>>();