flux_verify_api/api/
response.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize)]
4pub struct TraceEntry {
5 pub opcode: String,
6 #[serde(skip_serializing_if = "Option::is_none")]
7 pub value: Option<f64>,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub result: Option<f64>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub expected: Option<f64>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub actual: Option<f64>,
14 pub desc: String,
15}
16
17#[derive(Debug, Clone, Deserialize, Serialize)]
18#[serde(untagged)]
19pub enum CounterexampleValue {
20 Number(f64),
21 String(String),
22}
23
24#[derive(Debug, Clone, Deserialize, Serialize)]
25pub struct VerifyResponse {
26 pub status: String, pub confidence: f64,
28 pub trace: Vec<TraceEntry>,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub counterexample: Option<serde_json::Value>,
31 pub proof_hash: String,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub plato_tile_id: Option<String>,
34}
35
36#[derive(Debug, Clone, Deserialize, Serialize)]
37pub struct StatusResponse {
38 pub total_verifications: u64,
39 pub proven: u64,
40 pub disproven: u64,
41 pub unknown: u64,
42 pub avg_latency_ms: f64,
43}
44
45#[derive(Debug, Clone, Deserialize, Serialize)]
46pub struct HealthResponse {
47 pub status: String,
48 pub version: String,
49}