use crate::{Filters, FilterMethods};
use marcus;
pub (crate) fn filter_output(filter_methods: &FilterMethods, filters: &Filters, text: &String) -> String {
let mut output: String = text.to_owned();
if filters.is_empty() {
return marcus::to_string(output);
}
for filter in filters {
if !filter_methods.contains_key(filter) {
panic!("TemplateError: undefined filter (\"{}\")", filter);
}
output = filter_methods.get(filter).unwrap()(output);
}
output
}