1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ProofInfoResponse {
17 #[serde(rename = "proof_id")]
19 pub proof_id: String,
20 #[serde(rename = "circuit_name")]
21 pub circuit_name: String,
22 #[serde(rename = "project_name")]
24 pub project_name: String,
25 #[serde(rename = "circuit_id")]
27 pub circuit_id: String,
28 #[serde(rename = "circuit_type")]
30 pub circuit_type: models::CircuitType,
31 #[serde(rename = "date_created")]
33 pub date_created: String,
34 #[serde(rename = "meta")]
36 pub meta: std::collections::HashMap<String, String>,
37 #[serde(rename = "perform_verify")]
39 pub perform_verify: bool,
40 #[serde(rename = "status")]
42 pub status: models::JobStatus,
43 #[serde(rename = "finished_processing")]
45 pub finished_processing: bool,
46 #[serde(rename = "verified", deserialize_with = "Option::deserialize")]
47 pub verified: Option<bool>,
48 #[serde(rename = "team")]
50 pub team: String,
51 #[serde(rename = "team_avatar_url")]
53 pub team_avatar_url: String,
54 #[serde(rename = "team_name")]
56 pub team_name: String,
57 #[serde(rename = "team_slug")]
59 pub team_slug: String,
60 #[serde(rename = "circuit_team")]
62 pub circuit_team: String,
63 #[serde(rename = "circuit_team_avatar_url")]
65 pub circuit_team_avatar_url: String,
66 #[serde(rename = "circuit_team_slug")]
68 pub circuit_team_slug: String,
69 #[serde(
70 rename = "compute_time",
71 default,
72 with = "::serde_with::rust::double_option",
73 skip_serializing_if = "Option::is_none"
74 )]
75 pub compute_time: Option<Option<String>>,
76 #[serde(
77 rename = "compute_time_sec",
78 default,
79 with = "::serde_with::rust::double_option",
80 skip_serializing_if = "Option::is_none"
81 )]
82 pub compute_time_sec: Option<Option<f64>>,
83 #[serde(
85 rename = "compute_times",
86 default,
87 with = "::serde_with::rust::double_option",
88 skip_serializing_if = "Option::is_none"
89 )]
90 pub compute_times: Option<Option<Box<models::AnyOfLessThanGreaterThan>>>,
91 #[serde(
92 rename = "file_size",
93 default,
94 with = "::serde_with::rust::double_option",
95 skip_serializing_if = "Option::is_none"
96 )]
97 pub file_size: Option<Option<i32>>,
98 #[serde(
99 rename = "proof",
100 default,
101 with = "::serde_with::rust::double_option",
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub proof: Option<Option<serde_json::Value>>,
105 #[serde(
107 rename = "public",
108 default,
109 with = "::serde_with::rust::double_option",
110 skip_serializing_if = "Option::is_none"
111 )]
112 pub public: Option<Option<Box<models::AnyOfLessThanGreaterThan>>>,
113 #[serde(
114 rename = "queue_time",
115 default,
116 with = "::serde_with::rust::double_option",
117 skip_serializing_if = "Option::is_none"
118 )]
119 pub queue_time: Option<Option<String>>,
120 #[serde(
121 rename = "queue_time_sec",
122 default,
123 with = "::serde_with::rust::double_option",
124 skip_serializing_if = "Option::is_none"
125 )]
126 pub queue_time_sec: Option<Option<f64>>,
127 #[serde(
128 rename = "smart_contract_calldata",
129 default,
130 with = "::serde_with::rust::double_option",
131 skip_serializing_if = "Option::is_none"
132 )]
133 pub smart_contract_calldata: Option<Option<String>>,
134 #[serde(
136 rename = "has_smart_contract_calldata",
137 skip_serializing_if = "Option::is_none"
138 )]
139 pub has_smart_contract_calldata: Option<bool>,
140 #[serde(
142 rename = "has_verification_key",
143 skip_serializing_if = "Option::is_none"
144 )]
145 pub has_verification_key: Option<bool>,
146 #[serde(
147 rename = "verification_key",
148 default,
149 with = "::serde_with::rust::double_option",
150 skip_serializing_if = "Option::is_none"
151 )]
152 pub verification_key: Option<Option<serde_json::Value>>,
153 #[serde(
154 rename = "warnings",
155 default,
156 with = "::serde_with::rust::double_option",
157 skip_serializing_if = "Option::is_none"
158 )]
159 pub warnings: Option<Option<Vec<String>>>,
160 #[serde(
161 rename = "error",
162 default,
163 with = "::serde_with::rust::double_option",
164 skip_serializing_if = "Option::is_none"
165 )]
166 pub error: Option<Option<String>>,
167}
168
169impl ProofInfoResponse {
170 pub fn new(
172 proof_id: String,
173 circuit_name: String,
174 project_name: String,
175 circuit_id: String,
176 circuit_type: models::CircuitType,
177 date_created: String,
178 meta: std::collections::HashMap<String, String>,
179 perform_verify: bool,
180 status: models::JobStatus,
181 finished_processing: bool,
182 verified: Option<bool>,
183 team: String,
184 team_avatar_url: String,
185 team_name: String,
186 team_slug: String,
187 circuit_team: String,
188 circuit_team_avatar_url: String,
189 circuit_team_slug: String,
190 ) -> ProofInfoResponse {
191 ProofInfoResponse {
192 proof_id,
193 circuit_name,
194 project_name,
195 circuit_id,
196 circuit_type,
197 date_created,
198 meta,
199 perform_verify,
200 status,
201 finished_processing,
202 verified,
203 team,
204 team_avatar_url,
205 team_name,
206 team_slug,
207 circuit_team,
208 circuit_team_avatar_url,
209 circuit_team_slug,
210 compute_time: None,
211 compute_time_sec: None,
212 compute_times: None,
213 file_size: None,
214 proof: None,
215 public: None,
216 queue_time: None,
217 queue_time_sec: None,
218 smart_contract_calldata: None,
219 has_smart_contract_calldata: None,
220 has_verification_key: None,
221 verification_key: None,
222 warnings: None,
223 error: None,
224 }
225 }
226}