handlebars_misc_helpers/
uuid_helpers.rs1use handlebars::{Context, Handlebars, Helper, HelperResult, Output, RenderContext};
2use uuid::Uuid;
3
4fn uuid_new_v4_fct(
5 _: &Helper,
6 _: &Handlebars,
7 _: &Context,
8 _: &mut RenderContext,
9 out: &mut dyn Output,
10) -> HelperResult {
11 out.write(Uuid::new_v4().to_string().as_str())?;
12 Ok(())
13}
14
15fn uuid_new_v7_fct(
16 _: &Helper,
17 _: &Handlebars,
18 _: &Context,
19 _: &mut RenderContext,
20 out: &mut dyn Output,
21) -> HelperResult {
22 out.write(Uuid::new_v4().to_string().as_str())?;
23 Ok(())
24}
25
26pub fn register(handlebars: &mut Handlebars) {
27 handlebars.register_helper("uuid_new_v4", Box::new(uuid_new_v4_fct));
28 handlebars.register_helper("uuid_new_v7", Box::new(uuid_new_v7_fct));
29}
30
31#[cfg(test)]
32mod tests {
33 use crate::assert_renders;
34 use std::error::Error;
35
36 #[test]
37 fn test_regex_captures() -> Result<(), Box<dyn Error>> {
38 assert_renders![
39 (r##"{{ len (uuid_new_v4) }}"##, r##"36"##),
41 (r##"{{ len( uuid_new_v7 )}}"##, r##"36"##),
43 ]
44 }
45}