zarumet 1.5.13

A terminal-based mpd client with album display
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
pub struct MpdConfig {
    #[serde(default = "MpdConfig::default_address")]
    pub address: String,
    #[serde(default = "MpdConfig::default_volume_increment")]
    pub volume_increment: u32,
    #[serde(default = "MpdConfig::default_volume_increment_fine")]
    pub volume_increment_fine: u32,
}

impl MpdConfig {
    fn default_address() -> String {
        "localhost:6600".to_string()
    }
    fn default_volume_increment() -> u32 {
        5
    }
    fn default_volume_increment_fine() -> u32 {
        1
    }
}

impl Default for MpdConfig {
    fn default() -> Self {
        Self {
            address: Self::default_address(),
            volume_increment: Self::default_volume_increment(),
            volume_increment_fine: Self::default_volume_increment_fine(),
        }
    }
}