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