diff options
author | René Kijewski <kijewski@library.vetmed.fu-berlin.de> | 2021-07-16 16:23:31 +0200 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2021-07-30 11:45:56 +0200 |
commit | 1622df7aeecb71fca2da630330513b26cefef16b (patch) | |
tree | 01348c855200790d9eb1a9bee01897d1e74f8604 /testing/tests/matches.rs | |
parent | 9e7fe8f2f9344d171800f98b556751d981ff9b17 (diff) | |
download | askama-1622df7aeecb71fca2da630330513b26cefef16b.tar.gz askama-1622df7aeecb71fca2da630330513b26cefef16b.tar.bz2 askama-1622df7aeecb71fca2da630330513b26cefef16b.zip |
Allow omitting "with" keyword in match blocks
Askama uses the syntax `{% when Variant with (parameters) %}` in
`{% match %}` blocks. This is done because Askama does not implement the
whole pattern matching of Rust's `match` statements.
This PR wants to bring Askama a step closer Rust's matching, so the
"with" keyword should not be needed anymore.
Diffstat (limited to '')
-rw-r--r-- | testing/tests/matches.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/testing/tests/matches.rs b/testing/tests/matches.rs index d75a6c4..380a69c 100644 --- a/testing/tests/matches.rs +++ b/testing/tests/matches.rs @@ -113,3 +113,20 @@ fn test_match_no_whitespace() { let s = MatchNoWhitespace { foo: Some(1) }; assert_eq!(s.render().unwrap(), "1"); } + +#[derive(Template)] +#[template( + source = "{% match foo %}{% when Some(bar) %}{{ bar }}{% when None %}{% endmatch %}", + ext = "txt" +)] +struct MatchWithoutWithKeyword { + foo: Option<usize>, +} + +#[test] +fn test_match_without_with_keyword() { + let s = MatchWithoutWithKeyword { foo: Some(1) }; + assert_eq!(s.render().unwrap(), "1"); + let s = MatchWithoutWithKeyword { foo: None }; + assert_eq!(s.render().unwrap(), ""); +} |