pub struct Template {
    pub name: String,
    pub path: Option<String>,
    pub ast: Vec<Node, Global>,
    pub from_extend: bool,
    pub macros: HashMap<String, MacroDefinition, RandomState>,
    pub imported_macro_files: Vec<(String, String), Global>,
    pub parent: Option<String>,
    pub blocks: HashMap<String, Block, RandomState>,
    pub parents: Vec<String, Global>,
    pub blocks_definitions: HashMap<String, Vec<(String, Block), Global>, RandomState>,
}
Expand description

This is the parsed equivalent of a template file. It also does some pre-processing to ensure it does as little as possible at runtime Not meant to be used directly.

Fields§

§name: String

Name of the template, usually very similar to the path

§path: Option<String>

Original path of the file. A template doesn’t necessarily have a file associated with it though so it’s optional.

§ast: Vec<Node, Global>

Parsed AST, after whitespace removal

§from_extend: bool

Whether this template came from a call to Tera::extend, so we do not remove it when we are doing a template reload

§macros: HashMap<String, MacroDefinition, RandomState>

Macros defined in that file: name -> definition ast

§imported_macro_files: Vec<(String, String), Global>

(filename, namespace) for the macros imported in that file

§parent: Option<String>

Only used during initial parsing. Rendering will use self.parents

§blocks: HashMap<String, Block, RandomState>

Only used during initial parsing. Rendering will use self.blocks_definitions

§parents: Vec<String, Global>

The full list of parent templates

§blocks_definitions: HashMap<String, Vec<(String, Block), Global>, RandomState>

The definition of all the blocks for the current template and the definition of those blocks in parent templates if there are some. Needed for super() to work without having to find them each time. The type corresponds to the following block_name -> [(template name, definition)] The order of the Vec is from the first in hierarchy to the current template and the template name is needed in order to load its macros if necessary.

Implementations§

source§

impl Template

source

pub fn new( tpl_name: &str, tpl_path: Option<String>, input: &str ) -> Result<Template, Error>

Parse the template string given

Trait Implementations§

source§

impl Clone for Template

source§

fn clone(&self) -> Template

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 Debug for Template

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T> AsTaggedExplicit<'a> for Twhere T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self>

§

impl<'a, T> AsTaggedImplicit<'a> for Twhere T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self>

source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

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

const: unstable · 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.

§

impl<T> IntoCollection<T> for T

§

fn into_collection<A>(self) -> SmallVec<A>where A: Array<Item = T>,

Converts self into a collection.
§

fn mapped<U, F, A>(self, f: F) -> SmallVec<A>where F: FnMut(T) -> U, A: Array<Item = U>,

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more