diff --git a/src/gates/gmimc.rs b/src/gates/gmimc.rs index 10da10dd..de957deb 100644 --- a/src/gates/gmimc.rs +++ b/src/gates/gmimc.rs @@ -166,7 +166,7 @@ impl Gate for GMiMCGate { cubing_input, Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_CUBING_INPUT, + input: GMiMCEvalGate::::WIRE_CUBING_INPUT, }), ); @@ -174,7 +174,7 @@ impl Gate for GMiMCGate { addition_buffer, Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_ADDITION_BUFFER_OLD, + input: GMiMCEvalGate::::WIRE_ADDITION_BUFFER_OLD, }), ); @@ -182,23 +182,23 @@ impl Gate for GMiMCGate { state[active], Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_STATE_A_OLD, + input: GMiMCEvalGate::::WIRE_STATE_A_OLD, }), ); constraints.push(Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_CONSTRAINT, + input: GMiMCEvalGate::::WIRE_CONSTRAINT, })); addition_buffer = Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_ADDITION_BUFFER_NEW, + input: GMiMCEvalGate::::WIRE_ADDITION_BUFFER_NEW, }); state[active] = Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_STATE_A_NEW, + input: GMiMCEvalGate::::WIRE_STATE_A_NEW, }); } diff --git a/src/gates/gmimc_eval.rs b/src/gates/gmimc_eval.rs index 6f5eb03d..9b8ed276 100644 --- a/src/gates/gmimc_eval.rs +++ b/src/gates/gmimc_eval.rs @@ -6,6 +6,7 @@ use crate::target::Target; use crate::vars::{EvaluationTargets, EvaluationVars}; use crate::wire::Wire; use crate::witness::PartialWitness; +use std::marker::PhantomData; /// Performs some arithmetic involved in the evaluation of GMiMC's constraint polynomials for one /// round. In particular, this performs the following computations: @@ -20,11 +21,13 @@ use crate::witness::PartialWitness; /// element; see https://affine.group/2020/02/starkware-challenge. `C_r` represents the round /// constant for round `r`. #[derive(Debug)] -pub struct GMiMCEvalGate; +pub struct GMiMCEvalGate { + _phantom: PhantomData, +} -impl GMiMCEvalGate { - pub fn get() -> GateRef { - GateRef::new(GMiMCEvalGate) +impl GMiMCEvalGate { + pub fn get() -> GateRef { + GateRef::new(GMiMCEvalGate { _phantom: PhantomData }) } pub const CONST_C_R: usize = 0; @@ -38,7 +41,7 @@ impl GMiMCEvalGate { const WIRE_F: usize = 6; } -impl Gate for GMiMCEvalGate { +impl Gate for GMiMCEvalGate { fn id(&self) -> String { format!("{:?}", self) } @@ -151,15 +154,15 @@ impl SimpleGenerator for GMiMCEvalGenerator { vec![ Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_CUBING_INPUT, + input: GMiMCEvalGate::::WIRE_CUBING_INPUT, }), Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_ADDITION_BUFFER_OLD, + input: GMiMCEvalGate::::WIRE_ADDITION_BUFFER_OLD, }), Target::Wire(Wire { gate, - input: GMiMCEvalGate::WIRE_STATE_A_OLD, + input: GMiMCEvalGate::::WIRE_STATE_A_OLD, }), ] } @@ -168,31 +171,31 @@ impl SimpleGenerator for GMiMCEvalGenerator { let gate = self.gate_index; let wire_constraint = Wire { gate, - input: GMiMCEvalGate::WIRE_CONSTRAINT, + input: GMiMCEvalGate::::WIRE_CONSTRAINT, }; let wire_state_a_old = Wire { gate, - input: GMiMCEvalGate::WIRE_STATE_A_OLD, + input: GMiMCEvalGate::::WIRE_STATE_A_OLD, }; let wire_state_a_new = Wire { gate, - input: GMiMCEvalGate::WIRE_STATE_A_NEW, + input: GMiMCEvalGate::::WIRE_STATE_A_NEW, }; let wire_addition_buffer_old = Wire { gate, - input: GMiMCEvalGate::WIRE_ADDITION_BUFFER_OLD, + input: GMiMCEvalGate::::WIRE_ADDITION_BUFFER_OLD, }; let wire_addition_buffer_new = Wire { gate, - input: GMiMCEvalGate::WIRE_ADDITION_BUFFER_NEW, + input: GMiMCEvalGate::::WIRE_ADDITION_BUFFER_NEW, }; let wire_cubing_input = Wire { gate, - input: GMiMCEvalGate::WIRE_CUBING_INPUT, + input: GMiMCEvalGate::::WIRE_CUBING_INPUT, }; let wire_f = Wire { gate, - input: GMiMCEvalGate::WIRE_F, + input: GMiMCEvalGate::::WIRE_F, }; let addition_buffer_old = witness.get_wire(wire_addition_buffer_old);