1pub mod character_filter;
49pub mod dictionary;
50pub mod error;
51pub mod metadata;
52pub mod mode;
53pub mod schema;
54pub mod segmenter;
55pub mod token;
56pub mod token_filter;
57pub mod tokenizer;
58
59use wasm_bindgen::prelude::*;
60
61pub use crate::dictionary::{JsDictionary as Dictionary, JsUserDictionary as UserDictionary};
62pub use crate::error::JsLinderaError as LinderaError;
63pub use crate::metadata::{JsCompressionAlgorithm as CompressionAlgorithm, JsMetadata as Metadata};
64pub use crate::mode::{JsMode as Mode, JsPenalty as Penalty};
65pub use crate::schema::{
66 JsFieldDefinition as FieldDefinition, JsFieldType as FieldType, JsSchema as Schema,
67};
68pub use crate::segmenter::JsSegmenter as Segmenter;
69pub use crate::token::JsToken as Token;
70pub use crate::tokenizer::{Tokenizer, TokenizerBuilder};
71
72#[wasm_bindgen(js_name = "load_dictionary")]
74pub fn py_load_dictionary(uri: &str) -> Result<Dictionary, JsValue> {
75 crate::dictionary::load_dictionary(uri)
76}
77
78#[wasm_bindgen(js_name = "load_user_dictionary")]
79pub fn py_load_user_dictionary(uri: &str, metadata: Metadata) -> Result<UserDictionary, JsValue> {
80 crate::dictionary::load_user_dictionary(uri, metadata)
81}
82
83#[wasm_bindgen(js_name = "build_dictionary")]
84pub fn py_build_dictionary(
85 input_dir: &str,
86 output_dir: &str,
87 metadata: Metadata,
88) -> Result<(), JsValue> {
89 crate::dictionary::build_dictionary(input_dir, output_dir, metadata)
90}
91
92#[wasm_bindgen(js_name = "build_user_dictionary")]
93pub fn py_build_user_dictionary(
94 input_file: &str,
95 output_dir: &str,
96 metadata: Option<Metadata>,
97) -> Result<(), JsValue> {
98 crate::dictionary::build_user_dictionary(input_file, output_dir, metadata)
99}
100
101const VERSION: &str = env!("CARGO_PKG_VERSION");
102
103#[wasm_bindgen]
105pub fn version() -> String {
106 VERSION.to_string()
107}
108
109#[wasm_bindgen(js_name = "getVersion")]
112pub fn get_version() -> String {
113 version()
114}