pub mod autocorrect;
pub mod autosuggest;
pub mod definitions;
pub mod engine;
#[cfg(feature = "wasm")]
pub mod wasm;
pub use autocorrect::{
build_loanword_bytes, is_loanword_key, roman_repair_beam, roman_repaired_outputs,
weighted_edit_distance, AutocorrectConfig, AutocorrectDecision, AutocorrectEngine,
CandidateFeatures, CorrectionCandidate, CorrectionRequest, CorrectionSource, EditCost,
FstCandidate, FstCandidateSource, FstLexicon, FstLoanwordMatch, FstRepairedBaseline,
FstSuggestError, FstSuggestOptions, FstSuggestResult, Lexicon, LexiconArtifactError,
LexiconEntry, LexiconStats, LoanwordArtifactError, LoanwordEntry, LoanwordLexicon,
LoanwordMatch, LoanwordSearchOptions, LoanwordSuggestion, LoanwordSuggestionKind, RomanRepair,
RomanRepairKind, RomanRepairOptions, RomanRepairedOutput, AUTOCORRECT_FEATURE_DIM,
DEFAULT_FST_MAX_DISTANCE, DEFAULT_FST_PREFIX_CANDIDATES, DEFAULT_LOANWORD_FUZZY_CANDIDATES,
DEFAULT_ROMAN_REPAIR_BEAM_SIZE, FST_MAX_LEVENSHTEIN_DISTANCE, LOANWORD_FUZZY_MAX_DISTANCE,
};
#[cfg(not(target_arch = "wasm32"))]
pub use autosuggest::AutosuggestLoadError;
pub use autosuggest::{
materialize_generated_candidates_into, materialize_merged_candidates_into,
materialize_scored_union_candidates_into, merge_static_and_generated_candidates_into,
rerank_candidate_ids_with_fixed_scores_into, rerank_candidate_ids_with_scores_into,
scored_union_static_and_generated_candidates_into, scorer_candidate_i32s_for_candidates_into,
scorer_candidate_ids_for_candidates_into, AutosuggestArtifactError, AutosuggestCandidate,
AutosuggestCandidateId, AutosuggestCandidatePrior, AutosuggestContext,
AutosuggestContextPriorMetadata, AutosuggestContextPriorOptions,
AutosuggestGeneratedCandidateId, AutosuggestGeneratorCompatibility, AutosuggestGeneratorFile,
AutosuggestGeneratorHandoff, AutosuggestGeneratorHandoffError, AutosuggestGeneratorManifest,
AutosuggestGeneratorManifestError, AutosuggestGeneratorMergeOptions,
AutosuggestGeneratorMergedQuality, AutosuggestGeneratorModel, AutosuggestGeneratorNgram,
AutosuggestGeneratorQuality, AutosuggestGeneratorQualityMetrics,
AutosuggestGeneratorRuntimeContract, AutosuggestGeneratorScoredUnionPolicy,
AutosuggestGeneratorScoredUnionQuality, AutosuggestGeneratorSession, AutosuggestLm,
AutosuggestMaterializedGeneratedCandidate, AutosuggestMaterializedMergedCandidate,
AutosuggestMaterializedScoredCandidate, AutosuggestMaterializedScoredUnionCandidate,
AutosuggestMergedCandidateId, AutosuggestMergedCandidateSource, AutosuggestMetadata,
AutosuggestModelInfo, AutosuggestOptions, AutosuggestRerankError,
AutosuggestRerankInputMetadata, AutosuggestRerankOptions, AutosuggestResult,
AutosuggestScoredCandidateId, AutosuggestScoredUnionCandidateId,
AutosuggestScorerCompatibility, AutosuggestScorerFile, AutosuggestScorerHandoff,
AutosuggestScorerHandoffError, AutosuggestScorerManifest, AutosuggestScorerManifestError,
AutosuggestScorerModel, AutosuggestScorerNgram, AutosuggestScorerQuality,
AutosuggestScorerQualityMetrics, AutosuggestScorerRuntimeContract, AutosuggestScorerSession,
AutosuggestSession, AutosuggestSource, PersonalAutosuggest, PersonalAutosuggestConfig,
PersonalAutosuggestContext, PersonalAutosuggestError, PersonalAutosuggestSnapshotError,
PersonalAutosuggestSuggestion, PersonalAutosuggestTextSuggestion, AUTOSUGGEST_ARTIFACT_KIND,
AUTOSUGGEST_BOS_I32, AUTOSUGGEST_BOS_ID, AUTOSUGGEST_GENERATOR_COREML_INPUT_DTYPE,
AUTOSUGGEST_GENERATOR_MANIFEST_VERSION, AUTOSUGGEST_GENERATOR_ONNX_INPUT_DTYPE,
AUTOSUGGEST_GENERATOR_PACKAGE_KIND, AUTOSUGGEST_GENERATOR_RUNTIME_ROLE,
AUTOSUGGEST_GENERATOR_SCORE_DTYPE, AUTOSUGGEST_GENERATOR_TOKEN_ID_DTYPE, AUTOSUGGEST_PAD_I32,
AUTOSUGGEST_PAD_ID, AUTOSUGGEST_SCORER_COREML_INPUT_DTYPE, AUTOSUGGEST_SCORER_MANIFEST_VERSION,
AUTOSUGGEST_SCORER_ONNX_INPUT_DTYPE, AUTOSUGGEST_SCORER_PACKAGE_KIND,
AUTOSUGGEST_SCORER_RUNTIME_ROLE, AUTOSUGGEST_SCORER_SCORE_DTYPE,
AUTOSUGGEST_SCORER_TOKEN_ID_DTYPE, AUTOSUGGEST_UNK_I32, AUTOSUGGEST_UNK_ID,
DEFAULT_AUTOSUGGEST_CANDIDATES, DEFAULT_AUTOSUGGEST_GENERATOR_LOCKED_STATIC_PREFIX,
DEFAULT_AUTOSUGGEST_RERANK_LOCKED_PREFIX, DEFAULT_AUTOSUGGEST_RERANK_RANK_PENALTY,
DEFAULT_PERSONAL_AUTOSUGGEST_ENTRIES, DEFAULT_PERSONAL_AUTOSUGGEST_MIN_COUNT,
MAX_AUTOSUGGEST_CONTEXT_TOKENS, MAX_AUTOSUGGEST_RERANK_CONTEXT_TOKENS,
};
#[cfg(not(target_arch = "wasm32"))]
pub use autosuggest::{
AutosuggestGeneratorAsset, AutosuggestGeneratorAssetReport, AutosuggestScorerAsset,
AutosuggestScorerAssetReport,
};
pub use engine::{PhoneticUnit, PhoneticUnitType, Token, TokenType, Tokenizer};
pub use engine::{SanitizeResult, Sanitizer};
#[cfg(feature = "wasm")]
pub use wasm::ObadhaWasm;
pub struct ObadhEngine {
transliterator: engine::Transliterator,
}
impl ObadhEngine {
pub fn new() -> Self {
Self {
transliterator: engine::Transliterator::new(),
}
}
pub fn transliterate(&self, text: &str) -> String {
self.transliterator.transliterate(text)
}
pub fn transliterate_lenient(&self, text: &str) -> String {
self.transliterator.transliterate_lenient(text)
}
pub fn sanitize(&self, text: &str) -> SanitizeResult {
self.transliterator.sanitize(text)
}
pub fn tokenize(&self, text: &str) -> Vec<Token> {
self.transliterator.tokenize(text)
}
pub fn transliterate_tokens(&self, tokens: &[Token]) -> String {
self.transliterator.transliterate_tokens(tokens)
}
pub fn transliterate_token_at(&self, tokens: &[Token], index: usize) -> Option<String> {
self.transliterator.transliterate_token_at(tokens, index)
}
pub fn tokenize_phonetic(&self, word: &str) -> Vec<PhoneticUnit> {
self.transliterator.tokenize_phonetic(word)
}
pub fn tokenize_phonetic_into(&self, word: &str, units: &mut Vec<PhoneticUnit>) {
self.transliterator.tokenize_phonetic_into(word, units);
}
pub fn get_tokenizer(&self) -> Tokenizer {
Tokenizer::new()
}
pub fn autocorrect_request(&self, roman_input: &str) -> CorrectionRequest {
let output = self.transliterate(roman_input);
CorrectionRequest::new(output.clone())
.with_roman_input(roman_input)
.with_obadh_output(output)
}
}
impl Default for ObadhEngine {
fn default() -> Self {
Self::new()
}
}