thesaurus-moby 0.2.0

subcrate for thesaurus-rs
Documentation
use libflate::gzip::Encoder;
use std::{env, fs, io::Write};

const MOBY: &'static str = "./src/moby.txt";

fn main() {
    // Tell Cargo that if the dictionary files change, to rerun this build script.
    println!("cargo:rerun-if-changed={MOBY}");

    let thes = fs::read_to_string(MOBY)
        .expect(&format!("Failed to read \"{MOBY}\""))
        .replace(",", "|")
        .to_lowercase();

    let compressed = {
        let mut encoder = Encoder::new(Vec::new()).expect("Failed to create compressor");
        encoder
            .write_all(thes.as_bytes())
            .expect("Failed to compress dictionary");
        encoder
            .finish()
            .into_result()
            .expect("Failed to finish compressing dictionary")
    };

    let target_dir = env::var("OUT_DIR").unwrap();

    fs::write(format!("{}/{}", target_dir, "moby.gz"), compressed).expect(&format!(
        "Failed to write compressed dictionary to `{}/moby.gz`",
        target_dir
    ));
}