use std::fmt::Debug;
use http::{HeaderMap, HeaderName, HeaderValue};
#[derive(Default, Debug, Clone)]
pub struct DefaultHeaders(HeaderMap);
impl DefaultHeaders {
pub fn new() -> Self {
Default::default()
}
pub fn add<K, V>(mut self, key: K, value: V) -> Self
where
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<http::Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<http::Error>,
{
let name = <HeaderName as TryFrom<K>>::try_from(key)
.map_err(Into::into)
.expect("invalid header name");
let value = <HeaderValue as TryFrom<V>>::try_from(value)
.map_err(Into::into)
.expect("invalid header value");
self.0.insert(name, value);
self
}
pub fn into_inner(self) -> HeaderMap {
self.0
}
}