use std::path::Path;
use crate::LinderaResult;
use crate::dictionary::prefix_dictionary::PrefixDictionary;
#[cfg(feature = "mmap")]
use crate::util::mmap_file;
use crate::util::read_file;
pub struct PrefixDictionaryLoader {}
impl PrefixDictionaryLoader {
pub fn load(input_dir: &Path) -> LinderaResult<PrefixDictionary> {
let da_data = read_file(input_dir.join("dict.da").as_path())?;
let vals_data = read_file(input_dir.join("dict.vals").as_path())?;
let words_idx_data = read_file(input_dir.join("dict.wordsidx").as_path())?;
let words_data = read_file(input_dir.join("dict.words").as_path())?;
PrefixDictionary::load(da_data, vals_data, words_idx_data, words_data, true)
}
#[cfg(feature = "mmap")]
pub fn load_mmap(input_dir: &Path) -> LinderaResult<PrefixDictionary> {
let da_data = mmap_file(input_dir.join("dict.da").as_path())?;
let vals_data = mmap_file(input_dir.join("dict.vals").as_path())?;
let words_idx_data = mmap_file(input_dir.join("dict.wordsidx").as_path())?;
let words_data = mmap_file(input_dir.join("dict.words").as_path())?;
PrefixDictionary::load(da_data, vals_data, words_idx_data, words_data, true)
}
}