use crate::config_struct;
use crate::shapes::FilePath;
use crate::template::TemplateLocator;
use schematic::{Config, DefaultValueResult, validate};
fn default_templates<C>(_ctx: &C) -> DefaultValueResult<Vec<TemplateLocator>> {
Ok(Some(vec![TemplateLocator::File {
path: FilePath("./templates".into()),
}]))
}
config_struct!(
#[derive(Config)]
pub struct GeneratorConfig {
#[setting(
validate = validate::not_empty,
default = default_templates
)]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub templates: Vec<TemplateLocator>,
}
);