use serde::Deserialize;
use std::collections::HashMap;
use std::path::PathBuf;
#[derive(Deserialize, Debug, Clone)]
pub enum TemplateSource {
String(String),
File(PathBuf),
Derive(String),
}
impl TemplateSource {
pub fn resolve(&self, map: &HashMap<String, TemplateSource>) -> Option<String> {
match self {
TemplateSource::String(s) => Some(s.clone()),
TemplateSource::Derive(s) => map.get(s).and_then(|item| item.resolve(map)),
_ => None,
}
}
}