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}