]>
Commit | Line | Data |
---|---|---|
9fa01778 | 1 | use context::Context; |
83c7162d | 2 | use helpers::{HelperDef, HelperResult}; |
9fa01778 | 3 | use output::Output; |
8bb4bdeb | 4 | use registry::Registry; |
83c7162d | 5 | use render::{Helper, RenderContext, Renderable}; |
8bb4bdeb XL |
6 | |
7 | #[derive(Clone, Copy)] | |
8 | pub struct RawHelper; | |
9 | ||
10 | impl HelperDef for RawHelper { | |
9fa01778 XL |
11 | fn call<'reg: 'rc, 'rc>( |
12 | &self, | |
13 | h: &Helper<'reg, 'rc>, | |
14 | r: &'reg Registry, | |
15 | ctx: &Context, | |
16 | rc: &mut RenderContext<'reg>, | |
17 | out: &mut Output, | |
18 | ) -> HelperResult { | |
8bb4bdeb XL |
19 | let tpl = h.template(); |
20 | if let Some(t) = tpl { | |
9fa01778 | 21 | t.render(r, ctx, rc, out) |
8bb4bdeb XL |
22 | } else { |
23 | Ok(()) | |
24 | } | |
25 | } | |
26 | } | |
27 | ||
28 | pub static RAW_HELPER: RawHelper = RawHelper; | |
29 | ||
30 | #[cfg(test)] | |
31 | mod test { | |
32 | use registry::Registry; | |
33 | ||
34 | #[test] | |
35 | fn test_raw_helper() { | |
36 | let mut handlebars = Registry::new(); | |
ea8adc8c XL |
37 | assert!( |
38 | handlebars | |
39 | .register_template_string("t0", "a{{{{raw}}}}{{content}}{{else}}hello{{{{/raw}}}}") | |
40 | .is_ok() | |
41 | ); | |
8bb4bdeb XL |
42 | |
43 | let r = handlebars.render("t0", &()); | |
44 | assert_eq!(r.ok().unwrap(), "a{{content}}{{else}}hello"); | |
45 | } | |
46 | } |