#template #template-string #replace #key #string-key #display

markings

a very simple string (template) replacement crate

10 unstable releases (3 breaking)

0.4.0 Apr 12, 2020
0.3.4 Apr 6, 2020
0.3.3 Feb 20, 2020
0.3.2 Dec 18, 2019
0.1.1 Mar 21, 2019

#292 in Template engine

0BSD license

21KB
348 lines

markings

Cargo Docs.rs Github Actions

A simple string-based template 'language'

This simply allows you to replace ${key} in a string with a 'Val' that impls. std::fmt::Display

Simple usage

use markings::{Args, Template, Opts};
// template strings are simply just ${key} markers in a string
// they are replaced with a cooresponding value when .apply() is used
let input = "hello ${name}, an answer: ${greeting}.";

// parse a template with the default options
// templates are clonable, they are 'consumed' on application.
let template = Template::parse(&input, Opts::default()).unwrap();

// construct some replacement args, this is reusable
let args = Args::new()
     // with constructs a key:val pair,
     // key must be a &str,
     // value is anything that implements std::fmt::Display
    .with("name", &"test-user")
    .with("greeting", &false);    

// apply the pre-computed args to the template, consuming the template
let output = template.apply(&args).unwrap();
assert_eq!(output, "hello test-user, an answer: false.");

License: 0BSD

No runtime deps