5 unstable releases
0.2.1 | Nov 29, 2022 |
---|---|
0.2.0 | Apr 2, 2020 |
0.1.1 | Jun 4, 2019 |
0.1.0 | May 28, 2019 |
0.0.1 | May 14, 2019 |
#190 in Template engine
3,935 downloads per month
Used in 11 crates
8KB
106 lines
Variables substitution in string templates.
This library provide helper functions for string manipulation, taking values from a context environment map and substituting all matching placeholders.
Its name and logic is similar to the envsubst
GNU utility, but
this only supports braces-delimited variables (i.e. ${foo}
) and
takes replacement values from an explicit map of variables.
Example
let base_url = "${protocol}://${hostname}/${endpoint}";
assert!(envsubst::is_templated(base_url));
let mut context = std::collections::HashMap::new();
context.insert("protocol".to_string(), "https".to_string());
context.insert("hostname".to_string(), "example.com".to_string());
context.insert("endpoint".to_string(), "login".to_string());
assert!(envsubst::validate_vars(&context).is_ok());
let final_url = envsubst::substitute(base_url, &context).unwrap();
assert!(!envsubst::is_templated(&final_url));
assert_eq!(final_url, "https://example.com/login");
envsubst
A simple Rust library for variables substitution.
This library provide helper functions for string manipulation, taking values from a context environment map and substituting all matching placeholders.
Its name and logic is similar to the envsubst
GNU utility, but
this only supports braces-delimited variables (i.e. ${foo}
) and
takes replacement values from an explicit map of variables.
License
Licensed under either of
- MIT license - http://opensource.org/licenses/MIT
- Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
at your option.
Dependencies
~210–650KB
~15K SLoC