A string interpolation utility to replace Mustache like placeholders with stored variables.
- Works as an extremely lightweight template library
- Does not require template compilation
- Simply replaces
{{ key }}
withvalue
- Whitespace surrounding the key is ignored:
{{key}}
and{{ key }}
are equal.
Interact with this utility via
VarjMap
.
Basic usage:
let mut map = varj::VarjMap::new();
map.insert("key", "value");
let expected = "value";
let actual = map.render("{{ key }}")?;
assert_eq!(expected, actual);
With a json string:
let mut variables = varj::VarjMap::new();
variables.insert("name", "Christopher");
variables.insert("age", "30");
let json = r#"{
"name" = "{{ name }}",
"age" = {{ age }}
}"#;
let expected = r#"{
"name" = "Christopher",
"age" = 30
}"#;
let actual = variables.render(json)?;
assert_eq!(expected, actual);
VarjMap
implements From<HashMap>
and can be converted back to one when
needed. This is useful if you want to build a VarjMap
from an iterator,
or iterate over one. See example.
The minimum supported Rust version is currently 1.71.1.
varj supports the latest 8 stable releases of Rust - approximately 1 year. Increasing MSRV is not considered a semver-breaking change.
Thank you very much for considering to contribute to this project!
We welcome any form of contribution:
- New issues (feature requests, bug reports, questions, ideas, ...)
- Pull requests (documentation improvements, code improvements, new features, ...)
Note: Before you take the time to open a pull request, please open an issue first.
See CONTRIBUTING.md for details.
varj is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.