synd_term/application/
app_config.rs1use std::time::Duration;
2
3use crate::config;
4
5#[derive(Debug, Clone, Default)]
6pub struct Features {
7 pub enable_github_notification: bool,
8}
9
10#[derive(Debug, Clone)]
11pub struct Config {
12 pub idle_timer_interval: Duration,
13 pub throbber_timer_interval: Duration,
14 pub entries_limit: usize,
15 pub entries_per_pagination: i64,
16 pub feeds_per_pagination: i64,
17 pub features: Features,
18}
19
20impl Default for Config {
21 fn default() -> Self {
22 Self {
23 idle_timer_interval: Duration::from_secs(250),
24 throbber_timer_interval: Duration::from_millis(250),
25 entries_limit: config::feed::DEFAULT_ENTRIES_LIMIT,
26 entries_per_pagination: config::client::DEFAULT_ENTRIES_PER_PAGINATION,
27 feeds_per_pagination: config::client::DEFAULT_FEEDS_PER_PAGINATION,
28 features: Features::default(),
29 }
30 }
31}
32
33impl Config {
34 #[must_use]
35 pub fn with_idle_timer_interval(self, idle_timer_interval: Duration) -> Self {
36 Self {
37 idle_timer_interval,
38 ..self
39 }
40 }
41}