pub struct Context { /* private fields */ }
Expand description
The struct that holds the context of a template rendering.
Light wrapper around a BTreeMap
for easier insertions of Serializable
values
Implementations§
source§impl Context
impl Context
sourcepub fn insert<T: Serialize + ?Sized, S: Into<String>>(&mut self, key: S, val: &T)
pub fn insert<T: Serialize + ?Sized, S: Into<String>>(&mut self, key: S, val: &T)
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);
sourcepub fn try_insert<T: Serialize + ?Sized, S: Into<String>>(
&mut self,
key: S,
val: &T
) -> TeraResult<()>
pub fn try_insert<T: Serialize + ?Sized, S: Into<String>>( &mut self, key: S, 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
}
sourcepub fn extend(&mut self, source: Context)
pub fn extend(&mut self, source: Context)
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);
sourcepub fn into_json(self) -> Value
pub fn into_json(self) -> Value
Converts the context to a serde_json::Value
consuming the context.
sourcepub fn from_value(obj: Value) -> TeraResult<Self>
pub fn from_value(obj: Value) -> TeraResult<Self>
Takes a serde-json Value
and convert it into a Context
with no overhead/cloning.
sourcepub fn from_serialize(value: impl Serialize) -> TeraResult<Self>
pub fn from_serialize(value: impl Serialize) -> TeraResult<Self>
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.
sourcepub fn remove(&mut self, index: &str) -> Option<Value>
pub fn remove(&mut self, index: &str) -> Option<Value>
Remove a key from the context, returning the value at the key if the key was previously inserted into the context.
sourcepub fn contains_key(&self, index: &str) -> bool
pub fn contains_key(&self, index: &str) -> bool
Checks if a value exists at a specific index.