mirror of
https://github.com/askama-rs/askama.git
synced 2025-10-01 15:00:57 +00:00
Move visit_match_params into its own method
This commit is contained in:
parent
c1fa2d6146
commit
c3e8b2cc72
@ -564,44 +564,7 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
|
||||
None => buf.write("_"),
|
||||
};
|
||||
|
||||
match params {
|
||||
MatchParameters::Simple(params) => {
|
||||
if !params.is_empty() {
|
||||
buf.write("(");
|
||||
for (i, param) in params.iter().enumerate() {
|
||||
if let MatchParameter::Name(p) = *param {
|
||||
self.locals.insert_with_default(p);
|
||||
}
|
||||
if i > 0 {
|
||||
buf.write(", ");
|
||||
}
|
||||
self.visit_match_param(buf, param);
|
||||
}
|
||||
buf.write(")");
|
||||
}
|
||||
}
|
||||
MatchParameters::Named(params) => {
|
||||
buf.write("{");
|
||||
for (i, param) in params.iter().enumerate() {
|
||||
if let Some(MatchParameter::Name(p)) = param.1 {
|
||||
let p = normalize_identifier(p);
|
||||
self.locals.insert_with_default(p);
|
||||
} else {
|
||||
self.locals.insert_with_default(param.0);
|
||||
}
|
||||
|
||||
if i > 0 {
|
||||
buf.write(", ");
|
||||
}
|
||||
buf.write(param.0);
|
||||
if let Some(param) = ¶m.1 {
|
||||
buf.write(":");
|
||||
self.visit_match_param(buf, param);
|
||||
}
|
||||
}
|
||||
buf.write("}");
|
||||
}
|
||||
}
|
||||
self.visit_match_params(buf, params);
|
||||
buf.writeln(" => {")?;
|
||||
|
||||
arm_size = self.handle(ctx, body, buf, AstLevel::Nested)?;
|
||||
@ -1155,6 +1118,47 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
|
||||
wrapped
|
||||
}
|
||||
|
||||
fn visit_match_params(&mut self, buf: &mut Buffer, params: &MatchParameters<'a>) {
|
||||
match params {
|
||||
MatchParameters::Simple(params) => {
|
||||
if !params.is_empty() {
|
||||
buf.write("(");
|
||||
for (i, param) in params.iter().enumerate() {
|
||||
if let MatchParameter::Name(p) = *param {
|
||||
self.locals.insert_with_default(p);
|
||||
}
|
||||
if i > 0 {
|
||||
buf.write(", ");
|
||||
}
|
||||
self.visit_match_param(buf, param);
|
||||
}
|
||||
buf.write(")");
|
||||
}
|
||||
}
|
||||
MatchParameters::Named(params) => {
|
||||
buf.write("{");
|
||||
for (i, param) in params.iter().enumerate() {
|
||||
if let Some(MatchParameter::Name(p)) = param.1 {
|
||||
let p = normalize_identifier(p);
|
||||
self.locals.insert_with_default(p);
|
||||
} else {
|
||||
self.locals.insert_with_default(param.0);
|
||||
}
|
||||
|
||||
if i > 0 {
|
||||
buf.write(", ");
|
||||
}
|
||||
buf.write(param.0);
|
||||
if let Some(param) = ¶m.1 {
|
||||
buf.write(":");
|
||||
self.visit_match_param(buf, param);
|
||||
}
|
||||
}
|
||||
buf.write("}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn visit_filter(
|
||||
&mut self,
|
||||
buf: &mut Buffer,
|
||||
|
Loading…
x
Reference in New Issue
Block a user