use serde::{Deserialize, Serialize};
use serde_json::Value as JsonValue;
use crate::types::StreamMode;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StreamPart {
pub mode: StreamMode,
pub ns: Vec<String>,
pub data: JsonValue,
}
impl StreamPart {
pub fn values(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Values, ns, data }
}
pub fn updates(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Updates, ns, data }
}
pub fn messages(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Messages, ns, data }
}
pub fn custom(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Custom, ns, data }
}
pub fn tasks(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Tasks, ns, data }
}
pub fn checkpoints(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Checkpoints, ns, data }
}
pub fn debug(ns: Vec<String>, data: JsonValue) -> Self {
Self { mode: StreamMode::Debug, ns, data }
}
}