rill_view/flow/data/
logger.rs

1use rill_protocol::flow::core::{Flow, TimedEvent};
2use rill_protocol::frame::Frame;
3use rill_protocol::io::provider::StreamType;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct LoggerState {
8    pub frame: Frame<TimedEvent<LoggerEvent>>,
9}
10
11#[allow(clippy::new_without_default)]
12impl LoggerState {
13    pub fn new() -> Self {
14        Self {
15            frame: Frame::new(10),
16        }
17    }
18}
19
20impl Flow for LoggerState {
21    type Action = ();
22    type Event = LoggerEvent;
23
24    fn stream_type() -> StreamType {
25        StreamType::from("rillrate.data.logger.v0")
26    }
27
28    fn apply(&mut self, event: TimedEvent<Self::Event>) {
29        self.frame.insert_pop(event);
30    }
31}
32
33pub type LoggerDelta = Vec<TimedEvent<LoggerEvent>>;
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
36pub struct LoggerEvent {
37    // TODO: Replace with enum
38    pub msg: String,
39}