Skip to main content

ZstdBlockCompressor

Struct ZstdBlockCompressor 

Source
pub struct ZstdBlockCompressor { /* private fields */ }

Implementations§

Source§

impl ZstdBlockCompressor

Source

pub fn new() -> Self

Examples found in repository?
examples/sample_app.rs (line 287)
284fn zstd_cold_tier() {
285    use subms_lsm_tree::ZstdBlockCompressor;
286    println!("\n== zstd: higher-ratio compression for the cold tier ==");
287    let codec = ZstdBlockCompressor::new();
288    let block = "MSFT,50@320.55;".repeat(256).into_bytes();
289    let encoded = codec.compress(&block).unwrap();
290    println!(
291        "  {} bytes -> {} compressed (level {})",
292        block.len(),
293        encoded.len(),
294        codec.level()
295    );
296    assert!(encoded.len() < block.len(), "cold block shrinks");
297    assert_eq!(
298        codec.decompress(&encoded).unwrap(),
299        block,
300        "lossless round trip"
301    );
302}
More examples
Hide additional examples
examples/perf_features.rs (line 514)
511fn feature_zstd(manifest: &mut SubMsFeatureManifest, base_p50: u64) {
512    use subms_lsm_tree::ZstdBlockCompressor;
513
514    let c = ZstdBlockCompressor::new();
515    let block = representative_block();
516    let sw = sweep("zstd/compress", |_| {
517        keyed(
518            |_| _ = black_box(c.compress(&block).expect("zstd encode")),
519            true,
520        )
521    });
522    let (cat, reason) = classify_feature(&sw, Some(base_p50), None);
523
524    let encoded = c.compress(&block).expect("zstd encode");
525    let mut p99 = BTreeMap::new();
526    p99.insert(
527        "compress_block".to_string(),
528        keyed(
529            |_| _ = black_box(c.compress(&block).expect("zstd encode")),
530            false,
531        ),
532    );
533    p99.insert(
534        "decompress_block".to_string(),
535        keyed(
536            |_| _ = black_box(c.decompress(&encoded).expect("zstd decode")),
537            false,
538        ),
539    );
540    manifest.set_feature("zstd", cat, &p99, &reason);
541}
Source

pub fn with_level(level: i32) -> Self

Source

pub fn level(&self) -> i32

Examples found in repository?
examples/sample_app.rs (line 294)
284fn zstd_cold_tier() {
285    use subms_lsm_tree::ZstdBlockCompressor;
286    println!("\n== zstd: higher-ratio compression for the cold tier ==");
287    let codec = ZstdBlockCompressor::new();
288    let block = "MSFT,50@320.55;".repeat(256).into_bytes();
289    let encoded = codec.compress(&block).unwrap();
290    println!(
291        "  {} bytes -> {} compressed (level {})",
292        block.len(),
293        encoded.len(),
294        codec.level()
295    );
296    assert!(encoded.len() < block.len(), "cold block shrinks");
297    assert_eq!(
298        codec.decompress(&encoded).unwrap(),
299        block,
300        "lossless round trip"
301    );
302}
Source

pub fn compress(&self, block: &[u8]) -> Result<Vec<u8>>

Examples found in repository?
examples/sample_app.rs (line 289)
284fn zstd_cold_tier() {
285    use subms_lsm_tree::ZstdBlockCompressor;
286    println!("\n== zstd: higher-ratio compression for the cold tier ==");
287    let codec = ZstdBlockCompressor::new();
288    let block = "MSFT,50@320.55;".repeat(256).into_bytes();
289    let encoded = codec.compress(&block).unwrap();
290    println!(
291        "  {} bytes -> {} compressed (level {})",
292        block.len(),
293        encoded.len(),
294        codec.level()
295    );
296    assert!(encoded.len() < block.len(), "cold block shrinks");
297    assert_eq!(
298        codec.decompress(&encoded).unwrap(),
299        block,
300        "lossless round trip"
301    );
302}
More examples
Hide additional examples
examples/perf_features.rs (line 518)
511fn feature_zstd(manifest: &mut SubMsFeatureManifest, base_p50: u64) {
512    use subms_lsm_tree::ZstdBlockCompressor;
513
514    let c = ZstdBlockCompressor::new();
515    let block = representative_block();
516    let sw = sweep("zstd/compress", |_| {
517        keyed(
518            |_| _ = black_box(c.compress(&block).expect("zstd encode")),
519            true,
520        )
521    });
522    let (cat, reason) = classify_feature(&sw, Some(base_p50), None);
523
524    let encoded = c.compress(&block).expect("zstd encode");
525    let mut p99 = BTreeMap::new();
526    p99.insert(
527        "compress_block".to_string(),
528        keyed(
529            |_| _ = black_box(c.compress(&block).expect("zstd encode")),
530            false,
531        ),
532    );
533    p99.insert(
534        "decompress_block".to_string(),
535        keyed(
536            |_| _ = black_box(c.decompress(&encoded).expect("zstd decode")),
537            false,
538        ),
539    );
540    manifest.set_feature("zstd", cat, &p99, &reason);
541}
Source

pub fn decompress(&self, buf: &[u8]) -> Result<Vec<u8>>

Examples found in repository?
examples/sample_app.rs (line 298)
284fn zstd_cold_tier() {
285    use subms_lsm_tree::ZstdBlockCompressor;
286    println!("\n== zstd: higher-ratio compression for the cold tier ==");
287    let codec = ZstdBlockCompressor::new();
288    let block = "MSFT,50@320.55;".repeat(256).into_bytes();
289    let encoded = codec.compress(&block).unwrap();
290    println!(
291        "  {} bytes -> {} compressed (level {})",
292        block.len(),
293        encoded.len(),
294        codec.level()
295    );
296    assert!(encoded.len() < block.len(), "cold block shrinks");
297    assert_eq!(
298        codec.decompress(&encoded).unwrap(),
299        block,
300        "lossless round trip"
301    );
302}
More examples
Hide additional examples
examples/perf_features.rs (line 536)
511fn feature_zstd(manifest: &mut SubMsFeatureManifest, base_p50: u64) {
512    use subms_lsm_tree::ZstdBlockCompressor;
513
514    let c = ZstdBlockCompressor::new();
515    let block = representative_block();
516    let sw = sweep("zstd/compress", |_| {
517        keyed(
518            |_| _ = black_box(c.compress(&block).expect("zstd encode")),
519            true,
520        )
521    });
522    let (cat, reason) = classify_feature(&sw, Some(base_p50), None);
523
524    let encoded = c.compress(&block).expect("zstd encode");
525    let mut p99 = BTreeMap::new();
526    p99.insert(
527        "compress_block".to_string(),
528        keyed(
529            |_| _ = black_box(c.compress(&block).expect("zstd encode")),
530            false,
531        ),
532    );
533    p99.insert(
534        "decompress_block".to_string(),
535        keyed(
536            |_| _ = black_box(c.decompress(&encoded).expect("zstd decode")),
537            false,
538        ),
539    );
540    manifest.set_feature("zstd", cat, &p99, &reason);
541}

Trait Implementations§

Source§

impl Default for ZstdBlockCompressor

Source§

fn default() -> Self

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

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, 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.