Take reference of unescaped expressions directly (fixes #132)

This commit is contained in:
Dirkjan Ochtman 2018-10-19 20:20:59 +02:00
parent 5ffe3de311
commit 4fa029f26f

View File

@ -586,14 +586,13 @@ impl<'a> Generator<'a> {
use self::DisplayWrap::*; use self::DisplayWrap::*;
use super::input::EscapeMode::*; use super::input::EscapeMode::*;
buf.writeln("write!(writer, \"{}\", &{"); buf.writeln("write!(writer, \"{}\", &");
buf.write(&match (wrapped, &self.input.escaping) { buf.write(&match (wrapped, &self.input.escaping) {
(Wrapped, &Html) | (Wrapped, &None) | (Unwrapped, &None) => expr_buf.buf, (Wrapped, &Html) | (Wrapped, &None) | (Unwrapped, &None) => expr_buf.buf,
(Unwrapped, &Html) => format!("::askama::MarkupDisplay::from(&{})", expr_buf.buf), (Unwrapped, &Html) => format!("::askama::MarkupDisplay::from(&{})", expr_buf.buf),
}); });
buf.writeln(""); buf.writeln("");
buf.dedent(); buf.writeln(")?;");
buf.writeln("})?;");
} }
fn write_lit(&mut self, buf: &mut Buffer, lws: &'a str, val: &str, rws: &'a str) { fn write_lit(&mut self, buf: &mut Buffer, lws: &'a str, val: &str, rws: &'a str) {