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}