Skip to content

Commit

Permalink
feat(type): compression type (#4194)
Browse files Browse the repository at this point in the history
  • Loading branch information
LeoBorai authored Sep 26, 2024
1 parent 9bba12c commit ef486e0
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 4 deletions.
5 changes: 3 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion crates/fluvio-compression/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fluvio-compression"
version = "0.3.3"
version = "0.3.4"
edition = "2021"
license = "Apache-2.0"
authors = ["Fluvio Contributors <[email protected]>"]
Expand All @@ -27,6 +27,8 @@ serde = { workspace = true, features = ['derive'] }
thiserror = { workspace = true }
bytes = { workspace = true }

fluvio-types = { workspace = true }

# Optional Dependencies
flate2 = { workspace = true, optional = true }
lz4_flex = { version = "0.11.1", default-features = false, features = ["safe-decode", "safe-encode", "frame"], optional = true }
Expand Down
45 changes: 45 additions & 0 deletions crates/fluvio-compression/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,48 @@ impl Compression {
}
}
}

#[cfg(any(feature = "gzip", feature = "snap", feature = "lz4", feature = "zstd"))]
impl From<fluvio_types::compression::Compression> for Compression {
fn from(fcc: fluvio_types::compression::Compression) -> Self {
use fluvio_types::compression::Compression as CompressionType;

match fcc {
CompressionType::None => Compression::None,
#[cfg(feature = "gzip")]
CompressionType::Gzip => Compression::Gzip,
#[cfg(feature = "snap")]
CompressionType::Snappy => Compression::Snappy,
#[cfg(feature = "lz4")]
CompressionType::Lz4 => Compression::Lz4,
#[cfg(feature = "zstd")]
CompressionType::Zstd => Compression::Zstd,
}
}
}

#[cfg(test)]
mod tests {
use super::Compression;

#[test]
fn converts_from_fluvio_compression() {
use fluvio_types::compression::Compression as CompressionType;

assert_eq!(Compression::from(CompressionType::None), Compression::None);

#[cfg(feature = "gzip")]
assert_eq!(Compression::from(CompressionType::Gzip), Compression::Gzip);
#[cfg(feature = "snap")]
assert_eq!(
Compression::from(CompressionType::Snappy),
Compression::Snappy
);

#[cfg(feature = "lz4")]
assert_eq!(Compression::from(CompressionType::Lz4), Compression::Lz4);

#[cfg(feature = "zstd")]
assert_eq!(Compression::from(CompressionType::Zstd), Compression::Zstd);
}
}
2 changes: 1 addition & 1 deletion crates/fluvio-types/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fluvio-types"
version = "0.5.0"
version = "0.5.1"
authors = ["Fluvio Contributors <[email protected]>"]
edition = "2021"
description = "Fluvio common types and objects"
Expand Down
8 changes: 8 additions & 0 deletions crates/fluvio-types/src/compression.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum Compression {
None,
Gzip,
Snappy,
Lz4,
Zstd,
}
1 change: 1 addition & 0 deletions crates/fluvio-types/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use std::collections::BTreeMap;

pub mod compression;
pub mod defaults;
pub mod macros;
pub mod partition;
Expand Down

0 comments on commit ef486e0

Please sign in to comment.