ejdict_rs 0.0.4

This library is an English-Japanese dictionary that can be used via implemented API by Rust language.
Documentation
use ejdict_rs_core::{Dictionary, Word};
use std::env;
use std::fs;
use std::io;
use std::io::{BufWriter, Write};
use std::path::PathBuf;
use std::str;

fn main() -> io::Result<()> {
    let ejdict_force_update = env::var("EJDICT_FORCE_UPDATE").ok().is_some();
    let output_dir = env::var("OUT_DIR").unwrap();
    let output_path = PathBuf::new().join(output_dir).join("ejdict.json");
    if output_path.exists() && !ejdict_force_update {
        return Ok(());
    }
    let res = load_ejdict();
    let words = res.lines().map(Word::parse_line).collect::<Vec<_>>();
    let dict = Dictionary::new(words);
    let json = serde_json::to_string_pretty(&dict).unwrap();
    let mut output = BufWriter::new(fs::File::create(output_path)?);
    output.write_all(json.as_bytes())
}

fn load_ejdict() -> String {
    let manifest_dir: &'static str = env!("CARGO_MANIFEST_DIR");
    let ejdict_local_path = PathBuf::new()
        .join(&manifest_dir)
        .join("res")
        .join("ejdic-hand-utf8.txt");
    fs::read_to_string(&ejdict_local_path).unwrap()
}