tame_protocol/log_flow/
tracer.rs1pub use super::flow::*;
2use derive_more::{Deref, DerefMut};
3use rill_engine::tracers::tracer::{Tracer, Watcher};
4
5pub type LogFlowWatcher = Watcher<LogFlowState>;
6
7#[derive(Debug, Deref, DerefMut, Clone)]
8pub struct LogFlowTracer {
9 tracer: Tracer<LogFlowState>,
10}
11
12impl LogFlowTracer {
13 pub fn new() -> (Self, LogFlowWatcher) {
14 let state = LogFlowState::new();
15 let (tracer, watcher) = Tracer::new_push(state, LOCATION.root());
16 (Self { tracer }, watcher)
17 }
18
19 pub fn add_logs(&self, lines: Vec<String>) {
20 let msg = LogFlowEvent::AddLogs { lines };
21 self.tracer.send(msg, None, None);
22 }
23
24 pub fn clear_logs(&self) {
25 let msg = LogFlowEvent::ClearLogs;
26 self.tracer.send(msg, None, None);
27 }
28}