Compress

Enum Compress 

Source
pub enum Compress {
    Gzip,
    Deflate,
    Br,
    Unknown,
}
Expand description

Represents different compression algorithms supported by the library.

Variants§

§

Gzip

Gzip compression algorithm.

§

Deflate

Deflate compression algorithm.

§

Br

Brotli compression algorithm.

§

Unknown

Represents an unknown or unsupported compression algorithm.

Implementations§

Source§

impl Compress

Provides methods for interacting with the Compress enum.

Source

pub fn is_unknown(&self) -> bool

Checks if the current instance is of the Unknown type.

This method compares the current instance with the Unknown variant of the enum. It returns true if the instance is of type Unknown, otherwise false.

§Returns
  • true if the instance is of type Unknown.
  • false otherwise.
Source

pub fn from( header: &HashMap<String, String, BuildHasherDefault<Hasher>>, ) -> Compress

Extracts the compression type from an HTTP header.

This function looks for the Content-Encoding header in the provided Header and attempts to parse it into a Compress enum value.

§Arguments
  • header - The HTTP header from which the compression type is to be extracted.
§Returns
  • The Compress value corresponding to the Content-Encoding header, or Compress::Unknown if the header does not match any known compression types.
Source

pub fn decode<'a>(&self, data: &'a [u8], buffer_size: usize) -> Cow<'a, Vec<u8>>

Decompresses the given data based on the selected compression algorithm.

This method takes a byte slice of compressed data and decompresses it using one of the following compression algorithms, depending on the variant of the enum it is called on:

  • Gzip - Decompresses using Gzip compression.
  • Deflate - Decompresses using Deflate compression.
  • Br - Decompresses using Brotli compression.
  • Unknown - Returns the input data as-is (no decompression performed).
§Parameters
  • data - A reference to a byte slice (&[u8]) containing the compressed data to be decoded.
  • buffer_size - The buffer size to use for the decompression process. A larger buffer size can improve performance for larger datasets.
§Returns
  • Cow<Vec<u8>> - The decompressed data as a Cow<Vec<u8>>. If the compression algorithm is Unknown, the original data is returned unchanged, as a borrowed reference. Otherwise, the decompressed data is returned as an owned Vec<u8>.
Source

pub fn encode<'a>(&self, data: &'a [u8], buffer_size: usize) -> Cow<'a, Vec<u8>>

Compresses the given data based on the selected compression algorithm.

This method takes a byte slice of data and compresses it using one of the following compression algorithms, depending on the variant of the enum it is called on:

  • Gzip - Compresses using Gzip compression.
  • Deflate - Compresses using Deflate compression.
  • Br - Compresses using Brotli compression.
  • Unknown - Returns the input data as-is (no compression performed).
§Parameters
  • data - A reference to a byte slice (&[u8]) containing the data to be compressed.
  • buffer_size - The buffer size to use for the compression process. A larger buffer size can improve performance for larger datasets.
§Returns
  • Cow<Vec<u8>> - The compressed data as a Cow<Vec<u8>>. If the compression algorithm is Unknown, the original data is returned unchanged, as a borrowed reference. Otherwise, the compressed data is returned as an owned Vec<u8>.

Trait Implementations§

Source§

impl Debug for Compress

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for Compress

Provides the default value for the Compress enum, which is Unknown.

Source§

fn default() -> Compress

Returns the “default value” for a type. Read more
Source§

impl Display for Compress

Implements the Display trait for the Compress enum.

This allows the Compress enum variants to be formatted as strings, typically used for outputting the Content-Encoding header value.

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl FromStr for Compress

Enables parsing a string into a Compress enum variant.

This implementation allows converting string representations of compression algorithms (like “gzip”, “deflate”, “br”) into their corresponding Compress enum variants. If the string does not match any known compression types, it defaults to Compress::Unknown.

Source§

fn from_str(data: &str) -> Result<Compress, <Compress as FromStr>::Err>

Parses a string into a Compress enum variant.

This method converts string representations of compression algorithms (case-insensitive) into their corresponding Compress enum variants. Unknown strings are converted to Compress::Unknown.

§Arguments
  • data - The string to parse, which should be a compression algorithm name.
§Returns
  • Result<Self, Self::Err> - Returns Ok with the matching Compress variant, or Ok(Compress::Unknown) for unknown strings. Never returns Err.
Source§

type Err = ()

The associated error which can be returned from parsing.
Source§

impl PartialEq for Compress

Source§

fn eq(&self, other: &Compress) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Compress

Source§

impl StructuralPartialEq for Compress

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> AnySend for T
where T: Any + Send,

Source§

impl<T> AnySendSync for T
where T: Any + Send + Sync,

Source§

impl<T> AnySync for T
where T: Any + Sync,

Source§

impl<T> ErasedDestructor for T
where T: 'static,