This commit is contained in:
despiegk 2025-04-05 11:05:07 +02:00
parent fe7a676cac
commit 749c60e131

View File

@ -2,13 +2,12 @@
//! //!
//! This module provides Rhai wrappers for the functions in the Text module. //! This module provides Rhai wrappers for the functions in the Text module.
use rhai::{Engine, EvalAltResult, Array, Dynamic, Map, Position}; use rhai::{Engine, EvalAltResult, Array, Map, Position};
use std::collections::HashMap; use std::collections::HashMap;
use std::path::Path;
use crate::text::{ use crate::text::{
TextReplacer, TextReplacerBuilder, TextReplacer, TextReplacerBuilder,
TemplateBuilder, TemplateBuilder,
dedent, prefix,
name_fix, path_fix
}; };
/// Register Text module functions with the Rhai engine /// Register Text module functions with the Rhai engine
@ -52,11 +51,11 @@ pub fn register_text_module(engine: &mut Engine) -> Result<(), Box<EvalAltResult
engine.register_fn("render", template_render); engine.register_fn("render", template_render);
engine.register_fn("render_to_file", template_render_to_file); engine.register_fn("render_to_file", template_render_to_file);
// Register Fix functions // Register Fix functions directly from text module
engine.register_fn("name_fix", crate::text::name_fix); engine.register_fn("name_fix", crate::text::name_fix);
engine.register_fn("path_fix", crate::text::path_fix); engine.register_fn("path_fix", crate::text::path_fix);
// Register Dedent functions // Register Dedent functions directly from text module
engine.register_fn("dedent", crate::text::dedent); engine.register_fn("dedent", crate::text::dedent);
engine.register_fn("prefix", crate::text::prefix); engine.register_fn("prefix", crate::text::prefix);
@ -74,10 +73,6 @@ fn register_text_types(engine: &mut Engine) -> Result<(), Box<EvalAltResult>> {
// Register TemplateBuilder type // Register TemplateBuilder type
engine.register_type_with_name::<TemplateBuilder>("TemplateBuilder"); engine.register_type_with_name::<TemplateBuilder>("TemplateBuilder");
// Register getters for TextReplacer properties (if any)
// Register getters for TemplateBuilder properties (if any)
Ok(()) Ok(())
} }
@ -194,9 +189,9 @@ pub fn template_add_var_bool(builder: TemplateBuilder, name: &str, value: bool)
} }
/// Adds an array variable to the template context /// Adds an array variable to the template context
pub fn template_add_var_array(builder: TemplateBuilder, name: &str, value: Array) -> TemplateBuilder { pub fn template_add_var_array(builder: TemplateBuilder, name: &str, array: Array) -> TemplateBuilder {
// Convert Rhai Array to Vec<String> // Convert Rhai Array to Vec<String>
let vec: Vec<String> = value.iter() let vec: Vec<String> = array.iter()
.filter_map(|v| v.clone().into_string().ok()) .filter_map(|v| v.clone().into_string().ok())
.collect(); .collect();