use sp1_derive::AlignedBorrow;
use std::mem::size_of;
use crate::{air::PV_DIGEST_NUM_WORDS, operations::IsZeroOperation};
pub const NUM_ECALL_COLS: usize = size_of::<EcallCols<u8>>();
#[derive(AlignedBorrow, Default, Debug, Clone, Copy)]
#[repr(C)]
pub struct EcallCols<T> {
pub is_enter_unconstrained: IsZeroOperation<T>,
pub is_hint_len: IsZeroOperation<T>,
pub is_halt: IsZeroOperation<T>,
pub is_commit: IsZeroOperation<T>,
pub is_commit_deferred_proofs: IsZeroOperation<T>,
pub index_bitmap: [T; PV_DIGEST_NUM_WORDS],
pub syscall_nonce: T,
}