use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", rename_all = "camelCase")]
pub enum FlowEvent {
#[serde(rename = "update")]
TaskUpdate {
event: String,
#[serde(skip_serializing_if = "Option::is_none")]
session_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
file: Option<String>,
},
#[serde(rename = "feature_update")]
FeatureUpdate {
id: i64,
#[serde(skip_serializing_if = "Option::is_none")]
passes: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
in_progress: Option<bool>,
},
#[serde(rename = "agent-status")]
AgentStatus {
#[serde(skip_serializing_if = "Option::is_none")]
agent: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
status: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
task: Option<String>,
},
#[serde(rename = "progress")]
Progress {
passing: usize,
total: usize,
in_progress: usize,
},
#[serde(rename = "metadata-update")]
MetadataUpdate,
#[serde(rename = "connected")]
Connected,
}