mid_net/
compression.rs

1use integral_enum::IntegralEnum;
2#[cfg(feature = "serde")]
3use serde::{
4    Deserialize,
5    Serialize,
6};
7
8#[derive(Debug, Clone, PartialEq, Eq)]
9#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
10pub enum ForwardCompression {
11    NoCompression,
12    Compress { with_threshold: usize },
13}
14
15#[derive(Debug, Clone, PartialEq, Eq)]
16#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
17pub enum DecompressionConstraint {
18    Max(usize),
19    MaxSizeMultiplier(usize),
20}
21
22#[derive(Debug, Clone, PartialEq, Eq)]
23#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
24pub enum DecompressionStrategy {
25    ConstrainedConst { constraint: DecompressionConstraint },
26    Unconstrained,
27}
28
29#[derive(Debug, Clone, PartialEq, Eq)]
30#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
31pub enum CompressionStatus {
32    Uncompressed,
33    Compressed { before: usize, after: usize },
34}
35
36#[derive(IntegralEnum)]
37#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
38#[repr(u8)]
39pub enum CompressionAlgorithm {
40    #[cfg_attr(feature = "serde", serde(rename = "zstd"))]
41    ZStd = 0,
42
43    #[cfg_attr(feature = "serde", serde(rename = "deflate"))]
44    Deflate = 1,
45}
46
47pub use mid_compression as impl_;