pub struct Template<'env> { /* private fields */ }
Expand description
Represents a handle to a template.
Templates are stored in the Environment
as bytecode instructions. With the
Environment::get_template
method that is looked up and returned in form of
this handle. Such a template can be cheaply copied as it only holds references.
To render the render
method can be used.
Implementations§
source§impl<'env> Template<'env>
impl<'env> Template<'env>
sourcepub fn render<S: Serialize>(&self, ctx: S) -> Result<String, Error>
pub fn render<S: Serialize>(&self, ctx: S) -> Result<String, Error>
Renders the template into a string.
The provided value is used as the initial context for the template. It
can be any object that implements Serialize
. You
can eiher create your own struct and derive Serialize
for it or the
context!
macro can be used to create an ad-hoc context.
let tmpl = env.get_template("hello").unwrap();
println!("{}", tmpl.render(context!(name => "John")).unwrap());
Note on values: The Value
type implements Serialize
and can be
efficiently passed to render. It does not undergo actual serialization.
sourcepub fn render_to_write<S: Serialize, W: Write>(
&self,
ctx: S,
w: W
) -> Result<(), Error>
pub fn render_to_write<S: Serialize, W: Write>(
&self,
ctx: S,
w: W
) -> Result<(), Error>
Renders the template into a io::Write
.
This works exactly like render
but instead writes the template
as it’s evaluating into a io::Write
.
use std::io::stdout;
let tmpl = env.get_template("hello").unwrap();
tmpl.render_to_write(context!(name => "John"), &mut stdout()).unwrap();
Note on values: The Value
type implements Serialize
and can be
efficiently passed to render. It does not undergo actual serialization.