use ratatui::crossterm::event::KeyEvent;
use taba_client::{Error, Reply};
use crate::profile::ConfigFile;
use crate::tui::api::ApiCall;
use crate::tui::keymap::Action;
#[derive(Debug)]
pub enum Msg {
Key(KeyEvent),
Scroll(i16),
Resize(u16, u16),
Focus(bool),
Tick {
now: u64,
wall_ms: i64,
},
Action(Action),
Reply {
id: u64,
generation: u64,
call: ApiCall,
result: Result<Reply, Error>,
},
FileWritten {
path: String,
result: Result<(), String>,
},
LanguageSaved(Result<(), String>),
Paste(String),
ProfilesSaved {
file: ConfigFile,
select: Option<String>,
result: Result<(), String>,
},
ProfileChecked(CheckResult),
Connected {
profile: String,
url: String,
result: Result<(), String>,
},
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CheckResult {
Reachable { url: String, millis: u64 },
Refused { url: String, status: u16 },
Answered {
url: String,
status: u16,
code: String,
},
Failed(String),
}