my_desire/
lib.rs

1pub use my_desire_macros::interpol;
2
3pub trait TemplateString<V: TemplateVisitor> {
4    fn accept(self) -> V::Output;
5}
6
7pub trait TemplateVisitor {
8    type Output;
9    fn new() -> Self;
10    fn visit_str(&mut self, s: &'static str);
11    fn finish(self) -> Self::Output;
12}
13
14pub trait TemplateVisit<T> {
15    fn visit(&mut self, value: &T);
16}