Text Placeholder

A flexible text template engine that allows templates with named placeholders within it.

rust let template = Template::new("Hello {{first}} {{second}}!");

Placeholders are defined by default following the handlebars syntax, but can be overriden with specific boundaries.

rust let template = Template::new_with_placeholder("Hello $[first]] $[second]!", "$[", "]");

In order to provide the context in which our placeholders will be replaced the following options are available:

HashMap

The following methods are available with a HashMap:

Example

```rust use text_placeholder::Template; use std::collections::HashMap;

let default_template = Template::new("Hello {{first}} {{second}}!");

let mut table = HashMap::new(); table.insert("first", "text"); table.insert("second", "placeholder");

asserteq!(defaulttemplate.fillwithhashmap(&table), "Hello text placeholder!");

// We can also specify our own boundaries:

let customtemplate = Template::newwith_placeholder("Hello $[first]] $[second]!", "$[", "]");

asserteq!(defaulttemplate.fillwithhashmap(&table), "Hello text placeholder!"); ```

Struct

Allow structs that implement the serde::Serialize trait to be used as context.

This is an optional feature that depends on serde. In order to enable it add the following to your Cargo.toml file:

toml [dependencies] text_placeholder = { version = "0.3", features = ["struct_context"] }

The methods available are:

Example

```rust use text_placeholder::Template;

[derive(Serialize)]

struct Context { first: String, second: String }

let defaulttemplate = Template::new("Hello {{first}} {{second}}!"); let context = Context { first: "text".tostring(), second: "placeholder".to_string() };

asserteq!(defaulttemplate.fillwithstruct(&context), "Hello text placeholder!");

// We can also specify our own boundaries:

let customtemplate = Template::newwith_placeholder("Hello $[first]] $[second]!", "$[", "]");

asserteq!(defaulttemplate.fillwithstruct(&context), "Hello text placeholder!"); ```