pub struct Template { /* private fields */ }Expand description
Responder that renders a dynamic template.
Template serves as a proxy type for rendering a template and does not
contain the rendered template itself. The template is lazily rendered, at
response time. To render a template greedily, use Template::show().
See the crate root for usage details.
Implementations§
source§impl Template
impl Template
sourcepub fn fairing() -> impl Fairing
pub fn fairing() -> impl Fairing
Returns a fairing that initializes and maintains templating state.
This fairing, or the one returned by Template::custom(), must be
attached to any Rocket instance that wishes to render templates.
Failure to attach this fairing will result in a “Uninitialized template
context: missing fairing.” error message when a template is attempted to
be rendered.
If you wish to customize the internal templating engines, use
Template::custom() instead.
Example
To attach this fairing, simple call attach on the application’s
Rocket instance with Template::fairing():
extern crate rocket;
extern crate rocket_dyn_templates;
use rocket_dyn_templates::Template;
fn main() {
rocket::build()
// ...
.attach(Template::fairing())
// ...
}sourcepub fn custom<F>(f: F) -> impl Fairing
pub fn custom<F>(f: F) -> impl Fairing
Returns a fairing that initializes and maintains templating state.
Unlike Template::fairing(), this method allows you to configure
templating engines via the function f. Note that only the enabled
templating engines will be accessible from the Engines type.
This method does not allow the function f to fail. If f is fallible,
use Template::try_custom() instead.
Example
extern crate rocket;
extern crate rocket_dyn_templates;
use rocket_dyn_templates::Template;
fn main() {
rocket::build()
// ...
.attach(Template::custom(|engines| {
// engines.handlebars.register_helper ...
}))
// ...
}sourcepub fn try_custom<F>(f: F) -> impl Fairing
pub fn try_custom<F>(f: F) -> impl Fairing
Returns a fairing that initializes and maintains templating state.
This variant of Template::custom() allows a fallible f. If f
returns an error during initialization, it will cancel the launch. If
f returns an error during template reloading (in debug mode), then the
newly-reloaded templates are discarded.
Example
extern crate rocket;
extern crate rocket_dyn_templates;
use rocket_dyn_templates::Template;
fn main() {
rocket::build()
// ...
.attach(Template::try_custom(|engines| {
// engines.handlebars.register_helper ...
Ok(())
}))
// ...
}sourcepub fn render<S, C>(name: S, context: C) -> Template
pub fn render<S, C>(name: S, context: C) -> Template
Render the template named name with the context context. The
context is typically created using the context! macro, but it can
be of any type that implements Serialize, such as HashMap or a
custom struct.
To render a template directly into a string, use Metadata::render().
Examples
Using the context macro:
use rocket_dyn_templates::{Template, context};
let template = Template::render("index", context! {
foo: "Hello, world!",
});Using a HashMap as the context:
use std::collections::HashMap;
use rocket_dyn_templates::Template;
// Create a `context` from a `HashMap`.
let mut context = HashMap::new();
context.insert("foo", "Hello, world!");
let template = Template::render("index", context);sourcepub fn show<S, C>(rocket: &Rocket<Orbit>, name: S, context: C) -> Option<String>
pub fn show<S, C>(rocket: &Rocket<Orbit>, name: S, context: C) -> Option<String>
Render the template named name with the context context into a
String. This method should not be used in any running Rocket
application. This method should only be used during testing to validate
Template responses. For other uses, use render()
instead.
The context can be of any type that implements Serialize. This is
typically a HashMap or a custom struct.
Returns Some if the template could be rendered. Otherwise, returns
None. If rendering fails, error output is printed to the console.
None is also returned if a Template fairing has not been attached.
Example
use std::collections::HashMap;
use rocket_dyn_templates::Template;
use rocket::local::blocking::Client;
fn main() {
let rocket = rocket::build().attach(Template::fairing());
let client = Client::untracked(rocket).expect("valid rocket");
// Create a `context`. Here, just an empty `HashMap`.
let mut context = HashMap::new();
let template = Template::show(client.rocket(), "index", context);
}Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Template
impl Send for Template
impl Sync for Template
impl Unpin for Template
impl !UnwindSafe for Template
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
§fn into_collection<A>(self) -> SmallVec<A>where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A>where
A: Array<Item = T>,
self into a collection.fn mapped<U, F, A>(self, f: F) -> SmallVec<A>where
F: FnMut(T) -> U,
A: Array<Item = U>,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);