1mod keyparse;
2mod manager;
3mod session;
4
5pub use keyparse::parse_keys;
6pub use manager::TerminalManager;
7pub use session::TerminalSession;
8
9use serde::{Deserialize, Serialize};
10use std::path::PathBuf;
11
12#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
13#[serde(rename_all = "snake_case")]
14pub enum CommandState {
15 Idle,
16 Running,
17 Completed,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
21pub struct TerminalInfo {
22 pub name: String,
23 pub cwd: PathBuf,
24 pub cols: u16,
25 pub rows: u16,
26 pub alive: bool,
27 pub idle_ms: u64,
28 pub age_ms: u64,
29 pub pid: Option<u32>,
30 pub command_state: CommandState,
31 pub current_command: Option<String>,
32 pub last_exit_code: Option<i32>,
33}
34
35#[derive(Debug, Clone, Serialize)]
36pub struct TerminalOutput {
37 pub output: String,
38 pub exit_code: Option<i32>,
39 pub session_name: Option<String>,
40 pub wall_time_ms: u64,
41 pub output_truncated: bool,
42}