small_http/
header_map.rs

1/*
2 * Copyright (c) 2025 Bastiaan van der Plaat
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7/// HeaderMap
8#[derive(Default, Clone)]
9pub struct HeaderMap(Vec<(String, String)>);
10
11impl HeaderMap {
12    /// Create new HeaderMap
13    pub fn new() -> Self {
14        Self::default()
15    }
16
17    /// Get header value
18    pub fn get(&self, name: &str) -> Option<&String> {
19        self.0.iter().find(|(n, _)| n == name).map(|(_, v)| v)
20    }
21
22    /// Insert header
23    pub fn insert(&mut self, name: String, value: String) {
24        self.0.push((name, value));
25    }
26
27    /// Iterate over headers
28    pub fn iter(&self) -> impl Iterator<Item = (&String, &String)> {
29        self.0.iter().map(|(n, v)| (n, v))
30    }
31}