tinyhttp_internal/
headers.rs

1use std::collections::HashMap;
2
3use unicase::Ascii;
4
5#[derive(Default, Debug, Clone)]
6pub struct HeaderMap {
7    inner: HashMap<Ascii<String>, Ascii<String>>,
8}
9
10impl HeaderMap {
11    pub fn new() -> Self {
12        Self {
13            inner: HashMap::new(),
14        }
15    }
16
17    pub fn get(&self, key: impl ToString) -> Option<&str> {
18        self.inner
19            .get(&Ascii::new(key.to_string()))
20            .map(|u| u.as_str())
21    }
22
23    pub fn set(&mut self, key: impl ToString, val: impl ToString) {
24        let _ = self
25            .inner
26            .insert(Ascii::new(key.to_string()), Ascii::new(val.to_string()));
27    }
28
29    pub fn contains(&self, key: impl ToString) -> bool {
30        self.inner.contains_key(&Ascii::new(key.to_string()))
31    }
32}