eazygit 0.5.1

A fast TUI for Git with staging, conflicts, rebase, and palette-first UX
Documentation

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum FocusPane {
    Status,
    Branches,
    Log,
    Stash,
    Tags,
    Reflog,
}

#[derive(Debug, Clone)]
pub struct BranchEntry {
    pub name: String,
    pub is_remote: bool,
    pub ahead: Option<i32>,
    pub behind: Option<i32>,
}

#[derive(Debug, Clone)]
pub struct CommitEntry {
    pub hash: String,
    pub short_hash: String,
    pub message: String,
    pub author: String,
}

/// Information about the last commit (for amend operations)
#[derive(Debug, Clone)]
pub struct LastCommitInfo {
    pub author_name: String,
    pub author_email: String,
    pub message: String,
    pub date: String, // ISO format or relative
    #[allow(dead_code)]
    pub hash: String,
    pub short_hash: String,
}

/// Which field is being edited in amend mode
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum AmendField {
    Message,
    AuthorName,
    AuthorEmail,
}

#[derive(Debug, Clone)]
pub struct StashEntry {
    pub name: String,
    pub message: String,
}

#[derive(Debug, Clone)]
pub struct TagEntry {
    pub name: String,
    pub message: String,
}

#[derive(Debug, Clone)]
pub struct ReflogEntry {
    pub short_hash: String,
    pub selector: String,
    pub action: String,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RewordField {
    Message,
    AuthorName,
    AuthorEmail,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RebaseAction {
    Pick,
    Reword,
    Edit,
    Squash,
    Fixup,
    Drop,
}

#[derive(Debug, Clone)]
pub struct RebaseEntry {
    pub hash: String,
    pub short_hash: String,
    pub message: String,
    pub action: RebaseAction,
}

/// Remote entry (future: remote management UI)
#[derive(Debug, Clone)]
#[allow(dead_code)]
pub struct RemoteEntry {
    pub name: String,
    pub url: String,
}

/// Async task for background operations
#[derive(Debug, Clone)]
pub struct AsyncTask {
    pub id: u64,
    pub status: AsyncTaskStatus,
    pub started_at: std::time::Instant,
}

#[derive(Debug, Clone, PartialEq)]
pub enum AsyncTaskStatus {
    #[allow(dead_code)]
    Running,
    Completed,
    Failed(String),
}

#[derive(Debug, Clone)]
pub struct KeyHelp {
    pub key: &'static str,
    pub desc: &'static str,
}

#[allow(dead_code)]
#[derive(Debug, Clone)]
pub struct PrItem {
    pub number: String,
    pub title: String,
    pub _remote: String,
    pub _branch: String,
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DiffMode {
    Working,
    Staged,
}