lindera_dictionary/
dictionary_builder.rs1pub 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}