redirectionio 3.1.0

Redirection IO Library to handle matching rule, redirect and filtering headers and body.
Documentation
use http::{HeaderMap, header::HeaderName};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone, Hash)]
pub struct Header {
    pub name: String,
    pub value: String,
}

impl Header {
    pub fn create_header_map(headers: Vec<Header>) -> HeaderMap<String> {
        let mut header_map = HeaderMap::<String>::default();

        for header in headers {
            let name = match HeaderName::from_bytes(header.name.as_bytes()) {
                Ok(name) => name,
                Err(_) => {
                    tracing::error!("unable to create header name from: {}", header.name);

                    continue;
                }
            };

            if header_map.contains_key(&name) {
                header_map.append(name, header.value);
            } else {
                header_map.insert(name, header.value);
            }
        }

        header_map
    }
}