asserhttp 0.7.1

Fluent http response assertions
Documentation
#[derive(Debug, Clone)]
pub struct HeaderValues(Vec<String>);

impl<S: AsRef<str>> From<Vec<S>> for HeaderValues {
    fn from(values: Vec<S>) -> Self {
        let values = values.into_iter().map(|v| v.as_ref().to_string()).collect();
        Self(values)
    }
}

impl<const N: usize, S: AsRef<str>> From<[S; N]> for HeaderValues {
    fn from(values: [S; N]) -> Self {
        values.map(|v| v.as_ref().to_string()).to_vec().into()
    }
}

impl<'a, const N: usize, S: AsRef<str>> From<&'a [S; N]> for HeaderValues {
    fn from(values: &'a [S; N]) -> Self {
        values.iter().map(|v| v.as_ref().to_string()).collect::<Vec<_>>().into()
    }
}

impl From<http_types::headers::HeaderValues> for HeaderValues {
    fn from(values: http_types::headers::HeaderValues) -> Self {
        values.iter().map(|v| v.to_string()).collect::<Vec<String>>().into()
    }
}

impl std::ops::Deref for HeaderValues {
    type Target = [String];

    fn deref(&self) -> &Self::Target {
        &self.0
    }
}

impl std::fmt::Display for HeaderValues {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{:?}", self.0.as_slice())
    }
}

impl Eq for HeaderValues {}

impl PartialEq for HeaderValues {
    fn eq(&self, other: &Self) -> bool {
        self.iter().eq(other.iter())
    }
}