extern crate text2html; use text2html::*; pub struct Content <'b> { pub c: &'b String, } impl <'b> Content <'b> { pub fn new(s: &'b String) -> Self { Content { c: s, } } } impl <'b> Text for Content <'b> { fn data_source(&mut self) -> String { self.c.to_owned() } } pub struct TextBuilder <'a> { pub sc: &'a String, } impl <'a> TextBuilder <'a> { pub fn new(s: &'a String) -> Self { TextBuilder { sc: s, } } } impl <'a> TextBuilder <'a> { pub fn build(&mut self) -> Box { Box::new( Content::new(&self.sc) ) } } fn main() { let text = "Hello world.".to_string(); let mut builder = TextBuilder::new( &text ).build(); HtmlRender::new().render(&mut builder); }