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
#![warn(
missing_debug_implementations,
missing_docs,
rust_2018_idioms,
unreachable_pub
)]
pub mod schemes;
use http::header::{HeaderMap, HeaderValue, AUTHORIZATION};
pub fn extract_pop_header(value: &HeaderValue) -> Option<&str> {
if let Ok(header_str) = value.to_str() {
if &header_str[..4] == "POP " {
Some(&header_str[4..])
} else {
None
}
} else {
None
}
}
pub fn extract_pop(headers: &HeaderMap) -> Option<&str> {
headers
.get_all(AUTHORIZATION)
.iter()
.find_map(extract_pop_header)
}