3 unstable releases

Uses old Rust 2015

0.2.1 Nov 29, 2018
0.2.0 Nov 29, 2018
0.1.0 Nov 1, 2018

#370 in Template engine

Download history 1253/week @ 2024-07-21 1235/week @ 2024-07-28 1398/week @ 2024-08-04 1307/week @ 2024-08-11 1276/week @ 2024-08-18 1502/week @ 2024-08-25 1012/week @ 2024-09-01 1284/week @ 2024-09-08 1318/week @ 2024-09-15 1842/week @ 2024-09-22 1151/week @ 2024-09-29 1683/week @ 2024-10-06 1291/week @ 2024-10-13 1047/week @ 2024-10-20 782/week @ 2024-10-27 693/week @ 2024-11-03

3,910 downloads per month
Used in 10 crates (4 directly)

MIT/Apache

9KB
79 lines

string_template

Very simple string template for Rust. Can render named parameters from a HashMap or positional parameters from a slice.

Usage

Add this to your Cargo.toml:

[dependencies]
string_template = "0.2.1"

If you're on Rust 2015, and this to your crate root:

extern crate string_template;

Here's a simple example:

extern crate string_template;                                                             
                                                                                          
use string_template::Template;                                                            
use std::collections::HashMap;                                                            
                                                                                          
fn main() {                                                                               
    let template = Template::new("Hi, my name is {{name}} and I'm a {{lang}} developer.");
    let mut args = HashMap::new();                                                        
    args.insert("name", "Vader");                                                         
    args.insert("lang", "Dart");                                                          
    let s = template.render(&args);                                                       
                                                                                          
    assert_eq!(s, "Hi, my name is Vader and I'm a Dart developer.");                      
                                                                                          
    let template2 = Template::new("Hi, my name is {{}} and I'm a {{}} developer.");       
    let args2 = vec!["Vader", "Dart"];                                                    
    let s2 = template2.render_positional(&args2);                                         
                                                                                          
    assert_eq!(s2, "Hi, my name is Vader and I'm a Dart developer.");                     
}                                                                                         

Dependencies

~2–3MB
~54K SLoC