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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#[derive(Debug, PartialEq, PartialOrd, Eq, Ord, Clone)]
pub struct Header {
name: String,
value: String,
}
impl Header {
pub fn new<N, V>(name: N, value: V) -> Self
where
N: Into<String> + ?Sized,
V: Into<String> + ?Sized,
{
Self {
name: name.into(),
value: value.into(),
}
}
#[must_use]
pub fn is_allowed_for_response(&self) -> bool {
!matches!(
self.name.as_str(),
"connection"
| "host"
| "keep-alive"
| "proxy-connection"
| "te"
| "transfer-encoding"
| "upgrade"
)
}
#[must_use]
pub fn name(&self) -> &str {
&self.name
}
#[must_use]
pub fn value(&self) -> &str {
&self.value
}
}
|