eazygit 0.5.1

A fast TUI for Git with staging, conflicts, rebase, and palette-first UX
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize, Default)]
pub struct PartialConfig {
    #[serde(default)]
    pub core: Option<crate::config::settings::PartialCoreConfig>,
    #[serde(default)]
    pub diff: Option<crate::config::settings::PartialDiffConfig>,
    #[serde(default)]
    pub ui: Option<crate::config::settings::PartialUiConfig>,
    #[serde(default)]
    pub theme: Option<crate::config::theme::PartialThemeConfig>,
    #[serde(default)]
    pub keymap: Option<std::collections::HashMap<String, String>>,
    #[serde(default)]
    pub commands: Option<std::collections::HashMap<String, String>>,
    
    // Legacy theme fields (for backward compatibility if user puts them at top level)
    pub fg: Option<String>,
    pub bg: Option<String>,
    pub muted: Option<String>,
    pub accent: Option<String>,
    pub border: Option<String>,
    pub border_focused: Option<String>,
    pub selection_bg: Option<String>,
    pub selection_fg: Option<String>,
    pub diff_add: Option<String>,
    pub diff_remove: Option<String>,
    pub diff_context: Option<String>,
    pub diff_hunk: Option<String>,
    pub staged: Option<String>,
    pub unstaged: Option<String>,
    pub untracked: Option<String>,
    pub header: Option<String>,
    pub footer: Option<String>,
    pub error: Option<String>,
    pub warning: Option<String>,
    pub success: Option<String>,
}

#[derive(Debug, Deserialize, Serialize, Default)]
pub struct CommitConfig {
    pub template: Option<String>,
}