pub trait HandlebarsConnExt {
// Required methods
fn assign(
self,
key: impl Into<Cow<'static, str>> + Sized,
data: impl Serialize
) -> Self;
fn render_with(self, template: &str, data: &impl Serialize) -> Self;
fn render(self, template: &str) -> Self;
fn assigns(&self) -> Option<&Assigns>;
fn assigns_mut(&mut self) -> &mut Assigns;
}
Expand description
Extension trait that provides handlebar rendering capabilities to
[trillium::Conn
]s.
Required Methods§
sourcefn assign(
self,
key: impl Into<Cow<'static, str>> + Sized,
data: impl Serialize
) -> Self
fn assign( self, key: impl Into<Cow<'static, str>> + Sized, data: impl Serialize ) -> Self
Registers an “assigns” value on this Conn for use in a template.
See example usage at Handlebars::new
sourcefn render_with(self, template: &str, data: &impl Serialize) -> Self
fn render_with(self, template: &str, data: &impl Serialize) -> Self
renders a registered template by name with the provided data as
assigns. note that this does not use any data accumulated by
HandlebarsConnExt::assign
use trillium_handlebars::{HandlebarsHandler, Handlebars, HandlebarsConnExt};
#[derive(serde::Serialize)]
struct User { name: &'static str };
let mut handlebars = Handlebars::new();
handlebars.register_template_string("greet-user", "Hello {{name}}")?;
let handler = (
HandlebarsHandler::new(handlebars),
|mut conn: trillium::Conn| async move {
conn.render_with("greet-user", &User { name: "handlebars" })
}
);
use trillium_testing::prelude::*;
assert_ok!(get("/").on(&handler), "Hello handlebars");
sourcefn render(self, template: &str) -> Self
fn render(self, template: &str) -> Self
renders a registered template, passing any accumulated assigns to
the template. See example at Handlebars::new
sourcefn assigns(&self) -> Option<&Assigns>
fn assigns(&self) -> Option<&Assigns>
retrieves a reference to any accumulated assigns on this conn
sourcefn assigns_mut(&mut self) -> &mut Assigns
fn assigns_mut(&mut self) -> &mut Assigns
retrieves a mutable reference to any accumulated assigns on this conn
Object Safety§
This trait is not object safe.