diff options
Diffstat (limited to 'askama_shared/src')
| -rw-r--r-- | askama_shared/src/filters/mod.rs | 17 | ||||
| -rw-r--r-- | askama_shared/src/generator.rs | 15 | 
2 files changed, 19 insertions, 13 deletions
| diff --git a/askama_shared/src/filters/mod.rs b/askama_shared/src/filters/mod.rs index 75014fa..1f5fa42 100644 --- a/askama_shared/src/filters/mod.rs +++ b/askama_shared/src/filters/mod.rs @@ -16,6 +16,23 @@ use std::fmt;  use super::Result; +// This is used by the code generator to decide whether a named filter is part of +// Askama or should refer to a local `filters` module. It should contain all the +// filters shipped with Askama, even the optional ones (since optional inclusion +// in the const vector based on features seems impossible right now). +pub const BUILT_IN_FILTERS: [&str; 9] = [ +    "e", +    "escape", +    "format", +    "lower", +    "lowercase", +    "trim", +    "upper", +    "uppercase", +    "json", // Optional feature; reserve the name anyway +]; + +  fn escapable(b: &u8) -> bool {      *b == b'<' || *b == b'>' || *b == b'&'  } diff --git a/askama_shared/src/generator.rs b/askama_shared/src/generator.rs index 4d101a1..5c4b7f8 100644 --- a/askama_shared/src/generator.rs +++ b/askama_shared/src/generator.rs @@ -1,3 +1,4 @@ +use filters;  use parser::{self, Cond, Expr, Node, Target, WS};  use path; @@ -262,7 +263,7 @@ impl<'a> Generator<'a> {              return;          } -        if BUILT_IN_FILTERS.contains(&name) { +        if filters::BUILT_IN_FILTERS.contains(&name) {              self.write(&format!("::askama::filters::{}(&", name));          } else {              self.write(&format!("filters::{}(&", name)); @@ -729,15 +730,3 @@ impl<'a, T: 'a> SetChain<'a, T> where T: cmp::Eq + hash::Hash {  }  type MacroMap<'a> = HashMap<&'a str, (WS, &'a str, Vec<&'a str>, Vec<Node<'a>>, WS)>; - -const BUILT_IN_FILTERS: [&str; 9] = [ -    "e", -    "escape", -    "format", -    "lower", -    "lowercase", -    "trim", -    "upper", -    "uppercase", -    "json", // Optional feature; reserve the name anyway -]; | 
