mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-08-21 19:04:05 +02:00
31 lines
1.1 KiB
Rust
31 lines
1.1 KiB
Rust
//! Rendering a template against an environment chain.
|
|
//!
|
|
//! The variables come from the chain, the functions come from the host's
|
|
//! template callback. Neither of these knows which host it is running under —
|
|
//! that is the whole point of taking the callback as a parameter.
|
|
|
|
use serde_json::Value;
|
|
use yaak_models::models::Environment;
|
|
use yaak_models::render::make_vars_hashmap;
|
|
use yaak_templates::{RenderOptions, TemplateCallback, parse_and_render, render_json_value_raw};
|
|
|
|
pub async fn render_template<T: TemplateCallback>(
|
|
template: &str,
|
|
environment_chain: Vec<Environment>,
|
|
cb: &T,
|
|
opt: &RenderOptions,
|
|
) -> yaak_templates::error::Result<String> {
|
|
let vars = &make_vars_hashmap(environment_chain);
|
|
parse_and_render(template, vars, cb, opt).await
|
|
}
|
|
|
|
pub async fn render_json_value<T: TemplateCallback>(
|
|
value: Value,
|
|
environment_chain: Vec<Environment>,
|
|
cb: &T,
|
|
opt: &RenderOptions,
|
|
) -> yaak_templates::error::Result<Value> {
|
|
let vars = &make_vars_hashmap(environment_chain);
|
|
render_json_value_raw(value, vars, cb, opt).await
|
|
}
|