Skip to content
Snippets Groups Projects

Figment Backend

Merged Eduardo Trujillo requested to merge figment into master
+ 3
3
@@ -2,7 +2,7 @@ use std::path::PathBuf;
use clap::{Clap, IntoApp};
use log::LevelFilter;
use serde::de::DeserializeOwned;
use serde::{de::DeserializeOwned, Serialize};
use thiserror::Error;
use crate::config;
@@ -45,13 +45,13 @@ pub trait AppOpts: Clap {
}
}
pub trait ConfigurableAppOpts<C: DeserializeOwned>: AppOpts {
pub trait ConfigurableAppOpts<C: DeserializeOwned + Default + Serialize>: AppOpts {
fn try_init_with_config() -> Result<(Self, C), CliError> {
let opts = Self::try_init()?;
let app = <Self as IntoApp>::into_app();
let conf = config::from_default_paths(app.get_name(), &opts.get_additional_config_paths())
let conf = config::from_defaults(app.get_name(), &opts.get_additional_config_paths())
.map_err(CliError::Config)?;
Ok((opts, conf))
Loading