pub trait Evaluable<FF: FiniteField> {
// Required methods
fn evaluate_initial_constraints(
main_row: ArrayView1<'_, FF>,
aux_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges,
) -> Vec<XFieldElement>;
fn evaluate_consistency_constraints(
main_row: ArrayView1<'_, FF>,
aux_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges,
) -> Vec<XFieldElement>;
fn evaluate_transition_constraints(
current_main_row: ArrayView1<'_, FF>,
current_aux_row: ArrayView1<'_, XFieldElement>,
next_main_row: ArrayView1<'_, FF>,
next_aux_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges,
) -> Vec<XFieldElement>;
fn evaluate_terminal_constraints(
main_row: ArrayView1<'_, FF>,
aux_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges,
) -> Vec<XFieldElement>;
}
Required Methods§
fn evaluate_initial_constraints( main_row: ArrayView1<'_, FF>, aux_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges, ) -> Vec<XFieldElement>
fn evaluate_consistency_constraints( main_row: ArrayView1<'_, FF>, aux_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges, ) -> Vec<XFieldElement>
fn evaluate_transition_constraints( current_main_row: ArrayView1<'_, FF>, current_aux_row: ArrayView1<'_, XFieldElement>, next_main_row: ArrayView1<'_, FF>, next_aux_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges, ) -> Vec<XFieldElement>
fn evaluate_terminal_constraints( main_row: ArrayView1<'_, FF>, aux_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges, ) -> Vec<XFieldElement>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.