lindera_py/
lib.rs

1pub mod dictionary;
2pub mod segmenter;
3pub mod token;
4pub mod tokenizer;
5pub mod util;
6
7use pyo3::prelude::*;
8
9use crate::dictionary::{
10    PyDictionary, PyUserDictionary, build_dictionary, build_user_dictionary, load_dictionary,
11    load_user_dictionary,
12};
13use crate::segmenter::PySegmenter;
14use crate::token::PyToken;
15use crate::tokenizer::{PyTokenizer, PyTokenizerBuilder};
16
17#[pyfunction]
18pub fn version() -> String {
19    env!("CARGO_PKG_VERSION").to_string()
20}
21
22#[pymodule]
23fn lindera_py(module: &Bound<'_, PyModule>) -> PyResult<()> {
24    module.add_class::<PyToken>()?;
25    module.add_class::<PyDictionary>()?;
26    module.add_class::<PyUserDictionary>()?;
27    module.add_class::<PyTokenizerBuilder>()?;
28    module.add_class::<PyTokenizer>()?;
29    module.add_class::<PySegmenter>()?;
30
31    module.add_function(wrap_pyfunction!(build_dictionary, module)?)?;
32    module.add_function(wrap_pyfunction!(build_user_dictionary, module)?)?;
33    module.add_function(wrap_pyfunction!(load_dictionary, module)?)?;
34    module.add_function(wrap_pyfunction!(load_user_dictionary, module)?)?;
35
36    module.add_function(wrap_pyfunction!(version, module)?)?;
37    Ok(())
38}