mid-net 1.0.0

Network adapter for the `middleware` protocol implementation
Documentation
use integral_enum::IntegralEnum;
#[cfg(feature = "serde")]
use serde::{
    Deserialize,
    Serialize,
};

#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum ForwardCompression {
    NoCompression,
    Compress { with_threshold: usize },
}

#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum DecompressionConstraint {
    Max(usize),
    MaxSizeMultiplier(usize),
}

#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum DecompressionStrategy {
    ConstrainedConst { constraint: DecompressionConstraint },
    Unconstrained,
}

#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum CompressionStatus {
    Uncompressed,
    Compressed { before: usize, after: usize },
}

#[derive(IntegralEnum)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[repr(u8)]
pub enum CompressionAlgorithm {
    #[cfg_attr(feature = "serde", serde(rename = "zstd"))]
    ZStd = 0,

    #[cfg_attr(feature = "serde", serde(rename = "deflate"))]
    Deflate = 1,
}

pub use mid_compression as impl_;