rill_view/flow/data/
logger.rs1use 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 pub msg: String,
39}