diff options
Diffstat (limited to 'vendor/handlebars/tests/data_helper.rs')
-rw-r--r-- | vendor/handlebars/tests/data_helper.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/handlebars/tests/data_helper.rs b/vendor/handlebars/tests/data_helper.rs new file mode 100644 index 000000000..7734b0d7a --- /dev/null +++ b/vendor/handlebars/tests/data_helper.rs @@ -0,0 +1,29 @@ +use handlebars::*; +use serde_json::json; + +struct HelperWithBorrowedData<'a>(&'a String); + +impl<'a> HelperDef for HelperWithBorrowedData<'a> { + fn call<'_reg: '_rc, '_rc>( + &self, + _: &Helper<'_reg, '_rc>, + _: &'_reg Handlebars, + _: &Context, + _: &mut RenderContext, + out: &mut dyn Output, + ) -> Result<(), RenderError> { + out.write(self.0).map_err(RenderError::from) + } +} + +#[test] +fn test_helper_with_ref_data() { + let s = "hello helper".to_owned(); + let the_helper = HelperWithBorrowedData(&s); + + let mut r = Handlebars::new(); + r.register_helper("hello", Box::new(the_helper)); + + let s = r.render_template("Output: {{hello}}", &json!({})).unwrap(); + assert_eq!(s, "Output: hello helper".to_owned()); +} |