logana 0.5.1

Turn any log source — files, compressed archives, Docker, or OTel streams — into structured data. Filter by pattern, field, or date range; annotate lines; bookmark findings; and export to Markdown, Jira, or AI assistants via the built-in MCP server.
Documentation
use std::sync::Arc;

use crate::config::Keybindings;
use crate::mode::app_mode::Mode;
use crate::mode::normal_mode::NormalMode;

pub struct InteractionState {
    pub mode: Box<dyn Mode>,
    pub g_key_pressed: bool,
    pub command_error: Option<String>,
    pub notification: Option<String>,
    pub notification_set_at: Option<std::time::Instant>,
    pub command_history: Vec<String>,
    pub keybindings: Arc<Keybindings>,
}

impl Default for InteractionState {
    fn default() -> Self {
        Self {
            mode: Box::new(NormalMode::default()),
            g_key_pressed: false,
            command_error: None,
            notification: None,
            notification_set_at: None,
            command_history: Vec::new(),
            keybindings: Arc::new(Keybindings::default()),
        }
    }
}