|
|
@@ -439,10 +439,26 @@ impl Config {
|
|
439
|
439
|
QueryArgs::ValuePattern(pattern.to_string())
|
|
440
|
440
|
),
|
|
441
|
441
|
(&None, Some(keyval), None) => Some(
|
|
442
|
|
- QueryArgs::KeyValue(keyval.0.to_string(), keyval.1.to_string())
|
|
|
442
|
+ if self.keyval.len() == 1 {
|
|
|
443
|
+ QueryArgs::KeyValue(keyval.0.to_string(), keyval.1.to_string())
|
|
|
444
|
+ } else {
|
|
|
445
|
+ QueryArgs::Intersection(
|
|
|
446
|
+ self.keyval.iter()
|
|
|
447
|
+ .map(|(k, v)| QueryArgs::KeyValue(k.to_string(), v.to_string()))
|
|
|
448
|
+ .collect()
|
|
|
449
|
+ )
|
|
|
450
|
+ }
|
|
443
|
451
|
),
|
|
444
|
452
|
(&None, None, Some(keyvalregex)) => Some(
|
|
445
|
|
- QueryArgs::KeyValueRegex(keyvalregex.0.to_string(), keyvalregex.1.to_string())
|
|
|
453
|
+ if self.keyvalregex.len() == 1 {
|
|
|
454
|
+ QueryArgs::KeyValueRegex(keyvalregex.0.to_string(), keyvalregex.1.to_string())
|
|
|
455
|
+ } else {
|
|
|
456
|
+ QueryArgs::Intersection(
|
|
|
457
|
+ self.keyvalregex.iter()
|
|
|
458
|
+ .map(|(k, v)| QueryArgs::KeyValueRegex(k.to_string(), v.to_string()))
|
|
|
459
|
+ .collect()
|
|
|
460
|
+ )
|
|
|
461
|
+ }
|
|
446
|
462
|
),
|
|
447
|
463
|
(pattern_opt, _, _) => {
|
|
448
|
464
|
let mut vec = vec![];
|