lindera_dictionary/
dictionary_builder.rs

1pub mod cc_cedict;
2pub mod character_definition;
3pub mod connection_cost_matrix;
4pub mod ipadic;
5pub mod ipadic_neologd;
6pub mod ko_dic;
7pub mod prefix_dictionary;
8pub mod unidic;
9pub mod unknown_dictionary;
10pub mod user_dictionary;
11
12use std::path::Path;
13
14pub use character_definition::CharacterDefinitionBuilderOptions;
15pub use connection_cost_matrix::ConnectionCostMatrixBuilderOptions;
16pub use prefix_dictionary::PrefixDictionaryBuilderOptions;
17pub use unknown_dictionary::UnknownDictionaryBuilderOptions;
18pub use user_dictionary::{build_user_dictionary, UserDictionaryBuilderOptions};
19
20use crate::dictionary::character_definition::CharacterDefinition;
21use crate::dictionary::UserDictionary;
22use crate::LinderaResult;
23
24pub trait DictionaryBuilder {
25    fn build_dictionary(&self, input_dir: &Path, output_dir: &Path) -> LinderaResult<()>;
26    fn build_user_dictionary(&self, input_path: &Path, output_path: &Path) -> LinderaResult<()>;
27    fn build_character_definition(
28        &self,
29        input_dir: &Path,
30        output_dir: &Path,
31    ) -> LinderaResult<CharacterDefinition>;
32    fn build_unknown_dictionary(
33        &self,
34        input_dir: &Path,
35        chardef: &CharacterDefinition,
36        output_dir: &Path,
37    ) -> LinderaResult<()>;
38    fn build_prefix_dictionary(&self, input_dir: &Path, output_dir: &Path) -> LinderaResult<()>;
39    fn build_connection_cost_matrix(
40        &self,
41        input_dir: &Path,
42        output_dir: &Path,
43    ) -> LinderaResult<()>;
44    fn build_user_dict(&self, input_file: &Path) -> LinderaResult<UserDictionary>;
45}