pub struct ZstdBlockCompressor { /* private fields */ }Implementations§
Source§impl ZstdBlockCompressor
impl ZstdBlockCompressor
Sourcepub fn new() -> Self
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
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}pub fn with_level(level: i32) -> Self
Sourcepub fn level(&self) -> i32
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}Sourcepub fn compress(&self, block: &[u8]) -> Result<Vec<u8>>
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
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}Sourcepub fn decompress(&self, buf: &[u8]) -> Result<Vec<u8>>
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
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§
Auto Trait Implementations§
impl Freeze for ZstdBlockCompressor
impl RefUnwindSafe for ZstdBlockCompressor
impl Send for ZstdBlockCompressor
impl Sync for ZstdBlockCompressor
impl Unpin for ZstdBlockCompressor
impl UnsafeUnpin for ZstdBlockCompressor
impl UnwindSafe for ZstdBlockCompressor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more