arnaucube
arnaucube/sonobe-playgroundPublic Self-hosted repository
sonobe-playground/src/scenario_config.rs
src/scenario_config.rsRaw
 1use ark_bn254::Fr;
 2use num_traits::Zero;
 3use sonobe::frontend::circom::CircomFCircuit;
 4
 5use crate::{circuit::create_circuit, input::prepare_input, measure};
 6
 7pub struct ScenarioConfig {
 8    pub num_steps: usize,
 9    pub start_ivc_state: Vec<Fr>,
10    pub circuit: CircomFCircuit<Fr>,
11    input: Vec<Vec<Fr>>,
12}
13
14impl ScenarioConfig {
15    pub fn new() -> Self {
16        Self {
17            num_steps: 5,
18            start_ivc_state: vec![Fr::zero(); 2],
19            circuit: measure("Prepare circuit", create_circuit),
20            input: measure("Prepare input", prepare_input),
21        }
22    }
23
24    pub fn input(&self) -> &[Vec<Fr>] {
25        &self.input[..self.num_steps]
26    }
27}