use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CancelJobParams {
pub job_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JobStatusParams {
pub job_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HealthResponse {
pub status: String,
pub active_jobs: i32,
pub uptime_secs: i64,
pub pid: i32,
pub version: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CapabilitiesResponse {
pub version: String,
pub protocol_version: i32,
pub features: Vec<String>,
pub max_concurrent_jobs: i32,
pub encoding: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PongPayload {
#[serde(default)]
pub pong: bool,
}
pub fn decode_pong_payload(v: &Value) -> Option<()> {
let _: PongPayload = serde_json::from_value(v.clone()).ok()?;
Some(())
}