use super::materializer::Materializer;
#[derive(Debug, Clone, Copy)]
pub struct NotUsed;
impl Materializer for NotUsed {
fn materialize(&self) {
}
fn shutdown(&self) {
}
}
#[derive(Debug, Clone)]
pub enum StreamMessage {
Data(Vec<u8>),
Text(String),
Complete,
Error(String),
}
impl StreamMessage {
pub fn is_terminal(&self) -> bool {
matches!(self, StreamMessage::Complete | StreamMessage::Error(_))
}
pub fn as_bytes(&self) -> Option<&Vec<u8>> {
match self {
StreamMessage::Data(bytes) => Some(bytes),
_ => None,
}
}
pub fn as_text(&self) -> Option<&str> {
match self {
StreamMessage::Text(text) => Some(text),
_ => None,
}
}
}