use confique::Config as Confique;
use serde::{Deserialize, Serialize};
#[derive(Confique, Serialize, Deserialize, Clone, Debug)]
pub struct DisplayConfig {
#[serde(default = "default_recipes_join")]
pub recipes_join: String,
#[serde(default = "default_recipes_suffix")]
pub recipes_suffix: String,
pub show_descriptions: Option<bool>,
#[serde(default = "default_recipe_fmt")]
pub recipe_fmt: String,
#[serde(default = "default_namespace_fmt")]
pub namespace_fmt: String,
#[serde(default = "default_namespace_show_always")]
pub namespace_show_always: bool,
#[serde(default = "default_name_fmt")]
pub name_fmt: String,
#[serde(default = "default_name_bold")]
pub name_bold: bool,
#[serde(default = "default_desc_fmt")]
pub desc_fmt: String,
#[serde(default = "default_lang_fmt")]
pub lang_fmt: String,
#[serde(default = "default_lang_colour")]
pub lang_colour: bool,
#[serde(default = "default_langs_join")]
pub langs_join: String,
}
impl Default for DisplayConfig {
fn default() -> Self {
Self {
recipes_join: default_recipes_join(),
recipes_suffix: default_recipes_suffix(),
show_descriptions: None,
recipe_fmt: default_recipe_fmt(),
namespace_fmt: default_namespace_fmt(),
namespace_show_always: default_namespace_show_always(),
name_fmt: default_name_fmt(),
name_bold: default_name_bold(),
desc_fmt: default_desc_fmt(),
lang_fmt: default_lang_fmt(),
lang_colour: default_lang_colour(),
langs_join: default_langs_join(),
}
}
}
use config_defaults::*;
#[rustfmt::skip]
mod config_defaults {
pub fn default_recipes_join() -> String { "\n".to_string() }
pub fn default_recipes_suffix() -> String { "\n".to_string() }
pub fn default_recipe_fmt() -> String { "{name} ({langs}){desc}".to_string() }
pub fn default_namespace_fmt() -> String { "\n--- {namespace} ---".to_string() }
pub fn default_namespace_show_always() -> bool { false }
pub fn default_name_fmt() -> String { "{shortname}".to_string() }
pub fn default_name_bold() -> bool { true }
pub fn default_desc_fmt() -> String { "\n {desc}".to_string() }
pub fn default_lang_fmt() -> String { "{lang}".to_string() }
pub fn default_lang_colour() -> bool { true }
pub fn default_langs_join() -> String { " ".to_string() }
}