Skip to content

Commit 40cd571

Browse files
authored
Merge pull request #30 from fjall-rs/perf/no-compression
perf: allow setting compression to None
2 parents 7ade5f4 + eff97c9 commit 40cd571

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

src/config.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,22 @@ pub struct Config<BC: BlobCache, C: Compressor + Clone> {
1313
pub(crate) blob_cache: BC,
1414

1515
/// Compression to use
16-
pub(crate) compression: C,
16+
pub(crate) compression: Option<C>,
1717
}
1818

1919
impl<BC: BlobCache, C: Compressor + Clone + Default> Config<BC, C> {
2020
/// Creates a new configuration builder.
2121
pub fn new(blob_cache: BC) -> Self {
2222
Self {
2323
blob_cache,
24-
compression: Default::default(),
24+
compression: None,
2525
segment_size_bytes: 128 * 1_024 * 1_024,
2626
}
2727
}
2828

2929
/// Sets the compression & decompression scheme.
3030
#[must_use]
31-
pub fn compression(mut self, compressor: C) -> Self {
31+
pub fn compression(mut self, compressor: Option<C>) -> Self {
3232
self.compression = compressor;
3333
self
3434
}

src/segment/multi_writer.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ impl<C: Compressor + Clone> MultiWriter<C> {
5353
/// Sets the compression method
5454
#[must_use]
5555
#[doc(hidden)]
56-
pub fn use_compression(mut self, compressor: C) -> Self {
57-
self.compression = Some(compressor.clone());
58-
self.get_active_writer_mut().compression = Some(compressor);
56+
pub fn use_compression(mut self, compressor: Option<C>) -> Self {
57+
self.compression.clone_from(&compressor);
58+
self.get_active_writer_mut().compression = compressor;
5959
self
6060
}
6161

src/segment/reader.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ impl<C: Compressor + Clone> Reader<C> {
5555
}
5656
}
5757

58-
pub(crate) fn use_compression(mut self, compressor: C) -> Self {
59-
self.compression = Some(compressor);
58+
pub(crate) fn use_compression(mut self, compressor: Option<C>) -> Self {
59+
self.compression = compressor;
6060
self
6161
}
6262
}

tests/compression.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ fn compression() -> value_log::Result<()> {
2323

2424
let index = MockIndex::default();
2525

26-
let value_log = ValueLog::open(vl_path, Config::<_, Lz4Compressor>::new(NoCacher))?;
26+
let value_log = ValueLog::open(
27+
vl_path,
28+
Config::<_, Lz4Compressor>::new(NoCacher).compression(Some(Lz4Compressor)),
29+
)?;
2730

2831
let mut index_writer = MockIndexWriter(index.clone());
2932
let mut writer = value_log.get_writer()?;

0 commit comments

Comments
 (0)