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}