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