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
 7#[derive(Clone)]
 8pub struct ScenarioConfig {
 9    pub num_steps: usize,
10    pub start_ivc_state: Vec<Fr>,
11    pub circuit: CircomFCircuit<Fr>,
12    input: Vec<Vec<Fr>>,
13}
14
15impl ScenarioConfig {
16    pub fn new() -> Self {
17        Self {
18            num_steps: 5,
19            start_ivc_state: vec![Fr::zero(); 2],
20            circuit: measure("Prepare circuit", create_circuit),
21            input: measure("Prepare input", prepare_input),
22        }
23    }
24
25    pub fn input(&self) -> &[Vec<Fr>] {
26        &self.input[..self.num_steps]
27    }
28}