use squiche::h3::{Header, NameValue};
pub(crate) fn headers_to_map(list: &[Header]) -> http::HeaderMap {
let mut map = http::HeaderMap::new();
for header in list {
let name = header.name();
if name.starts_with(b":") {
continue;
}
if let (Ok(name), Ok(value)) = (
http::HeaderName::from_bytes(name),
http::HeaderValue::from_bytes(header.value()),
) {
map.append(name, value);
}
}
map
}
pub(crate) fn header_map_to_h3(map: &http::HeaderMap) -> Vec<Header> {
map.iter()
.filter(|(name, _)| !name.as_str().starts_with(':'))
.map(|(name, value)| Header::new(name.as_str().as_bytes(), value.as_bytes()))
.collect()
}