pub struct Template<'a> { /* private fields */ }Expand description
Class to hold hidden data about template
Implementations§
source§impl<'a> Template<'a>
impl<'a> Template<'a>
Class implementation
sourcepub fn new(expanded: &'a str) -> Self
pub fn new(expanded: &'a str) -> Self
Create a new template using a string containing ${..} variables Note: will only dereference 8 nested levels of variables Simple default value;
§Example
use stemplate::Template;
Template::new("My name is ${name}");§Example
use stemplate::Template;
// Simple default value (variable not supplied in template or is empty";
Template::new("My name is ${name:-Fred}");§Example
use stemplate::Template;
// Nested variables where fullname = "${first:=Fred} ${last:=Bloggs}"
Template::new("My name is ${fullname}");sourcepub fn new_delimit(expanded: &'a str, sdlim: &'a str, edlim: &'a str) -> Self
pub fn new_delimit(expanded: &'a str, sdlim: &'a str, edlim: &'a str) -> Self
Create a new template as above but choose different delimiters
§Example
use stemplate::Template; Template::new(“My name is {%name%}”, “{%”, “%}”);
sourcepub fn render<V: AsRef<str> + Debug + ToString>(
&self,
vars: &HashMap<&str, V>
) -> String
pub fn render<V: AsRef<str> + Debug + ToString>( &self, vars: &HashMap<&str, V> ) -> String
Render a template.
§Example
use std::collections::HashMap;
use stemplate::Template;
let template = Template::new("My name is ${name}");
let mut args = HashMap::new();
args.insert("name", "Fred");
let s = template.render(&args);
assert_eq!(s, "My name is Fred");sourcepub fn render_strings(&self, vars: &HashMap<String, String>) -> String
pub fn render_strings(&self, vars: &HashMap<String, String>) -> String
Render a template with string values. Convenience for use with serde hash maps.
§Example
use std::collections::HashMap;
use stemplate::Template;
let template = Template::new("My name is ${name}");
let mut args = HashMap::new();
args.insert("name", "Fred");
let s = template.render(&args);
assert_eq!(s, "My name is Fred");§Example
// Nested variables
use std::collections::HashMap;
use stemplate::Template;
let mut args = HashMap::new();
args.insert("first", "Doris");
args.insert("fullname", "${first:=Fred} ${last:=Bloggs}");
let template = Template::new("${fullname}");
let s = template.render(&args);
assert_eq!(s, "Doris Bloggs");sourcepub fn render_env(&self) -> String
pub fn render_env(&self) -> String
Render a template from environment variables.
§Example
use stemplate::Template;
// Using Googles LLM API. GEMINI_URL contains other env variables
let url: String = Template::new_delimit("{GEMINI_URL}", "{", "}").render_env();Trait Implementations§
Auto Trait Implementations§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more