60 lines
1.4 KiB
Rust
Executable File
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,
|
|
}
|
|
}
|
|
}
|