light_circuitlib_rs/gnark/
combined_json_formatter.rs1use serde::Serialize;
2
3use crate::combined::merkle_combined_proof_inputs::CombinedProofInputs;
4use crate::gnark::inclusion_json_formatter::BatchInclusionJsonStruct;
5use crate::gnark::non_inclusion_json_formatter::BatchNonInclusionJsonStruct;
6
7use super::{
8 helpers::create_json_from_struct, inclusion_json_formatter::InclusionJsonStruct,
9 non_inclusion_json_formatter::NonInclusionJsonStruct,
10};
11
12#[derive(Serialize, Debug)]
13pub struct CombinedJsonStruct {
14 #[serde(rename(serialize = "input-compressed-accounts"))]
15 pub inclusion: Vec<InclusionJsonStruct>,
16
17 #[serde(rename(serialize = "new-addresses"))]
18 pub non_inclusion: Vec<NonInclusionJsonStruct>,
19}
20
21impl CombinedJsonStruct {
22 pub fn from_combined_inputs(inputs: &CombinedProofInputs) -> Self {
23 let inclusion_parameters =
24 BatchInclusionJsonStruct::from_inclusion_proof_inputs(&inputs.inclusion_parameters);
25 let non_inclusion_parameters = BatchNonInclusionJsonStruct::from_non_inclusion_proof_inputs(
26 &inputs.non_inclusion_parameters,
27 );
28 Self {
29 inclusion: inclusion_parameters.inputs,
30 non_inclusion: non_inclusion_parameters.inputs,
31 }
32 }
33 #[allow(clippy::inherent_to_string)]
34 pub fn to_string(&self) -> String {
35 create_json_from_struct(&self)
36 }
37}