use anyhow::Result;
use crate::models::context::ContextModel;
pub struct Resolve;
impl Resolve {
pub fn resolve(raw: &str, expect: &Option<ContextModel>) -> Result<Option<ContextModel>> {
match expect {
None => Ok(None),
Some(ContextModel::String(_)) => Ok(Some(ContextModel::String(raw.to_string()))),
Some(ContextModel::List(_)) => {
let items: Vec<String> = raw
.lines()
.filter(|l| !l.is_empty())
.map(|l| l.to_string())
.collect();
Ok(Some(ContextModel::List(items)))
}
}
}
}