#[test]
fn echo_function() {
    let mut tr = crate::TemplateRenderer::with_template("<!$ echo test>");
    tr.set_placeholder_fn("echo", Box::new(Echo()));
    assert_eq!(tr.render().unwrap(), "test");

    tr.set_template("<!$ echo test with spaces> and extra text");
    assert_eq!(tr.render().unwrap(), "test with spaces and extra text");
}

struct Counter(usize);
impl crate::PlaceholderFunction for Counter {
    fn placeholder_fn_handler<'a>(&mut self, _name: &'a str, _arg: &'a str) -> Result<String, String> {