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_inputs: 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_inputs: 6,
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_inputs]
27 }
28}