1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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<PathBuf>,
pub(crate) add: Vec<PathBuf>,
pub(crate) hidden: bool,
}
impl Config {
pub fn from<T: Provider>(provider: T) -> figment::error::Result<Config> {
Figment::from(provider).extract()
}
}
impl Provider for Config {
fn metadata(&self) -> Metadata {
Metadata::named("Tmuxr directory config")
}
fn data(&self) -> figment::error::Result<value::Map<Profile, value::Dict>> {
Serialized::defaults(Config::default()).data()
}
}
|