1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use {
crate::*,
};
#[derive(Debug, Clone, Copy)]
pub struct MethodFilter {
negative: bool,
method: Method,
}
impl MethodFilter {
pub fn from_str(mut pattern: &str) -> Self {
let negative = pattern.starts_with('!');
if negative {
pattern = &pattern[1..];
}
let method = Method::from(pattern);
Self { negative, method }
}
pub fn contains(self, candidate: Method) -> bool {
if self.negative {
self.method != candidate
} else {
self.method == candidate
}
}
}