par-term-config 0.9.0

Configuration system for par-term terminal emulator
Documentation
use crate::types::UpdateCheckFrequency;
use serde::{Deserialize, Serialize};

/// Configuration for automatic update checking
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UpdateConfig {
    /// How often to check for new par-term releases
    /// - never: Disable automatic update checks
    /// - hourly: Check every hour
    /// - daily: Check once per day (default)
    /// - weekly: Check once per week
    /// - monthly: Check once per month
    #[serde(default = "crate::defaults::update_check_frequency")]
    pub update_check_frequency: UpdateCheckFrequency,

    /// ISO 8601 timestamp of the last update check (auto-managed)
    #[serde(default)]
    pub last_update_check: Option<String>,

    /// Version that user chose to skip notifications for
    #[serde(default)]
    pub skipped_version: Option<String>,

    /// Last version we notified the user about (prevents repeat notifications)
    #[serde(default)]
    pub last_notified_version: Option<String>,
}

impl Default for UpdateConfig {
    fn default() -> Self {
        Self {
            update_check_frequency: crate::defaults::update_check_frequency(),
            last_update_check: None,
            skipped_version: None,
            last_notified_version: None,
        }
    }
}