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

#281 in Template engine

41 downloads per month

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