use std::time::Instant;
use ratatui::style::Color;
/// Severity level for a log entry.
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum LogLevel {
Debug,
Info,
Warning,
Error,
}
impl LogLevel {
/// The display color associated with this level.
pub fn color(self) -> Color {
match self {
LogLevel::Debug => Color::DarkGray,
LogLevel::Info => Color::Gray,
LogLevel::Warning => Color::Yellow,
LogLevel::Error => Color::Red,
}
}
}
/// A single timestamped log entry with a severity level.
#[derive(Debug, Clone)]
pub struct LogEntry {
pub timestamp: String,
pub level: LogLevel,
pub message: String,
/// Wall-clock time of creation, used to evict entries older than 24 h.
pub created_at: Instant,
}