Struct rocket_dyn_templates::tera::Template [−][src]
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
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Template
impl UnwindSafe for Template
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
pub fn vzip(self) -> V