use serde_json::Value;
use crate::graph::state::{State, StateUpdate};
use super::metadata::{DebugInfo, MessageChunk};
#[derive(Clone, Debug)]
pub enum StreamChunk<S: State> {
Values { state: S },
Updates { node: String, update: StateUpdate },
Messages { chunk: MessageChunk },
Custom { node: String, data: Value },
Debug { info: DebugInfo },
}
impl<S: State> StreamChunk<S> {
pub fn mode(&self) -> super::mode::StreamMode {
use super::mode::StreamMode;
match self {
Self::Values { .. } => StreamMode::Values,
Self::Updates { .. } => StreamMode::Updates,
Self::Messages { .. } => StreamMode::Messages,
Self::Custom { .. } => StreamMode::Custom,
Self::Debug { .. } => StreamMode::Debug,
}
}
}