emit

Struct Template

Source
pub struct Template<'a>(/* private fields */);
Expand description

A lazily evaluated text template with named holes for interpolating properties into.

The Template::render method can be used to format a template with Props into a string or other representation.

Template equality is based on the equality of their renderings.

Two templates can be equal if they’d render to the same outputs. That means they must have the same holes in the same positions, but their text tokens may be split differently, so long as they produce the same text.

Implementations§

Source§

impl Template<'static>

Source

pub const fn new(parts: &'static [Part<'static>]) -> Template<'static>

Create a template from a set of tokens.

Source

pub const fn literal(text: &'static str) -> Template<'static>

Create a template from a string literal with no holes.

Source§

impl<'a> Template<'a>

Source

pub const fn new_ref(parts: &'a [Part<'a>]) -> Template<'a>

Create a template from a borrowed set of tokens.

The Template::new method should be preferred where possible.

Source

pub const fn literal_ref(text: &'a str) -> Template<'a>

Create a template from a string literal with no holes.

The Template::literal method should be preferred where possible.

Source

pub fn by_ref<'b>(&'b self) -> Template<'b>

Get a new template, borrowing data from this one.

Source

pub fn as_literal(&self) -> Option<&Str<'a>>

Try get the value of the template as a string literal.

If the template only has a single token, and that token is text, then this method will return Some. Otherwise this method will return None.

Source

pub fn parts(&self) -> Parts<'_, 'a>

Iterate over the parts of the template.

Source

pub fn render<'b, P>(&'b self, props: P) -> Render<'b, P>

Lazily render the template, using the given properties for interpolation.

Source§

impl Template<'static>

Source

pub fn new_owned(parts: impl Into<Box<[Part<'static>]>>) -> Template<'static>

Create a template from a set of owned parts.

Source§

impl<'a> Template<'a>

Source

pub fn to_owned(&self) -> Template<'static>

Get a new template from this one, converting its parts into owned data.

If the template already contains owned data then this method will simply clone it.

Trait Implementations§

Source§

impl<'a> Clone for Template<'a>

Source§

fn clone(&self) -> Template<'a>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Template<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'a> Display for Template<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'a> From<&'a [Part<'a>]> for Template<'a>

Source§

fn from(value: &'a [Part<'a>]) -> Template<'a>

Converts to this type from the input type.
Source§

impl<'a, 'b> PartialEq<Template<'b>> for Template<'a>

Source§

fn eq(&self, other: &Template<'b>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> ToValue for Template<'a>

Source§

fn to_value(&self) -> Value<'_>

Perform the conversion.
Source§

impl<'a> Eq for Template<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Template<'a>

§

impl<'a> RefUnwindSafe for Template<'a>

§

impl<'a> Send for Template<'a>

§

impl<'a> Sync for Template<'a>

§

impl<'a> Unpin for Template<'a>

§

impl<'a> UnwindSafe for Template<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V