use serde_derive::Deserialize; use std::collections::HashMap; use super::{parse_to_config_file, TomlConfigFile}; #[derive(Debug, Deserialize)] pub struct JoshutoPreviewEntry { pub program: String, pub args: Option>, } #[derive(Debug, Default, Deserialize)] struct JoshutoPreviewRaw { pub extension: Option>, pub mimetype: Option>, } impl From for JoshutoPreview { fn from(crude: JoshutoPreviewRaw) -> Self { let extension = crude.extension.unwrap_or_default(); let mimetype = crude.mimetype.unwrap_or_default(); Self { extension, mimetype, } } } #[derive(Debug, Default)] pub struct JoshutoPreview { pub extension: HashMap, pub mimetype: HashMap, } impl TomlConfigFile for JoshutoPreview { fn get_config(file_name: &str) -> Self { parse_to_config_file::(file_name).unwrap_or_default() } }