Trait laby::Render

source ·
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>");

Required Methods§

source

fn render(self, buffer: &mut Buffer)

Formats this value into the given output buffer, consuming itself.

Implementations on Foreign Types§

source§

impl Render for NonZeroI32

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroU16

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for bool

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for isize

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroI8

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for usize

source§

fn render(self, buffer: &mut Buffer)

source§

impl<R> Render for Option<R>where R: Render,

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for u16

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for i128

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for f32

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroU32

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for i8

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for &str

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroUsize

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for i16

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for i64

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for String

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroI64

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroIsize

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for u8

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for ()

source§

fn render(self, _: &mut Buffer)

source§

impl Render for NonZeroI16

source§

fn render(self, buffer: &mut Buffer)

source§

impl<'a, R> Render for Cow<'a, R>where R: ToOwned, &'a R: Render, <R as ToOwned>::Owned: Render,

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroU8

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for u64

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroU128

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for u128

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroI128

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for NonZeroU64

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for u32

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for char

source§

fn render(self, buffer: &mut Buffer)

source§

impl<'a> Render for Arguments<'a>

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for i32

source§

fn render(self, buffer: &mut Buffer)

source§

impl Render for f64

source§

fn render(self, buffer: &mut Buffer)

Implementors§

source§

impl Render for DocType

source§

impl<D> Render for RenderDisplay<D>where D: Display,

source§

impl<I> Render for RenderIterator<I>where I: IntoIterator, I::Item: Render,

source§

impl<I, S> Render for RenderIteratorDelimited<I, S>where I: IntoIterator, I::Item: Render, S: AsRef<str>,

source§

impl<S> Render for RenderRaw<S>where S: AsRef<str>,