Struct tera::Context [−][src]
pub struct Context<S: ContextSafety> { /* fields omitted */ }
Expand description
The struct that holds the context of a template rendering.
Light wrapper around a BTreeMap
for easier insertions of Serializable
values
ContextSafety
will be defined at creation time as either CtxThreadSafe
or CtxThreadLocal
,
deciding what values Context
-local functions may capture.
Implementations
Initializes an empty context that is Send
and Sync
and can have functions
capturing only Send
and Sync
values.
Takes a serde-json Value
and convert it into a Context
with no overhead/cloning.
Takes something that impl Serialize and create a context with it. Meant to be used if you have a hashmap or a struct and don’t want to insert values one by one in the context.
Registers Context-local function
Initializes an empty context that is neither Send
nor Sync
but can have functions
capturing non-Send
and non-Sync
values.
pub fn register_function<T: FunctionRelaxed + 'static, S: Into<String>>(
&mut self,
key: S,
val: T
)
pub fn register_function<T: FunctionRelaxed + 'static, S: Into<String>>(
&mut self,
key: S,
val: T
)
Registers Context-local function
Converts the val
parameter to Value
and insert it into the context.
Panics if the serialization fails.
let mut context = tera::Context::new();
context.insert("number_users", &42);
pub fn try_insert<T: Serialize + ?Sized, S1: Into<String>>(
&mut self,
key: S1,
val: &T
) -> TeraResult<()>
pub fn try_insert<T: Serialize + ?Sized, S1: Into<String>>(
&mut self,
key: S1,
val: &T
) -> TeraResult<()>
Converts the val
parameter to Value
and insert it into the context.
Returns an error if the serialization fails.
let mut context = Context::new();
// user is an instance of a struct implementing `Serialize`
if let Err(_) = context.try_insert("number_users", &user) {
// Serialization failed
}
Appends the data of the source
parameter to self
, overwriting existing keys.
The source context will be dropped.
let mut target = Context::new();
target.insert("a", &1);
target.insert("b", &2);
let mut source = Context::new();
source.insert("b", &3);
source.insert("d", &4);
target.extend(source);
Converts the context to a serde_json::Value
consuming the context.
Remove a key from the context, returning the value at the key if the key was previously inserted into the context.
Checks if a value exists at a specific index.
Looks up Context-local registered function
Trait Implementations
Auto Trait Implementations
impl<S> RefUnwindSafe for Context<S> where
S: RefUnwindSafe,
impl<S> UnwindSafe for Context<S> where
S: RefUnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more