pub trait CircuitStep<E: Elem> {
fn step_exec<S: CircuitStepHandler<E>>(
&self,
ctx: &CircuitStepContext,
custom: &mut S,
args: &mut [&mut [E]]
) -> Result<E>;
fn step_verify_bytes<S: CircuitStepHandler<E>>(
&self,
ctx: &CircuitStepContext,
custom: &mut S,
args: &mut [&mut [E]]
) -> Result<E>;
fn step_verify_mem<S: CircuitStepHandler<E>>(
&self,
ctx: &CircuitStepContext,
custom: &mut S,
args: &mut [&mut [E]]
) -> Result<E>;
fn step_compute_accum<S: CircuitStepHandler<E>>(
&self,
ctx: &CircuitStepContext,
custom: &mut S,
args: &mut [&mut [E]]
) -> Result<E>;
fn step_verify_accum<S: CircuitStepHandler<E>>(
&self,
ctx: &CircuitStepContext,
custom: &mut S,
args: &mut [&mut [E]]
) -> Result<E>;
}