use super::Headers;
use reqwest::header::HeaderMap;
use std::collections::HashMap;
impl<'a> Headers<'a> {
pub fn new() -> Self {
Headers {
headers: HashMap::new(),
}
}
pub fn insert(&mut self, header: &'a str) {
if let Some((key, value)) = header.split_once(':') {
self.headers.insert(key.trim(), value.trim());
} else {
panic!("Header must be in the format 'key: value'");
}
}
pub fn insert_many(&mut self, headers: Vec<&'a str>) {
for header in headers {
self.insert(header);
}
}
fn to_header_map(&self) -> HeaderMap {
let mut header_map = HeaderMap::new();
for (key, value) in &self.headers {
header_map.insert(
reqwest::header::HeaderName::from_bytes(key.as_bytes()).unwrap(),
value.parse().unwrap(),
);
}
header_map
}
}
impl Into<HeaderMap> for Headers<'_> {
fn into(self) -> HeaderMap {
self.to_header_map()
}
}