1#![cfg_attr(not(test), deny(clippy::print_stderr))]
13
14pub mod access;
15pub mod assets;
16#[doc(hidden)]
17pub mod backend;
18mod cache;
19pub mod cantonese;
20pub mod diagnostics;
21mod dictionary;
22mod error;
23pub mod format;
24mod handwriting;
25mod helpcode;
26#[doc(hidden)]
27pub mod host;
28mod ime;
29mod japanese;
30mod korean;
31pub use korean::KoreanLayout;
32pub mod language_dictionary;
33mod lattice;
34mod local;
35pub mod logging;
36pub mod multilingual;
37mod nine_key;
38mod nine_key_shuangpin;
39#[doc(hidden)]
40pub mod ordering;
41mod paths;
42mod pinyin;
43mod punctuation;
44mod quanpin;
45mod session;
46mod shared_string;
47mod shuangpin;
48pub mod stroke;
49mod text;
50mod tibetan;
51pub mod time;
52pub mod touch;
53mod types;
54mod user_dictionary;
55pub mod vietnamese;
56#[cfg(all(target_family = "wasm", target_os = "unknown"))]
57#[doc(hidden)]
58pub mod web;
59mod wubi;
60pub mod zhuyin;
61
62pub use access::DictionaryAccess;
63pub use error::{EngineError, ErrorCode, Result};
64#[cfg(not(target_os = "android"))]
65pub use handwriting::handwriting_recognize;
66pub use handwriting::order_handwriting_candidates;
67pub use logging::{set_log_sink, LogSink};
68pub use lattice::octagram;
71pub use nine_key::KeyGrid;
72pub use paths::RuntimePaths;
73pub use pinyin::glide::{GlideKeyboard, GlidePoint};
74pub use punctuation::{BracketMarks, PunctuationMarks, QuoteMarks};
75pub use session::{Clock, Session, SessionOptions, SessionSnapshot};
76pub use types::{
77 autocorrect_type, fuzzy_rule, request_autocorrect_mask, CandidateEdge, CandidateSource,
78 Command, CommandTableEntry, CommandTranslationQuery, EnglishInputOptions, FirstPageRows,
79 FrequencyAdjustmentMode, FrequencyAdjustmentOptions, FuzzyPinyinOptions, KeyResult,
80 LocalInputMode, LocalModeOptions, MentionEntry, MixedExpressiveOptions, NineKeyShuangpinKind,
81 NineKeyShuangpinTable, OnlineInputMode, OnlineQuery, PersonalDictionaryEntry,
82 PersonalDictionaryKind, PluginCommand, PluginCommandQuery, QuickPhraseEntry, SchemeSet,
83 SchemeType, SentenceAssociationOptions, ShuangpinCustomTable, ShuangpinHelpcodeModes,
84 ShuangpinProfileKind, SyllableHelpcode, WordItem, WubiInputOptions, WubiProfileKind,
85 DEFAULT_FIRST_PAGE_ROWS,
86};
87pub use helpcode::{load_helpcode_keymap, HelpcodeKeymap, SharedKeymap};
89pub use shuangpin::custom::{
91 validate_custom_profile as validate_shuangpin_custom_profile,
92 CustomProfileError as ShuangpinCustomProfileError, CustomTablePart as ShuangpinCustomTablePart,
93};
94pub use nine_key_shuangpin::{
96 nine_key_shuangpin as validate_nine_key_shuangpin_table, resolve as resolve_nine_key_shuangpin,
97 resolve_eighteen_key_shuangpin, resolve_fourteen_key_shuangpin, NineKeyShuangpin,
98 NineKeyShuangpinError, NineKeyShuangpinKeyHint,
99};
100pub use user_dictionary::bundled::{
101 dictionary_table_entries, edit_bundled_dictionary_entry, DictionaryTableEntry,
102 DictionaryTablePage,
103};
104pub use user_dictionary::generation::prepare_runtime_paths;
105pub use user_dictionary::journal::quarantine_corrupt_journal;
106pub use user_dictionary::personal::{
107 edit_personal_dictionary, personal_dictionary_entries, validate_personal_dictionary_entry,
108 PersonalDictionaryPage,
109};
110pub use user_dictionary::replay::{replay as replay_user_dictionary, ReplayResult};
111pub use user_dictionary::reset::reset_learned_data;
112pub use user_dictionary::state::{
113 dictionary_state_revision, stage_dictionary_state, stream_dictionary_state,
114 DictionaryStateRecord, DEFAULT_MAXIMUM_RECORDS,
115};
116pub use wubi::code::phrase_code as wubi_phrase_code;
117
118pub use local::command::{valid_plugin_argument, EXTENDED_ARGUMENT_SYMBOLS};
119pub use local::date_time::LocalDateTime;
120pub use local::url;
121
122pub fn ensure_english_schema(path: &std::path::Path) -> Result<()> {
124 dictionary::english::ensure_english_schema(path)
125}
126
127pub fn flush_personal_learning() {
129 user_dictionary::ngram_store::flush_all()
130}
131
132pub fn shutdown() {
134 user_dictionary::ngram_store::shutdown()
135}
136
137pub fn close_cached_databases() {
139 user_dictionary::journal::close_cached_journals()
140}
141
142pub fn preload_japanese_dictionary(path: &std::path::Path, bytes: Box<[u8]>) -> bool {
144 japanese::decoder::JapaneseDictionary::preload(path, bytes)
145}
146
147pub fn unload_japanese_dictionary(path: &std::path::Path) {
149 japanese::decoder::JapaneseDictionary::unload(path);
150}
151
152pub fn release_japanese_dictionary_cache() {
156 japanese::decoder::JapaneseDictionary::release_shared();
157}
158
159pub fn release_idle_personal_models() {
161 user_dictionary::ngram_store::release_idle();
162}