synd-term 0.3.2

terminal feed viewer
Documentation
use std::time::Duration;

use crate::config;

#[derive(Debug, Clone, Default)]
pub struct Features {
    pub enable_github_notification: bool,
}

#[derive(Debug, Clone)]
pub struct Config {
    pub idle_timer_interval: Duration,
    pub throbber_timer_interval: Duration,
    pub entries_limit: usize,
    pub entries_per_pagination: i64,
    pub feeds_per_pagination: i64,
    pub features: Features,
}

impl Default for Config {
    fn default() -> Self {
        Self {
            idle_timer_interval: Duration::from_secs(250),
            throbber_timer_interval: Duration::from_millis(250),
            entries_limit: config::feed::DEFAULT_ENTRIES_LIMIT,
            entries_per_pagination: config::client::DEFAULT_ENTRIES_PER_PAGINATION,
            feeds_per_pagination: config::client::DEFAULT_FEEDS_PER_PAGINATION,
            features: Features::default(),
        }
    }
}

impl Config {
    #[must_use]
    pub fn with_idle_timer_interval(self, idle_timer_interval: Duration) -> Self {
        Self {
            idle_timer_interval,
            ..self
        }
    }
}