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
use super::authorization::{Authorization, Credentials};
#[derive(Clone, PartialEq, Debug)]
pub struct ProxyAuthorization<C: Credentials>(pub C);
impl<C: Credentials> ::Header for ProxyAuthorization<C> {
const NAME: &'static ::HeaderName = &::http::header::PROXY_AUTHORIZATION;
fn decode<'i, I: Iterator<Item = &'i ::HeaderValue>>(values: &mut I) -> Result<Self, ::Error> {
Authorization::decode(values)
.map(|auth| ProxyAuthorization(auth.0))
}
fn encode<E: Extend<::HeaderValue>>(&self, values: &mut E) {
let value = self.0.encode();
debug_assert!(
value.as_bytes().starts_with(C::SCHEME.as_bytes()),
"Credentials::encode should include its scheme: scheme = {:?}, encoded = {:?}",
C::SCHEME,
value,
);
values.extend(::std::iter::once(value));
}
}