Skip to main content

lindera_dictionary/loader/
character_definition.rs

1use std::path::Path;
2
3use crate::LinderaResult;
4use crate::dictionary::character_definition::CharacterDefinition;
5use crate::util::read_file;
6
7/// Loader for character definition data from disk files.
8pub struct CharacterDefinitionLoader {}
9
10impl CharacterDefinitionLoader {
11    /// Load character definition from a file in the specified directory.
12    ///
13    /// # Arguments
14    ///
15    /// * `input_dir` - Path to the directory containing char_def.bin.
16    ///
17    /// # Returns
18    ///
19    /// A `CharacterDefinition` loaded from the file.
20    pub fn load(input_dir: &Path) -> LinderaResult<CharacterDefinition> {
21        let raw_data = read_file(input_dir.join("char_def.bin").as_path())?;
22
23        let mut aligned_data = rkyv::util::AlignedVec::<16>::new();
24        aligned_data.extend_from_slice(&raw_data);
25
26        CharacterDefinition::load(&aligned_data)
27    }
28}