Sha256: 7453f89ef07b4f3a7e20c756cbde395142706e3c57fcf89d060d0ba37c2c6558

Contents?: true

Size: 1.14 KB

Versions: 39

Compression:

Stored size: 1.14 KB

Contents

use zstd;

use std::env;
use std::fs;
use std::io;

const SUFFIX: &'static str = ".zst";

fn main() {
    for arg in env::args().skip(1) {
        if arg.ends_with(SUFFIX) {
            match decompress(&arg) {
                Ok(()) => println!("Decompressed {}", arg),
                Err(e) => println!("Error decompressing {}: {}", arg, e),
            }
        } else {
            match compress(&arg) {
                Ok(()) => println!("Compressed {}", arg),
                Err(e) => println!("Error compressing {}: {}", arg, e),
            }
        }
    }
}

fn compress(source: &str) -> io::Result<()> {
    let mut file = fs::File::open(source)?;
    let mut encoder = {
        let target = fs::File::create(source.to_string() + SUFFIX)?;
        zstd::Encoder::new(target, 1)?
    };

    io::copy(&mut file, &mut encoder)?;
    encoder.finish()?;

    Ok(())
}

fn decompress(source: &str) -> io::Result<()> {
    let mut decoder = {
        let file = fs::File::open(source)?;
        zstd::Decoder::new(file)?
    };

    let mut target = fs::File::create(source.trim_end_matches(SUFFIX))?;

    io::copy(&mut decoder, &mut target)?;

    Ok(())
}

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
wasmtime-30.0.2 ./ext/cargo-vendor/zstd-0.13.3/examples/zstd.rs
wasmtime-29.0.0 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-28.0.0 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-27.0.0 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-26.0.0 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-25.0.2 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-25.0.1 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-25.0.0 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-24.0.0 ./ext/cargo-vendor/zstd-0.13.2/examples/zstd.rs
wasmtime-23.0.2 ./ext/cargo-vendor/zstd-0.13.1/examples/zstd.rs
wasmtime-22.0.0 ./ext/cargo-vendor/zstd-0.13.1/examples/zstd.rs
wasmtime-21.0.1 ./ext/cargo-vendor/zstd-0.13.1/examples/zstd.rs
wasmtime-20.0.2 ./ext/cargo-vendor/zstd-0.13.1/examples/zstd.rs
wasmtime-20.0.0 ./ext/cargo-vendor/zstd-0.13.1/examples/zstd.rs
wasmtime-18.0.3 ./ext/cargo-vendor/zstd-0.11.2+zstd.1.5.2/examples/zstd.rs
wasmtime-17.0.1 ./ext/cargo-vendor/zstd-0.11.2+zstd.1.5.2/examples/zstd.rs
wasmtime-17.0.0 ./ext/cargo-vendor/zstd-0.11.2+zstd.1.5.2/examples/zstd.rs
wasmtime-16.0.0 ./ext/cargo-vendor/zstd-0.11.2+zstd.1.5.2/examples/zstd.rs
wasmtime-15.0.1 ./ext/cargo-vendor/zstd-0.11.2+zstd.1.5.2/examples/zstd.rs
wasmtime-15.0.0 ./ext/cargo-vendor/zstd-0.11.2+zstd.1.5.2/examples/zstd.rs