Skip to main content

sac/terminal/
mod.rs

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}