use figment::{providers::Serialized, value, Figment, Metadata, Profile, Provider}; use serde::{Deserialize, Serialize}; use std::path::PathBuf; #[derive(Debug, PartialEq, Eq, Clone, Default, Serialize, Deserialize)] pub struct Config { pub(crate) search: Vec, pub(crate) add: Vec, pub(crate) hidden: bool, } impl Config { pub fn from(provider: T) -> figment::error::Result { Figment::from(provider).extract() } } impl Provider for Config { fn metadata(&self) -> Metadata { Metadata::named("Tmuxr directory config") } fn data(&self) -> figment::error::Result> { Serialized::defaults(Config::default()).data() } }