diff --git a/src/modules/parse.rs b/src/modules/parse.rs index b668b52f33fc11a648591f3122ea1dfcaf9e316a..c7a91231a5b658a8db1f78c96844d29915155f89 100644 --- a/src/modules/parse.rs +++ b/src/modules/parse.rs @@ -17,3 +17,27 @@ pub mod json { } } } + +pub mod array { + pub fn join(array: &mut rhai::Array) -> String { array.iter().map(|x| x.to_string()).collect::>().join("") } + + pub fn join_separator(array: &mut rhai::Array, separator: &str) -> String { array.iter().map(|x| x.to_string()).collect::>().join(separator) } + + pub fn pad(arr: &mut rhai::Array, count: i64, value: rhai::Dynamic) -> rhai::Array { + let mut new_arr = arr.clone(); + for _ in 0..count { + new_arr.push(value.clone()); + } + new_arr + } +} + +pub mod string { + pub fn repeat(s: &str, count: i64) -> String { + let mut result = String::with_capacity((s.len() as i64 * count) as usize); + for _ in 0..count { + result.push_str(s); + } + result + } +}