use http::header::{AsHeaderName, HeaderMap};
use http::request::{Parts, Request};
pub trait GetStrHeaders {
fn get_str<N: AsHeaderName>(&self, n: N) -> Option<&str>;
}
impl GetStrHeaders for HeaderMap {
fn get_str<N: AsHeaderName>(&self, n: N) -> Option<&str> {
let hval = self.get(n)?;
match hval.to_str() {
Ok(hstr) => Some(hstr),
Err(_) => None,
}
}
}
impl<T> GetStrHeaders for Request<T> {
fn get_str<N: AsHeaderName>(&self, n: N) -> Option<&str> {
self.headers().get_str(n)
}
}
impl GetStrHeaders for Parts {
fn get_str<N: AsHeaderName>(&self, n: N) -> Option<&str> {
self.headers.get_str(n)
}
}