forge_worker_sdk/protocol/
control.rs1use serde::{Deserialize, Serialize};
7use serde_json::Value;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct CancelJobParams {
13 pub job_id: String,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct JobStatusParams {
18 pub job_id: String,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
24pub struct HealthResponse {
25 pub status: String,
26 pub active_jobs: i32,
27 pub uptime_secs: i64,
28 pub pid: i32,
29 pub version: String,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct CapabilitiesResponse {
34 pub version: String,
35 pub protocol_version: i32,
36 pub features: Vec<String>,
37 pub max_concurrent_jobs: i32,
38 pub encoding: String,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct PongPayload {
44 #[serde(default)]
45 pub pong: bool,
46}
47
48pub fn decode_pong_payload(v: &Value) -> Option<()> {
50 let _: PongPayload = serde_json::from_value(v.clone()).ok()?;
51 Some(())
52}