use prometeu_hal::log::{LogEvent, LogLevel, LogSource}; pub struct HostConsoleSink { last_seq: Option, } impl Default for HostConsoleSink { fn default() -> Self { Self::new() } } impl HostConsoleSink { pub fn new() -> Self { Self { last_seq: None } } pub fn process_events(&mut self, events: Vec) { for event in events { let level_str = match event.level { LogLevel::Trace => "TRACE", LogLevel::Debug => "DEBUG", LogLevel::Info => "INFO", LogLevel::Warn => "WARN", LogLevel::Error => "ERROR", }; let source_buf; let source_str = match event.source { LogSource::Pos => "POS", LogSource::Hub => "HUB", LogSource::Vm => "VM", LogSource::Fs => "FS", LogSource::App { app_id } => { source_buf = format!("APP:{}", app_id); &source_buf } }; println!( "[{:06}ms][{}][{}][{}] {}", event.ts_ms, event.frame, level_str, source_str, event.msg ); self.last_seq = Some(event.seq); } } pub fn last_seq(&self) -> Option { self.last_seq } }