Skip to main content

Crate just_template

Crate just_template 

Source
Expand description

Template struct for storing template strings and their parameters.

The template supports two types of parameters:

  • Simple parameters: key-value pairs used to replace simple placeholders (<<<key>>> format) in the template.
  • Implementation parameters: for implementation blocks (>>>>>>>>> block_name and @@@ >>> block_name format), can contain multiple parameter sets, each corresponding to an implementation instance.

§Examples

use just_template::Template;

let mut tmpl = Template::from("Hello, <<<name>>>!".to_string());
tmpl.insert_param("name".to_string(), "World".to_string());
assert_eq!(tmpl.to_string(), "Hello, World!");

Using the tmpl_param! macro makes it easier to add simple parameters:

use just_template::{Template, tmpl_param};

let mut tmpl = Template::from("<<<a>>> + <<<b>>> = <<<c>>>".to_string());
tmpl_param!(tmpl, a = 1, b = 2, c = 3);
assert_eq!(tmpl.to_string(), "1 + 2 = 3");

Using the tmpl! macro adds implementation block parameters:

use just_template::{Template, tmpl};

let mut tmpl = Template::from("
>>>>>>>>>> arms
@@@ >>> arms
    <<<crate_name>>> => Some(<<<crate_name>>>::exec(data, params).await),
@@@ <<<
".trim().to_string());
tmpl!(tmpl += {
    arms {
        (crate_name = "my"),
        (crate_name = "you")
    }
});
// Output the expanded template
let expanded = tmpl.to_string();
assert_eq!(expanded, "
    my => Some(my::exec(data, params).await),
    you => Some(you::exec(data, params).await),
".trim().to_string());

Modules§

expand
test

Macros§

tmpl
tmpl_param

Structs§

Template