pub trait Render {
// Required method
fn render(self, buffer: &mut Buffer);
}
Expand description
Formats a value into an HTML representation.
Example
The following example shows how this trait can be implemented. This is a low-level trait, so any data written to the output buffer is not escaped by default.
use laby::Render;
use laby::internal::{Buffer, escape};
struct Hello<'a> {
name: &'a str
}
impl Render for Hello<'_> {
#[inline]
fn render(self, buffer: &mut Buffer) {
buffer.push_str("<div>");
buffer.push_str("hello, ");
escape(self.name, buffer); // ensure string is escaped
buffer.push_str("</div>");
}
}
let x = Hello {
name: "laby"
};
let mut buffer = Buffer::new();
x.render(&mut buffer);
assert_eq!(buffer.into_string(), "<div>hello, laby</div>");