run-highlighter/src/config.rs

60 lines
1.4 KiB
Rust
Executable File

#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
#[derive(Default)]
pub struct Config {
pub client: Client,
pub twitch: Twitch,
pub padding: Padding,
#[serde(default, rename = "display")]
pub highlighter: Display,
}
impl Config {
// pub fn twitch_ready(&self) -> bool {
// !self.client.id.is_empty()
// && !self.client.secret.is_empty()
// && self.twitch.channel.is_some()
// }
}
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
#[derive(Default)]
pub struct Client {
pub id: String,
pub secret: String,
}
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
#[derive(Default)]
pub struct Twitch {
#[cfg_attr(feature = "persistence", serde(default))]
pub channel: Option<String>,
}
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
pub struct Padding {
pub start: i64,
pub end: i64,
}
impl Default for Padding {
fn default() -> Self {
Self {
start: 10,
end: 10,
}
}
}
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
pub struct Display {
pub show_incomplete: bool,
}
impl Default for Display {
fn default() -> Self {
Self {
show_incomplete: true,
}
}
}