varj

Crates.iovarj
lib.rsvarj
version1.2.0
sourcesrc
created_at2020-03-24 13:59:15.261224
updated_at2024-07-14 08:35:56.314283
descriptionUltra-lightweight string templating library. No Dependencies
homepage
repositoryhttps://github.com/sonro/varj
max_upload_size
id222298
size39,414
Christopher Morton (sonro)

documentation

README

varj

Crates.io msrv
1.71.1 tests Documentation license

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 }} with value
  • Whitespace surrounding the key is ignored: {{key}} and {{ key }} are equal.

Interact with this utility via VarjMap.

Examples

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.

MSRV Policy

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.

Contributing

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.

License

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.

Commit count: 32

cargo fmt