Trait TemplateSimple

Source
pub trait TemplateSimple: Sized {
    // Required methods
    fn render_once(self) -> RenderResult;
    fn render_once_to(self, buf: &mut Buffer) -> Result<(), RenderError>;
}
Expand description

Template which can be accessed without using self.

Required Methods§

Source

fn render_once(self) -> RenderResult

Render the template and return the rendering result as RenderResult

This method never returns Err, unless you explicitly return RenderError inside templates

When you use render_once method, total rendered size will be cached, and at the next time, buffer will be pre-allocated based on the cached length.

If you don’t want this behaviour, you can use render_once_to method instead.

Source

fn render_once_to(self, buf: &mut Buffer) -> Result<(), RenderError>

Render the template and append the result to buf.

This method never returns Err, unless you explicitly return RenderError inside templates

use sailfish::TemplateSimple;
use sailfish::runtime::Buffer;

let tpl = HelloTemplate {
    messages: vec!["foo".to_string()]
};

// custom pre-allocation
let mut buffer = Buffer::with_capacity(100);
tpl.render_once_to(&mut buffer).unwrap();

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§