From 35e34d1c099c827df28be5aaba3f1e9ea7cdadb7 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Mon, 11 Nov 2019 22:48:39 +0200 Subject: [PATCH] ui: add "is:" alias for "flags:" query --- ui/src/cache.rs | 49 ++++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/ui/src/cache.rs b/ui/src/cache.rs index 8ffac4c3..13d9bc0e 100644 --- a/ui/src/cache.rs +++ b/ui/src/cache.rs @@ -144,30 +144,33 @@ pub mod query_parser { fn flags<'a>() -> impl Parser<'a, Query> { move |input| { - whitespace_wrap(match_literal_anycase("flags:")) - .parse(input) - .and_then(|(rest, _)| { - map(one_or_more(pred(any_char, |c| *c != ' ')), |chars| { - chars.into_iter().collect::() + whitespace_wrap(either( + match_literal_anycase("flags:"), + match_literal_anycase("is:"), + )) + .parse(input) + .and_then(|(rest, _)| { + map(one_or_more(pred(any_char, |c| *c != ' ')), |chars| { + chars.into_iter().collect::() + }) + .parse(rest) + }) + .and_then(|(rest, flags_list)| { + if let Ok(r) = flags_list + .split(",") + .map(|t| { + either(quoted_string(), string()) + .parse_complete(t) + .map(|(_, r)| r) }) - .parse(rest) - }) - .and_then(|(rest, flags_list)| { - if let Ok(r) = flags_list - .split(",") - .map(|t| { - either(quoted_string(), string()) - .parse_complete(t) - .map(|(_, r)| r) - }) - .collect::, &str>>() - .map(|v| Flags(v)) - { - Ok((rest, r)) - } else { - Err(rest) - } - }) + .collect::, &str>>() + .map(|v| Flags(v)) + { + Ok((rest, r)) + } else { + Err(rest) + } + }) } }