kutil 0.0.6

Kutil utilities collection
Documentation
use super::{
    super::super::{std::*, transcoding::*},
    into::*,
};

use {http::header::*, std::convert::*};

impl IntoHeaderValue for Encoding {
    fn into_header_value(self) -> HeaderValue {
        let value: EncodingHeaderValue = self.into();
        value.into()
    }
}

//
// EncodingHeaderValue
//

/// [Encoding] header value.
#[derive(Clone, Copy, Debug, Default, Display, Eq, FromStr, Hash, PartialEq)]
#[display(lowercase)]
#[from_str(lowercase)]
pub enum EncodingHeaderValue {
    /// Identity.
    #[default]
    Identity,

    /// Brotli.
    #[strings("br")]
    Brotli,

    /// Deflate.
    Deflate,

    /// GZip.
    GZip,

    /// Zstandard.
    #[strings("zstd")]
    Zstandard,
}

impl From<Encoding> for EncodingHeaderValue {
    fn from(encoding: Encoding) -> Self {
        match encoding {
            Encoding::Identity => Self::Identity,
            Encoding::Brotli => Self::Brotli,
            Encoding::Deflate => Self::Deflate,
            Encoding::GZip => Self::GZip,
            Encoding::Zstandard => Self::Zstandard,
        }
    }
}

impl From<EncodingHeaderValue> for Encoding {
    fn from(value: EncodingHeaderValue) -> Self {
        match value {
            EncodingHeaderValue::Identity => Encoding::Identity,
            EncodingHeaderValue::Brotli => Encoding::Brotli,
            EncodingHeaderValue::Deflate => Encoding::Deflate,
            EncodingHeaderValue::GZip => Encoding::GZip,
            EncodingHeaderValue::Zstandard => Encoding::Zstandard,
        }
    }
}

impl From<EncodingHeaderValue> for HeaderValue {
    fn from(value: EncodingHeaderValue) -> HeaderValue {
        HeaderValue::from_static(value.into())
    }
}