buntrail-core 0.1.1

Revisioned documents and shared editor contracts.
Documentation
use super::*;
#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq)]
pub struct TerminalSize {
    pub columns: std::num::NonZeroU16,
    pub rows: std::num::NonZeroU16,
}
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, PartialEq)]
pub struct TerminalStyle {
    pub font_family: String,
    pub font_size: f64,
    pub ansi_palette: [u32; 16],
    pub foreground: u32,
    pub background: u32,
    pub cursor: u32,
}
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, PartialEq, Eq)]
pub struct TerminalOpenRequest {
    pub operation: OperationID,
    pub session: TerminalSessionID,
    pub owner: WorkspaceLease,
    pub target: TargetIdentity,
    pub runtime: RuntimeGeneration,
    pub directory: TargetPath,
    pub shell: TargetPath,
    pub size: TerminalSize,
}
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, PartialEq, Eq)]
pub struct TerminalAttachRequest {
    pub session: TerminalSessionID,
    pub owner: WorkspaceLease,
    pub runtime: RuntimeGeneration,
    pub last_output_sequence: u64,
}
#[derive(serde::Serialize, serde::Deserialize, Clone, Copy, Debug, PartialEq, Eq)]
pub enum TerminalEndIntent {
    ExplicitClose,
    FinalWorkspaceClose,
    RetentionExpiry,
}
#[derive(serde::Serialize, serde::Deserialize, Clone, Debug, PartialEq, Eq)]
pub enum TerminalEvent {
    Output { sequence: u64, bytes: Vec<u8> },
    Gap { first: u64, last: u64 },
    ProcessExit { code: Option<i32> },
    Ended { intent: TerminalEndIntent },
    Disconnected { expires_at_unix_seconds: u64 },
    Reattached,
    Expired,
    RuntimeLost,
}
pub const RETENTION_SECONDS: u64 = 1800;