hcl-rs 0.19.7

HCL parser and formatter for rust with serde support
Documentation
use hcl::expr::{TemplateExpr, Variable};
use hcl::template::{IfDirective, Strip, Template};
use pretty_assertions::assert_eq;

#[test]
fn from_expr() {
    let expr = TemplateExpr::from("bar ${baz} %{~ if cond}qux%{ endif ~}");

    let expected = Template::new()
        .add_literal("bar ")
        .add_interpolation(Variable::unchecked("baz"))
        .add_literal(" ")
        .add_directive(
            IfDirective::new(
                Variable::unchecked("cond"),
                Template::new().add_literal("qux"),
            )
            .with_if_strip(Strip::Start)
            .with_endif_strip(Strip::End),
        );

    assert_eq!(Template::from_expr(&expr).unwrap(), expected);
}