pub mod ace;
pub mod bitwise;
pub mod columns;
pub mod hasher_control;
pub mod memory;
pub mod permutation;
pub mod selectors;
use selectors::ChipletSelectors;
use crate::{MainCols, MidenAirBuilder};
pub fn enforce_main<AB>(
builder: &mut AB,
local: &MainCols<AB::Var>,
next: &MainCols<AB::Var>,
selectors: &ChipletSelectors<AB::Expr>,
) where
AB: MidenAirBuilder,
{
permutation::enforce_permutation_constraints(builder, local, next, &selectors.permutation);
hasher_control::enforce_controller_constraints(builder, local, next, &selectors.controller);
bitwise::enforce_bitwise_constraints(builder, local, next, &selectors.bitwise);
memory::enforce_memory_constraints(builder, local, next, &selectors.memory);
ace::enforce_ace_constraints_all_rows(builder, local, next, &selectors.ace);
}