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);
}