Want to contribute? Fork me on Codeberg.org!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1017 B

use std::{fs::{self, File}, io::{Write, Read}};
use crate::jmdict::Jmdict;
fn get_jmdict_json() -> String {
fs::read_dir("loader")
.unwrap()
.filter_map(|file| {
let file = file.unwrap();
if file.file_name().to_string_lossy().ends_with(".json") {
Some(fs::read_to_string(file.path()).ok())
} else {
None
}
})
.next()
.unwrap()
.unwrap()
}
const BIN_PATH: &str = "JMdict.bin";
#[test]
fn jmdict_load_and_serialize() {
let jmdict: Jmdict = serde_json::from_str(&get_jmdict_json()).unwrap();
let encoded: Vec<u8> = bincode::serialize(&jmdict).unwrap();
let mut file = File::create(BIN_PATH).unwrap();
file.write_all(&encoded).unwrap();
}
#[test]
fn jmdict_deserialize() {
let mut file = File::open(BIN_PATH).unwrap();
let mut buffer = Vec::new();
file.read_to_end(&mut buffer).unwrap();
let _jmdict: Jmdict = bincode::deserialize(&buffer).unwrap();
}