diff --git a/CLAUDE.md b/CLAUDE.md index 6cb52d0..31ce91e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -16,8 +16,8 @@ cargo build --features ffi ## Project Structure -- `src/asr/` - ITN taggers (spoken to written, for ASR/STT post-processing) -- `src/tts/` - TN taggers (written to spoken, for TTS preprocessing) +- `src/itn/` - ITN taggers (spoken to written, Inverse Text Normalization) +- `src/tn/` - TN taggers (written to spoken, Text Normalization) - `src/custom_rules.rs` - User-defined custom normalization rules - `src/ffi.rs` - C FFI bindings for Swift/Python integration - `tests/` - Integration and extensive edge-case tests diff --git a/src/asr/de/cardinal.rs b/src/itn/de/cardinal.rs similarity index 100% rename from src/asr/de/cardinal.rs rename to src/itn/de/cardinal.rs diff --git a/src/asr/de/date.rs b/src/itn/de/date.rs similarity index 100% rename from src/asr/de/date.rs rename to src/itn/de/date.rs diff --git a/src/asr/de/decimal.rs b/src/itn/de/decimal.rs similarity index 100% rename from src/asr/de/decimal.rs rename to src/itn/de/decimal.rs diff --git a/src/asr/de/electronic.rs b/src/itn/de/electronic.rs similarity index 100% rename from src/asr/de/electronic.rs rename to src/itn/de/electronic.rs diff --git a/src/asr/de/fraction.rs b/src/itn/de/fraction.rs similarity index 100% rename from src/asr/de/fraction.rs rename to src/itn/de/fraction.rs diff --git a/src/asr/de/measure.rs b/src/itn/de/measure.rs similarity index 100% rename from src/asr/de/measure.rs rename to src/itn/de/measure.rs diff --git a/src/asr/de/mod.rs b/src/itn/de/mod.rs similarity index 100% rename from src/asr/de/mod.rs rename to src/itn/de/mod.rs diff --git a/src/asr/de/money.rs b/src/itn/de/money.rs similarity index 100% rename from src/asr/de/money.rs rename to src/itn/de/money.rs diff --git a/src/asr/de/ordinal.rs b/src/itn/de/ordinal.rs similarity index 100% rename from src/asr/de/ordinal.rs rename to src/itn/de/ordinal.rs diff --git a/src/asr/de/punctuation.rs b/src/itn/de/punctuation.rs similarity index 100% rename from src/asr/de/punctuation.rs rename to src/itn/de/punctuation.rs diff --git a/src/asr/de/telephone.rs b/src/itn/de/telephone.rs similarity index 100% rename from src/asr/de/telephone.rs rename to src/itn/de/telephone.rs diff --git a/src/asr/de/time.rs b/src/itn/de/time.rs similarity index 100% rename from src/asr/de/time.rs rename to src/itn/de/time.rs diff --git a/src/asr/de/whitelist.rs b/src/itn/de/whitelist.rs similarity index 100% rename from src/asr/de/whitelist.rs rename to src/itn/de/whitelist.rs diff --git a/src/asr/de/word.rs b/src/itn/de/word.rs similarity index 100% rename from src/asr/de/word.rs rename to src/itn/de/word.rs diff --git a/src/asr/en/cardinal.rs b/src/itn/en/cardinal.rs similarity index 100% rename from src/asr/en/cardinal.rs rename to src/itn/en/cardinal.rs diff --git a/src/asr/en/date.rs b/src/itn/en/date.rs similarity index 100% rename from src/asr/en/date.rs rename to src/itn/en/date.rs diff --git a/src/asr/en/decimal.rs b/src/itn/en/decimal.rs similarity index 100% rename from src/asr/en/decimal.rs rename to src/itn/en/decimal.rs diff --git a/src/asr/en/electronic.rs b/src/itn/en/electronic.rs similarity index 100% rename from src/asr/en/electronic.rs rename to src/itn/en/electronic.rs diff --git a/src/asr/en/measure.rs b/src/itn/en/measure.rs similarity index 100% rename from src/asr/en/measure.rs rename to src/itn/en/measure.rs diff --git a/src/asr/en/mod.rs b/src/itn/en/mod.rs similarity index 100% rename from src/asr/en/mod.rs rename to src/itn/en/mod.rs diff --git a/src/asr/en/money.rs b/src/itn/en/money.rs similarity index 100% rename from src/asr/en/money.rs rename to src/itn/en/money.rs diff --git a/src/asr/en/ordinal.rs b/src/itn/en/ordinal.rs similarity index 100% rename from src/asr/en/ordinal.rs rename to src/itn/en/ordinal.rs diff --git a/src/asr/en/punctuation.rs b/src/itn/en/punctuation.rs similarity index 100% rename from src/asr/en/punctuation.rs rename to src/itn/en/punctuation.rs diff --git a/src/asr/en/telephone.rs b/src/itn/en/telephone.rs similarity index 100% rename from src/asr/en/telephone.rs rename to src/itn/en/telephone.rs diff --git a/src/asr/en/time.rs b/src/itn/en/time.rs similarity index 100% rename from src/asr/en/time.rs rename to src/itn/en/time.rs diff --git a/src/asr/en/whitelist.rs b/src/itn/en/whitelist.rs similarity index 100% rename from src/asr/en/whitelist.rs rename to src/itn/en/whitelist.rs diff --git a/src/asr/en/word.rs b/src/itn/en/word.rs similarity index 100% rename from src/asr/en/word.rs rename to src/itn/en/word.rs diff --git a/src/asr/es/cardinal.rs b/src/itn/es/cardinal.rs similarity index 100% rename from src/asr/es/cardinal.rs rename to src/itn/es/cardinal.rs diff --git a/src/asr/es/date.rs b/src/itn/es/date.rs similarity index 100% rename from src/asr/es/date.rs rename to src/itn/es/date.rs diff --git a/src/asr/es/decimal.rs b/src/itn/es/decimal.rs similarity index 100% rename from src/asr/es/decimal.rs rename to src/itn/es/decimal.rs diff --git a/src/asr/es/electronic.rs b/src/itn/es/electronic.rs similarity index 100% rename from src/asr/es/electronic.rs rename to src/itn/es/electronic.rs diff --git a/src/asr/es/fraction.rs b/src/itn/es/fraction.rs similarity index 100% rename from src/asr/es/fraction.rs rename to src/itn/es/fraction.rs diff --git a/src/asr/es/measure.rs b/src/itn/es/measure.rs similarity index 100% rename from src/asr/es/measure.rs rename to src/itn/es/measure.rs diff --git a/src/asr/es/mod.rs b/src/itn/es/mod.rs similarity index 100% rename from src/asr/es/mod.rs rename to src/itn/es/mod.rs diff --git a/src/asr/es/money.rs b/src/itn/es/money.rs similarity index 100% rename from src/asr/es/money.rs rename to src/itn/es/money.rs diff --git a/src/asr/es/ordinal.rs b/src/itn/es/ordinal.rs similarity index 100% rename from src/asr/es/ordinal.rs rename to src/itn/es/ordinal.rs diff --git a/src/asr/es/punctuation.rs b/src/itn/es/punctuation.rs similarity index 100% rename from src/asr/es/punctuation.rs rename to src/itn/es/punctuation.rs diff --git a/src/asr/es/telephone.rs b/src/itn/es/telephone.rs similarity index 100% rename from src/asr/es/telephone.rs rename to src/itn/es/telephone.rs diff --git a/src/asr/es/time.rs b/src/itn/es/time.rs similarity index 100% rename from src/asr/es/time.rs rename to src/itn/es/time.rs diff --git a/src/asr/es/whitelist.rs b/src/itn/es/whitelist.rs similarity index 100% rename from src/asr/es/whitelist.rs rename to src/itn/es/whitelist.rs diff --git a/src/asr/es/word.rs b/src/itn/es/word.rs similarity index 100% rename from src/asr/es/word.rs rename to src/itn/es/word.rs diff --git a/src/asr/fr/cardinal.rs b/src/itn/fr/cardinal.rs similarity index 100% rename from src/asr/fr/cardinal.rs rename to src/itn/fr/cardinal.rs diff --git a/src/asr/fr/date.rs b/src/itn/fr/date.rs similarity index 100% rename from src/asr/fr/date.rs rename to src/itn/fr/date.rs diff --git a/src/asr/fr/decimal.rs b/src/itn/fr/decimal.rs similarity index 100% rename from src/asr/fr/decimal.rs rename to src/itn/fr/decimal.rs diff --git a/src/asr/fr/electronic.rs b/src/itn/fr/electronic.rs similarity index 100% rename from src/asr/fr/electronic.rs rename to src/itn/fr/electronic.rs diff --git a/src/asr/fr/measure.rs b/src/itn/fr/measure.rs similarity index 100% rename from src/asr/fr/measure.rs rename to src/itn/fr/measure.rs diff --git a/src/asr/fr/mod.rs b/src/itn/fr/mod.rs similarity index 100% rename from src/asr/fr/mod.rs rename to src/itn/fr/mod.rs diff --git a/src/asr/fr/money.rs b/src/itn/fr/money.rs similarity index 100% rename from src/asr/fr/money.rs rename to src/itn/fr/money.rs diff --git a/src/asr/fr/ordinal.rs b/src/itn/fr/ordinal.rs similarity index 100% rename from src/asr/fr/ordinal.rs rename to src/itn/fr/ordinal.rs diff --git a/src/asr/fr/punctuation.rs b/src/itn/fr/punctuation.rs similarity index 100% rename from src/asr/fr/punctuation.rs rename to src/itn/fr/punctuation.rs diff --git a/src/asr/fr/telephone.rs b/src/itn/fr/telephone.rs similarity index 100% rename from src/asr/fr/telephone.rs rename to src/itn/fr/telephone.rs diff --git a/src/asr/fr/time.rs b/src/itn/fr/time.rs similarity index 100% rename from src/asr/fr/time.rs rename to src/itn/fr/time.rs diff --git a/src/asr/fr/whitelist.rs b/src/itn/fr/whitelist.rs similarity index 100% rename from src/asr/fr/whitelist.rs rename to src/itn/fr/whitelist.rs diff --git a/src/asr/fr/word.rs b/src/itn/fr/word.rs similarity index 100% rename from src/asr/fr/word.rs rename to src/itn/fr/word.rs diff --git a/src/asr/hi/address.rs b/src/itn/hi/address.rs similarity index 100% rename from src/asr/hi/address.rs rename to src/itn/hi/address.rs diff --git a/src/asr/hi/cardinal.rs b/src/itn/hi/cardinal.rs similarity index 100% rename from src/asr/hi/cardinal.rs rename to src/itn/hi/cardinal.rs diff --git a/src/asr/hi/date.rs b/src/itn/hi/date.rs similarity index 100% rename from src/asr/hi/date.rs rename to src/itn/hi/date.rs diff --git a/src/asr/hi/decimal.rs b/src/itn/hi/decimal.rs similarity index 100% rename from src/asr/hi/decimal.rs rename to src/itn/hi/decimal.rs diff --git a/src/asr/hi/fraction.rs b/src/itn/hi/fraction.rs similarity index 100% rename from src/asr/hi/fraction.rs rename to src/itn/hi/fraction.rs diff --git a/src/asr/hi/measure.rs b/src/itn/hi/measure.rs similarity index 100% rename from src/asr/hi/measure.rs rename to src/itn/hi/measure.rs diff --git a/src/asr/hi/mod.rs b/src/itn/hi/mod.rs similarity index 100% rename from src/asr/hi/mod.rs rename to src/itn/hi/mod.rs diff --git a/src/asr/hi/money.rs b/src/itn/hi/money.rs similarity index 100% rename from src/asr/hi/money.rs rename to src/itn/hi/money.rs diff --git a/src/asr/hi/ordinal.rs b/src/itn/hi/ordinal.rs similarity index 100% rename from src/asr/hi/ordinal.rs rename to src/itn/hi/ordinal.rs diff --git a/src/asr/hi/telephone.rs b/src/itn/hi/telephone.rs similarity index 100% rename from src/asr/hi/telephone.rs rename to src/itn/hi/telephone.rs diff --git a/src/asr/hi/time.rs b/src/itn/hi/time.rs similarity index 100% rename from src/asr/hi/time.rs rename to src/itn/hi/time.rs diff --git a/src/asr/hi/whitelist.rs b/src/itn/hi/whitelist.rs similarity index 100% rename from src/asr/hi/whitelist.rs rename to src/itn/hi/whitelist.rs diff --git a/src/asr/hi/word.rs b/src/itn/hi/word.rs similarity index 100% rename from src/asr/hi/word.rs rename to src/itn/hi/word.rs diff --git a/src/asr/ja/cardinal.rs b/src/itn/ja/cardinal.rs similarity index 100% rename from src/asr/ja/cardinal.rs rename to src/itn/ja/cardinal.rs diff --git a/src/asr/ja/date.rs b/src/itn/ja/date.rs similarity index 100% rename from src/asr/ja/date.rs rename to src/itn/ja/date.rs diff --git a/src/asr/ja/decimal.rs b/src/itn/ja/decimal.rs similarity index 100% rename from src/asr/ja/decimal.rs rename to src/itn/ja/decimal.rs diff --git a/src/asr/ja/fraction.rs b/src/itn/ja/fraction.rs similarity index 100% rename from src/asr/ja/fraction.rs rename to src/itn/ja/fraction.rs diff --git a/src/asr/ja/mod.rs b/src/itn/ja/mod.rs similarity index 100% rename from src/asr/ja/mod.rs rename to src/itn/ja/mod.rs diff --git a/src/asr/ja/ordinal.rs b/src/itn/ja/ordinal.rs similarity index 100% rename from src/asr/ja/ordinal.rs rename to src/itn/ja/ordinal.rs diff --git a/src/asr/ja/time.rs b/src/itn/ja/time.rs similarity index 100% rename from src/asr/ja/time.rs rename to src/itn/ja/time.rs diff --git a/src/asr/mod.rs b/src/itn/mod.rs similarity index 100% rename from src/asr/mod.rs rename to src/itn/mod.rs diff --git a/src/asr/zh/cardinal.rs b/src/itn/zh/cardinal.rs similarity index 100% rename from src/asr/zh/cardinal.rs rename to src/itn/zh/cardinal.rs diff --git a/src/asr/zh/date.rs b/src/itn/zh/date.rs similarity index 100% rename from src/asr/zh/date.rs rename to src/itn/zh/date.rs diff --git a/src/asr/zh/decimal.rs b/src/itn/zh/decimal.rs similarity index 100% rename from src/asr/zh/decimal.rs rename to src/itn/zh/decimal.rs diff --git a/src/asr/zh/fraction.rs b/src/itn/zh/fraction.rs similarity index 100% rename from src/asr/zh/fraction.rs rename to src/itn/zh/fraction.rs diff --git a/src/asr/zh/mod.rs b/src/itn/zh/mod.rs similarity index 100% rename from src/asr/zh/mod.rs rename to src/itn/zh/mod.rs diff --git a/src/asr/zh/money.rs b/src/itn/zh/money.rs similarity index 100% rename from src/asr/zh/money.rs rename to src/itn/zh/money.rs diff --git a/src/asr/zh/ordinal.rs b/src/itn/zh/ordinal.rs similarity index 100% rename from src/asr/zh/ordinal.rs rename to src/itn/zh/ordinal.rs diff --git a/src/asr/zh/time.rs b/src/itn/zh/time.rs similarity index 100% rename from src/asr/zh/time.rs rename to src/itn/zh/time.rs diff --git a/src/asr/zh/whitelist.rs b/src/itn/zh/whitelist.rs similarity index 100% rename from src/asr/zh/whitelist.rs rename to src/itn/zh/whitelist.rs diff --git a/src/asr/zh/word.rs b/src/itn/zh/word.rs similarity index 100% rename from src/asr/zh/word.rs rename to src/itn/zh/word.rs diff --git a/src/lib.rs b/src/lib.rs index 18edb90..493997a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,14 +16,14 @@ //! assert_eq!(result, "200"); //! ``` -pub mod asr; pub mod custom_rules; -pub mod tts; +pub mod itn; +pub mod tn; #[cfg(feature = "ffi")] pub mod ffi; -use asr::en::{ +use itn::en::{ cardinal, date, decimal, electronic, measure, money, ordinal, punctuation, telephone, time, whitelist, word, }; @@ -178,41 +178,41 @@ fn try_fr_taggers(input: &str) -> Option { if let Some(result) = custom_rules::parse(input) { return Some(result); } - if let Some(result) = asr::fr::whitelist::parse(input) { + if let Some(result) = itn::fr::whitelist::parse(input) { return Some(result); } - if let Some(result) = asr::fr::punctuation::parse(input) { + if let Some(result) = itn::fr::punctuation::parse(input) { return Some(result); } - if let Some(result) = asr::fr::word::parse(input) { + if let Some(result) = itn::fr::word::parse(input) { return Some(result); } - if let Some(result) = asr::fr::time::parse(input) { + if let Some(result) = itn::fr::time::parse(input) { return Some(result); } - if let Some(result) = asr::fr::date::parse(input) { + if let Some(result) = itn::fr::date::parse(input) { return Some(result); } - if let Some(result) = asr::fr::money::parse(input) { + if let Some(result) = itn::fr::money::parse(input) { return Some(result); } - if let Some(result) = asr::fr::measure::parse(input) { + if let Some(result) = itn::fr::measure::parse(input) { return Some(result); } - if let Some(result) = asr::fr::electronic::parse(input) { + if let Some(result) = itn::fr::electronic::parse(input) { return Some(result); } - if let Some(result) = asr::fr::ordinal::parse(input) { + if let Some(result) = itn::fr::ordinal::parse(input) { return Some(result); } - if let Some(result) = asr::fr::decimal::parse(input) { + if let Some(result) = itn::fr::decimal::parse(input) { return Some(result); } - if let Some(num) = asr::fr::cardinal::parse(input) { + if let Some(num) = itn::fr::cardinal::parse(input) { return Some(num); } // Telephone last since it can match numbers - if let Some(result) = asr::fr::telephone::parse(input) { + if let Some(result) = itn::fr::telephone::parse(input) { return Some(result); } None @@ -229,7 +229,7 @@ fn try_fr_partial_cardinal(input: &str) -> Option { // Only convert the first token if it's a standalone number ≥ 10 let first = tokens[0]; let first_lower = first.to_lowercase(); - if let Some(num) = asr::fr::cardinal::words_to_number(&first_lower) { + if let Some(num) = itn::fr::cardinal::words_to_number(&first_lower) { if num >= 10 { return Some(format!("{} {}", num, tokens[1])); } @@ -263,41 +263,41 @@ fn try_de_taggers(input: &str) -> Option { if let Some(result) = custom_rules::parse(input) { return Some(result); } - if let Some(result) = asr::de::whitelist::parse(input) { + if let Some(result) = itn::de::whitelist::parse(input) { return Some(result); } - if let Some(result) = asr::de::punctuation::parse(input) { + if let Some(result) = itn::de::punctuation::parse(input) { return Some(result); } - if let Some(result) = asr::de::time::parse(input) { + if let Some(result) = itn::de::time::parse(input) { return Some(result); } - if let Some(result) = asr::de::date::parse(input) { + if let Some(result) = itn::de::date::parse(input) { return Some(result); } - if let Some(result) = asr::de::money::parse(input) { + if let Some(result) = itn::de::money::parse(input) { return Some(result); } - if let Some(result) = asr::de::measure::parse(input) { + if let Some(result) = itn::de::measure::parse(input) { return Some(result); } - if let Some(result) = asr::de::electronic::parse(input) { + if let Some(result) = itn::de::electronic::parse(input) { return Some(result); } - if let Some(result) = asr::de::ordinal::parse(input) { + if let Some(result) = itn::de::ordinal::parse(input) { return Some(result); } - if let Some(result) = asr::de::fraction::parse(input) { + if let Some(result) = itn::de::fraction::parse(input) { return Some(result); } - if let Some(result) = asr::de::decimal::parse(input) { + if let Some(result) = itn::de::decimal::parse(input) { return Some(result); } - if let Some(num) = asr::de::cardinal::parse(input) { + if let Some(num) = itn::de::cardinal::parse(input) { return Some(num); } // Telephone last since it can match digit sequences - if let Some(result) = asr::de::telephone::parse(input) { + if let Some(result) = itn::de::telephone::parse(input) { return Some(result); } None @@ -328,44 +328,44 @@ fn try_es_taggers(input: &str) -> Option { if let Some(result) = custom_rules::parse(input) { return Some(result); } - if let Some(result) = asr::es::whitelist::parse(input) { + if let Some(result) = itn::es::whitelist::parse(input) { return Some(result); } - if let Some(result) = asr::es::punctuation::parse(input) { + if let Some(result) = itn::es::punctuation::parse(input) { return Some(result); } - if let Some(result) = asr::es::word::parse(input) { + if let Some(result) = itn::es::word::parse(input) { return Some(result); } - if let Some(result) = asr::es::time::parse(input) { + if let Some(result) = itn::es::time::parse(input) { return Some(result); } - if let Some(result) = asr::es::date::parse(input) { + if let Some(result) = itn::es::date::parse(input) { return Some(result); } - if let Some(result) = asr::es::money::parse(input) { + if let Some(result) = itn::es::money::parse(input) { return Some(result); } - if let Some(result) = asr::es::measure::parse(input) { + if let Some(result) = itn::es::measure::parse(input) { return Some(result); } - if let Some(result) = asr::es::electronic::parse(input) { + if let Some(result) = itn::es::electronic::parse(input) { return Some(result); } - if let Some(result) = asr::es::ordinal::parse(input) { + if let Some(result) = itn::es::ordinal::parse(input) { return Some(result); } - if let Some(result) = asr::es::fraction::parse(input) { + if let Some(result) = itn::es::fraction::parse(input) { return Some(result); } - if let Some(result) = asr::es::decimal::parse(input) { + if let Some(result) = itn::es::decimal::parse(input) { return Some(result); } - if let Some(num) = asr::es::cardinal::parse(input) { + if let Some(num) = itn::es::cardinal::parse(input) { return Some(num); } // Telephone last since it can match digit sequences - if let Some(result) = asr::es::telephone::parse(input) { + if let Some(result) = itn::es::telephone::parse(input) { return Some(result); } None @@ -427,40 +427,40 @@ fn normalize_lang_hi(input: &str) -> String { let mut result = input; // 1. Whitelist (abbreviations: डॉक्टर→डॉ., etc.) - result = asr::hi::whitelist::process(&result); + result = itn::hi::whitelist::process(&result); // 2. Money (number + currency name → symbol + digits) - result = asr::hi::money::process(&result); + result = itn::hi::money::process(&result); // 3. Date (day + month [+ year], ranges, eras) - result = asr::hi::date::process(&result); + result = itn::hi::date::process(&result); // 4. Time (X बजे/घंटा + मिनट/सेकंड) // Before measure so "X घंटा Y मिनट" isn't caught as measure - result = asr::hi::time::process(&result); + result = itn::hi::time::process(&result); // 5. Measure (number + unit → digits + symbol) - result = asr::hi::measure::process(&result); + result = itn::hi::measure::process(&result); // 6. Fractions (X बटा Y, X सही Y बटा Z) - result = asr::hi::fraction::process(&result); + result = itn::hi::fraction::process(&result); // 7. Ordinal (Xवां, Xवीं, Xवें) - result = asr::hi::ordinal::process(&result); + result = itn::hi::ordinal::process(&result); // 8. Decimal (X दशमलव Y) - result = asr::hi::decimal::process(&result); + result = itn::hi::decimal::process(&result); // 9. Cardinal — convert compound number words (with scale words) and // single number words to Devanagari digits. Must run BEFORE // telephone/address so compound numbers like "एक सौ" are grouped. - result = asr::hi::cardinal::process(&result); + result = itn::hi::cardinal::process(&result); // 10. Telephone (digit-by-digit sequences ≥ 4 Devanagari digits) - result = asr::hi::telephone::process(&result); + result = itn::hi::telephone::process(&result); // 11. Address (digit-by-digit with हाइफ़न/बटा, comma-separated digits) - result = asr::hi::address::process(&result); + result = itn::hi::address::process(&result); result } @@ -477,22 +477,22 @@ fn normalize_lang_ja(input: &str) -> String { let mut result = input.to_string(); // 1. Fractions first (X分のY) — before time which also uses 分 - result = asr::ja::fraction::process(&result); + result = itn::ja::fraction::process(&result); // 2. Decimals (X点Y) — before cardinal swallows the kanji - result = asr::ja::decimal::process(&result); + result = itn::ja::decimal::process(&result); // 3. Dates (年月日, 世紀, 年代, weekdays, ranges) - result = asr::ja::date::process(&result); + result = itn::ja::date::process(&result); // 4. Time (時, 分) — after fractions to avoid 分の collision - result = asr::ja::time::process(&result); + result = itn::ja::time::process(&result); // 5. Ordinals (番目, 第) - result = asr::ja::ordinal::process(&result); + result = itn::ja::ordinal::process(&result); // 6. Cardinal — catch remaining standalone kanji number spans - result = asr::ja::cardinal::replace_kanji_numbers(&result); + result = itn::ja::cardinal::replace_kanji_numbers(&result); result } @@ -509,28 +509,28 @@ fn normalize_lang_zh(input: &str) -> String { let mut result = input.to_string(); // 1. Whitelist (abbreviation mappings) - result = asr::zh::whitelist::process(&result); + result = itn::zh::whitelist::process(&result); // 2. Money (before decimal to catch currency-specific decimal patterns like 一点五万美元) - result = asr::zh::money::process(&result); + result = itn::zh::money::process(&result); // 3. Fractions (X分之Y) — before time which also uses 分 - result = asr::zh::fraction::process(&result); + result = itn::zh::fraction::process(&result); // 4. Time (X点Y分, X分钟, X秒钟) — before decimal so 点 with 分/刻/半 isn't consumed as decimal - result = asr::zh::time::process(&result); + result = itn::zh::time::process(&result); // 5. Decimals (X点Y) - result = asr::zh::decimal::process(&result); + result = itn::zh::decimal::process(&result); // 6. Dates (年月日, 公元/纪元) - result = asr::zh::date::process(&result); + result = itn::zh::date::process(&result); // 7. Ordinals (第X) - result = asr::zh::ordinal::process(&result); + result = itn::zh::ordinal::process(&result); // 8. Cardinal — catch remaining standalone Chinese number spans - result = asr::zh::cardinal::replace_zh_numbers(&result); + result = itn::zh::cardinal::replace_zh_numbers(&result); result } @@ -556,204 +556,204 @@ fn tn_normalize_for_lang(input: &str, lang: &str) -> String { } fn tn_normalize_lang_fr(input: &str) -> String { - if let Some(r) = tts::fr::whitelist::parse(input) { + if let Some(r) = tn::fr::whitelist::parse(input) { return r; } - if let Some(r) = tts::fr::money::parse(input) { + if let Some(r) = tn::fr::money::parse(input) { return r; } - if let Some(r) = tts::fr::measure::parse(input) { + if let Some(r) = tn::fr::measure::parse(input) { return r; } - if let Some(r) = tts::fr::date::parse(input) { + if let Some(r) = tn::fr::date::parse(input) { return r; } - if let Some(r) = tts::fr::time::parse(input) { + if let Some(r) = tn::fr::time::parse(input) { return r; } - if let Some(r) = tts::fr::electronic::parse(input) { + if let Some(r) = tn::fr::electronic::parse(input) { return r; } - if let Some(r) = tts::fr::telephone::parse(input) { + if let Some(r) = tn::fr::telephone::parse(input) { return r; } - if let Some(r) = tts::fr::ordinal::parse(input) { + if let Some(r) = tn::fr::ordinal::parse(input) { return r; } - if let Some(r) = tts::fr::decimal::parse(input) { + if let Some(r) = tn::fr::decimal::parse(input) { return r; } - if let Some(r) = tts::fr::cardinal::parse(input) { + if let Some(r) = tn::fr::cardinal::parse(input) { return r; } input.to_string() } fn tn_normalize_lang_es(input: &str) -> String { - if let Some(r) = tts::es::whitelist::parse(input) { + if let Some(r) = tn::es::whitelist::parse(input) { return r; } - if let Some(r) = tts::es::money::parse(input) { + if let Some(r) = tn::es::money::parse(input) { return r; } - if let Some(r) = tts::es::measure::parse(input) { + if let Some(r) = tn::es::measure::parse(input) { return r; } - if let Some(r) = tts::es::date::parse(input) { + if let Some(r) = tn::es::date::parse(input) { return r; } - if let Some(r) = tts::es::time::parse(input) { + if let Some(r) = tn::es::time::parse(input) { return r; } - if let Some(r) = tts::es::electronic::parse(input) { + if let Some(r) = tn::es::electronic::parse(input) { return r; } - if let Some(r) = tts::es::telephone::parse(input) { + if let Some(r) = tn::es::telephone::parse(input) { return r; } - if let Some(r) = tts::es::ordinal::parse(input) { + if let Some(r) = tn::es::ordinal::parse(input) { return r; } - if let Some(r) = tts::es::decimal::parse(input) { + if let Some(r) = tn::es::decimal::parse(input) { return r; } - if let Some(r) = tts::es::cardinal::parse(input) { + if let Some(r) = tn::es::cardinal::parse(input) { return r; } input.to_string() } fn tn_normalize_lang_de(input: &str) -> String { - if let Some(r) = tts::de::whitelist::parse(input) { + if let Some(r) = tn::de::whitelist::parse(input) { return r; } - if let Some(r) = tts::de::money::parse(input) { + if let Some(r) = tn::de::money::parse(input) { return r; } - if let Some(r) = tts::de::measure::parse(input) { + if let Some(r) = tn::de::measure::parse(input) { return r; } - if let Some(r) = tts::de::date::parse(input) { + if let Some(r) = tn::de::date::parse(input) { return r; } - if let Some(r) = tts::de::time::parse(input) { + if let Some(r) = tn::de::time::parse(input) { return r; } - if let Some(r) = tts::de::electronic::parse(input) { + if let Some(r) = tn::de::electronic::parse(input) { return r; } - if let Some(r) = tts::de::telephone::parse(input) { + if let Some(r) = tn::de::telephone::parse(input) { return r; } - if let Some(r) = tts::de::ordinal::parse(input) { + if let Some(r) = tn::de::ordinal::parse(input) { return r; } - if let Some(r) = tts::de::decimal::parse(input) { + if let Some(r) = tn::de::decimal::parse(input) { return r; } - if let Some(r) = tts::de::cardinal::parse(input) { + if let Some(r) = tn::de::cardinal::parse(input) { return r; } input.to_string() } fn tn_normalize_lang_zh(input: &str) -> String { - if let Some(r) = tts::zh::whitelist::parse(input) { + if let Some(r) = tn::zh::whitelist::parse(input) { return r; } - if let Some(r) = tts::zh::money::parse(input) { + if let Some(r) = tn::zh::money::parse(input) { return r; } - if let Some(r) = tts::zh::measure::parse(input) { + if let Some(r) = tn::zh::measure::parse(input) { return r; } - if let Some(r) = tts::zh::date::parse(input) { + if let Some(r) = tn::zh::date::parse(input) { return r; } - if let Some(r) = tts::zh::time::parse(input) { + if let Some(r) = tn::zh::time::parse(input) { return r; } - if let Some(r) = tts::zh::electronic::parse(input) { + if let Some(r) = tn::zh::electronic::parse(input) { return r; } - if let Some(r) = tts::zh::telephone::parse(input) { + if let Some(r) = tn::zh::telephone::parse(input) { return r; } - if let Some(r) = tts::zh::ordinal::parse(input) { + if let Some(r) = tn::zh::ordinal::parse(input) { return r; } - if let Some(r) = tts::zh::decimal::parse(input) { + if let Some(r) = tn::zh::decimal::parse(input) { return r; } - if let Some(r) = tts::zh::cardinal::parse(input) { + if let Some(r) = tn::zh::cardinal::parse(input) { return r; } input.to_string() } fn tn_normalize_lang_hi(input: &str) -> String { - if let Some(r) = tts::hi::whitelist::parse(input) { + if let Some(r) = tn::hi::whitelist::parse(input) { return r; } - if let Some(r) = tts::hi::money::parse(input) { + if let Some(r) = tn::hi::money::parse(input) { return r; } - if let Some(r) = tts::hi::measure::parse(input) { + if let Some(r) = tn::hi::measure::parse(input) { return r; } - if let Some(r) = tts::hi::date::parse(input) { + if let Some(r) = tn::hi::date::parse(input) { return r; } - if let Some(r) = tts::hi::time::parse(input) { + if let Some(r) = tn::hi::time::parse(input) { return r; } - if let Some(r) = tts::hi::electronic::parse(input) { + if let Some(r) = tn::hi::electronic::parse(input) { return r; } - if let Some(r) = tts::hi::telephone::parse(input) { + if let Some(r) = tn::hi::telephone::parse(input) { return r; } - if let Some(r) = tts::hi::ordinal::parse(input) { + if let Some(r) = tn::hi::ordinal::parse(input) { return r; } - if let Some(r) = tts::hi::decimal::parse(input) { + if let Some(r) = tn::hi::decimal::parse(input) { return r; } - if let Some(r) = tts::hi::cardinal::parse(input) { + if let Some(r) = tn::hi::cardinal::parse(input) { return r; } input.to_string() } fn tn_normalize_lang_ja(input: &str) -> String { - if let Some(r) = tts::ja::whitelist::parse(input) { + if let Some(r) = tn::ja::whitelist::parse(input) { return r; } - if let Some(r) = tts::ja::money::parse(input) { + if let Some(r) = tn::ja::money::parse(input) { return r; } - if let Some(r) = tts::ja::measure::parse(input) { + if let Some(r) = tn::ja::measure::parse(input) { return r; } - if let Some(r) = tts::ja::date::parse(input) { + if let Some(r) = tn::ja::date::parse(input) { return r; } - if let Some(r) = tts::ja::time::parse(input) { + if let Some(r) = tn::ja::time::parse(input) { return r; } - if let Some(r) = tts::ja::electronic::parse(input) { + if let Some(r) = tn::ja::electronic::parse(input) { return r; } - if let Some(r) = tts::ja::telephone::parse(input) { + if let Some(r) = tn::ja::telephone::parse(input) { return r; } - if let Some(r) = tts::ja::ordinal::parse(input) { + if let Some(r) = tn::ja::ordinal::parse(input) { return r; } - if let Some(r) = tts::ja::decimal::parse(input) { + if let Some(r) = tn::ja::decimal::parse(input) { return r; } - if let Some(r) = tts::ja::cardinal::parse(input) { + if let Some(r) = tn::ja::cardinal::parse(input) { return r; } input.to_string() @@ -803,25 +803,25 @@ fn tn_parse_span_lang(span: &str, lang: &str) -> Option<(String, u8)> { match lang { "en" => { - try_lang_taggers!(tts::en); + try_lang_taggers!(tn::en); } "fr" => { - try_lang_taggers!(tts::fr); + try_lang_taggers!(tn::fr); } "es" => { - try_lang_taggers!(tts::es); + try_lang_taggers!(tn::es); } "de" => { - try_lang_taggers!(tts::de); + try_lang_taggers!(tn::de); } "zh" => { - try_lang_taggers!(tts::zh); + try_lang_taggers!(tn::zh); } "hi" => { - try_lang_taggers!(tts::hi); + try_lang_taggers!(tn::hi); } "ja" => { - try_lang_taggers!(tts::ja); + try_lang_taggers!(tn::ja); } _ => { return tn_parse_span(span); @@ -993,34 +993,34 @@ pub fn normalize_sentence_with_max_span(input: &str, max_span_tokens: usize) -> pub fn tn_normalize(input: &str) -> String { let input = input.trim(); - if let Some(result) = tts::en::whitelist::parse(input) { + if let Some(result) = tn::en::whitelist::parse(input) { return result; } - if let Some(result) = tts::en::money::parse(input) { + if let Some(result) = tn::en::money::parse(input) { return result; } - if let Some(result) = tts::en::measure::parse(input) { + if let Some(result) = tn::en::measure::parse(input) { return result; } - if let Some(result) = tts::en::date::parse(input) { + if let Some(result) = tn::en::date::parse(input) { return result; } - if let Some(result) = tts::en::time::parse(input) { + if let Some(result) = tn::en::time::parse(input) { return result; } - if let Some(result) = tts::en::electronic::parse(input) { + if let Some(result) = tn::en::electronic::parse(input) { return result; } - if let Some(result) = tts::en::telephone::parse(input) { + if let Some(result) = tn::en::telephone::parse(input) { return result; } - if let Some(result) = tts::en::ordinal::parse(input) { + if let Some(result) = tn::en::ordinal::parse(input) { return result; } - if let Some(result) = tts::en::decimal::parse(input) { + if let Some(result) = tn::en::decimal::parse(input) { return result; } - if let Some(result) = tts::en::cardinal::parse(input) { + if let Some(result) = tn::en::cardinal::parse(input) { return result; } @@ -1035,34 +1035,34 @@ fn tn_parse_span(span: &str) -> Option<(String, u8)> { return None; } - if let Some(result) = tts::en::whitelist::parse(span) { + if let Some(result) = tn::en::whitelist::parse(span) { return Some((result, 100)); } - if let Some(result) = tts::en::money::parse(span) { + if let Some(result) = tn::en::money::parse(span) { return Some((result, 95)); } - if let Some(result) = tts::en::measure::parse(span) { + if let Some(result) = tn::en::measure::parse(span) { return Some((result, 90)); } - if let Some(result) = tts::en::date::parse(span) { + if let Some(result) = tn::en::date::parse(span) { return Some((result, 88)); } - if let Some(result) = tts::en::time::parse(span) { + if let Some(result) = tn::en::time::parse(span) { return Some((result, 85)); } - if let Some(result) = tts::en::electronic::parse(span) { + if let Some(result) = tn::en::electronic::parse(span) { return Some((result, 82)); } - if let Some(result) = tts::en::telephone::parse(span) { + if let Some(result) = tn::en::telephone::parse(span) { return Some((result, 78)); } - if let Some(result) = tts::en::ordinal::parse(span) { + if let Some(result) = tn::en::ordinal::parse(span) { return Some((result, 75)); } - if let Some(result) = tts::en::decimal::parse(span) { + if let Some(result) = tn::en::decimal::parse(span) { return Some((result, 73)); } - if let Some(result) = tts::en::cardinal::parse(span) { + if let Some(result) = tn::en::cardinal::parse(span) { return Some((result, 70)); } diff --git a/src/tts/de/cardinal.rs b/src/tn/de/cardinal.rs similarity index 100% rename from src/tts/de/cardinal.rs rename to src/tn/de/cardinal.rs diff --git a/src/tts/de/date.rs b/src/tn/de/date.rs similarity index 100% rename from src/tts/de/date.rs rename to src/tn/de/date.rs diff --git a/src/tts/de/decimal.rs b/src/tn/de/decimal.rs similarity index 100% rename from src/tts/de/decimal.rs rename to src/tn/de/decimal.rs diff --git a/src/tts/de/electronic.rs b/src/tn/de/electronic.rs similarity index 100% rename from src/tts/de/electronic.rs rename to src/tn/de/electronic.rs diff --git a/src/tts/de/measure.rs b/src/tn/de/measure.rs similarity index 100% rename from src/tts/de/measure.rs rename to src/tn/de/measure.rs diff --git a/src/tts/de/mod.rs b/src/tn/de/mod.rs similarity index 100% rename from src/tts/de/mod.rs rename to src/tn/de/mod.rs diff --git a/src/tts/de/money.rs b/src/tn/de/money.rs similarity index 100% rename from src/tts/de/money.rs rename to src/tn/de/money.rs diff --git a/src/tts/de/ordinal.rs b/src/tn/de/ordinal.rs similarity index 100% rename from src/tts/de/ordinal.rs rename to src/tn/de/ordinal.rs diff --git a/src/tts/de/telephone.rs b/src/tn/de/telephone.rs similarity index 100% rename from src/tts/de/telephone.rs rename to src/tn/de/telephone.rs diff --git a/src/tts/de/time.rs b/src/tn/de/time.rs similarity index 100% rename from src/tts/de/time.rs rename to src/tn/de/time.rs diff --git a/src/tts/de/whitelist.rs b/src/tn/de/whitelist.rs similarity index 100% rename from src/tts/de/whitelist.rs rename to src/tn/de/whitelist.rs diff --git a/src/tts/en/cardinal.rs b/src/tn/en/cardinal.rs similarity index 100% rename from src/tts/en/cardinal.rs rename to src/tn/en/cardinal.rs diff --git a/src/tts/en/date.rs b/src/tn/en/date.rs similarity index 100% rename from src/tts/en/date.rs rename to src/tn/en/date.rs diff --git a/src/tts/en/decimal.rs b/src/tn/en/decimal.rs similarity index 100% rename from src/tts/en/decimal.rs rename to src/tn/en/decimal.rs diff --git a/src/tts/en/electronic.rs b/src/tn/en/electronic.rs similarity index 100% rename from src/tts/en/electronic.rs rename to src/tn/en/electronic.rs diff --git a/src/tts/en/measure.rs b/src/tn/en/measure.rs similarity index 100% rename from src/tts/en/measure.rs rename to src/tn/en/measure.rs diff --git a/src/tts/en/mod.rs b/src/tn/en/mod.rs similarity index 100% rename from src/tts/en/mod.rs rename to src/tn/en/mod.rs diff --git a/src/tts/en/money.rs b/src/tn/en/money.rs similarity index 100% rename from src/tts/en/money.rs rename to src/tn/en/money.rs diff --git a/src/tts/en/ordinal.rs b/src/tn/en/ordinal.rs similarity index 100% rename from src/tts/en/ordinal.rs rename to src/tn/en/ordinal.rs diff --git a/src/tts/en/telephone.rs b/src/tn/en/telephone.rs similarity index 100% rename from src/tts/en/telephone.rs rename to src/tn/en/telephone.rs diff --git a/src/tts/en/time.rs b/src/tn/en/time.rs similarity index 100% rename from src/tts/en/time.rs rename to src/tn/en/time.rs diff --git a/src/tts/en/whitelist.rs b/src/tn/en/whitelist.rs similarity index 100% rename from src/tts/en/whitelist.rs rename to src/tn/en/whitelist.rs diff --git a/src/tts/es/cardinal.rs b/src/tn/es/cardinal.rs similarity index 100% rename from src/tts/es/cardinal.rs rename to src/tn/es/cardinal.rs diff --git a/src/tts/es/date.rs b/src/tn/es/date.rs similarity index 100% rename from src/tts/es/date.rs rename to src/tn/es/date.rs diff --git a/src/tts/es/decimal.rs b/src/tn/es/decimal.rs similarity index 100% rename from src/tts/es/decimal.rs rename to src/tn/es/decimal.rs diff --git a/src/tts/es/electronic.rs b/src/tn/es/electronic.rs similarity index 100% rename from src/tts/es/electronic.rs rename to src/tn/es/electronic.rs diff --git a/src/tts/es/measure.rs b/src/tn/es/measure.rs similarity index 100% rename from src/tts/es/measure.rs rename to src/tn/es/measure.rs diff --git a/src/tts/es/mod.rs b/src/tn/es/mod.rs similarity index 100% rename from src/tts/es/mod.rs rename to src/tn/es/mod.rs diff --git a/src/tts/es/money.rs b/src/tn/es/money.rs similarity index 100% rename from src/tts/es/money.rs rename to src/tn/es/money.rs diff --git a/src/tts/es/ordinal.rs b/src/tn/es/ordinal.rs similarity index 100% rename from src/tts/es/ordinal.rs rename to src/tn/es/ordinal.rs diff --git a/src/tts/es/telephone.rs b/src/tn/es/telephone.rs similarity index 100% rename from src/tts/es/telephone.rs rename to src/tn/es/telephone.rs diff --git a/src/tts/es/time.rs b/src/tn/es/time.rs similarity index 100% rename from src/tts/es/time.rs rename to src/tn/es/time.rs diff --git a/src/tts/es/whitelist.rs b/src/tn/es/whitelist.rs similarity index 100% rename from src/tts/es/whitelist.rs rename to src/tn/es/whitelist.rs diff --git a/src/tts/fr/cardinal.rs b/src/tn/fr/cardinal.rs similarity index 100% rename from src/tts/fr/cardinal.rs rename to src/tn/fr/cardinal.rs diff --git a/src/tts/fr/date.rs b/src/tn/fr/date.rs similarity index 100% rename from src/tts/fr/date.rs rename to src/tn/fr/date.rs diff --git a/src/tts/fr/decimal.rs b/src/tn/fr/decimal.rs similarity index 100% rename from src/tts/fr/decimal.rs rename to src/tn/fr/decimal.rs diff --git a/src/tts/fr/electronic.rs b/src/tn/fr/electronic.rs similarity index 100% rename from src/tts/fr/electronic.rs rename to src/tn/fr/electronic.rs diff --git a/src/tts/fr/measure.rs b/src/tn/fr/measure.rs similarity index 100% rename from src/tts/fr/measure.rs rename to src/tn/fr/measure.rs diff --git a/src/tts/fr/mod.rs b/src/tn/fr/mod.rs similarity index 100% rename from src/tts/fr/mod.rs rename to src/tn/fr/mod.rs diff --git a/src/tts/fr/money.rs b/src/tn/fr/money.rs similarity index 100% rename from src/tts/fr/money.rs rename to src/tn/fr/money.rs diff --git a/src/tts/fr/ordinal.rs b/src/tn/fr/ordinal.rs similarity index 100% rename from src/tts/fr/ordinal.rs rename to src/tn/fr/ordinal.rs diff --git a/src/tts/fr/telephone.rs b/src/tn/fr/telephone.rs similarity index 100% rename from src/tts/fr/telephone.rs rename to src/tn/fr/telephone.rs diff --git a/src/tts/fr/time.rs b/src/tn/fr/time.rs similarity index 100% rename from src/tts/fr/time.rs rename to src/tn/fr/time.rs diff --git a/src/tts/fr/whitelist.rs b/src/tn/fr/whitelist.rs similarity index 100% rename from src/tts/fr/whitelist.rs rename to src/tn/fr/whitelist.rs diff --git a/src/tts/hi/cardinal.rs b/src/tn/hi/cardinal.rs similarity index 100% rename from src/tts/hi/cardinal.rs rename to src/tn/hi/cardinal.rs diff --git a/src/tts/hi/date.rs b/src/tn/hi/date.rs similarity index 100% rename from src/tts/hi/date.rs rename to src/tn/hi/date.rs diff --git a/src/tts/hi/decimal.rs b/src/tn/hi/decimal.rs similarity index 100% rename from src/tts/hi/decimal.rs rename to src/tn/hi/decimal.rs diff --git a/src/tts/hi/electronic.rs b/src/tn/hi/electronic.rs similarity index 100% rename from src/tts/hi/electronic.rs rename to src/tn/hi/electronic.rs diff --git a/src/tts/hi/measure.rs b/src/tn/hi/measure.rs similarity index 100% rename from src/tts/hi/measure.rs rename to src/tn/hi/measure.rs diff --git a/src/tts/hi/mod.rs b/src/tn/hi/mod.rs similarity index 100% rename from src/tts/hi/mod.rs rename to src/tn/hi/mod.rs diff --git a/src/tts/hi/money.rs b/src/tn/hi/money.rs similarity index 100% rename from src/tts/hi/money.rs rename to src/tn/hi/money.rs diff --git a/src/tts/hi/ordinal.rs b/src/tn/hi/ordinal.rs similarity index 100% rename from src/tts/hi/ordinal.rs rename to src/tn/hi/ordinal.rs diff --git a/src/tts/hi/telephone.rs b/src/tn/hi/telephone.rs similarity index 100% rename from src/tts/hi/telephone.rs rename to src/tn/hi/telephone.rs diff --git a/src/tts/hi/time.rs b/src/tn/hi/time.rs similarity index 100% rename from src/tts/hi/time.rs rename to src/tn/hi/time.rs diff --git a/src/tts/hi/whitelist.rs b/src/tn/hi/whitelist.rs similarity index 100% rename from src/tts/hi/whitelist.rs rename to src/tn/hi/whitelist.rs diff --git a/src/tts/ja/cardinal.rs b/src/tn/ja/cardinal.rs similarity index 100% rename from src/tts/ja/cardinal.rs rename to src/tn/ja/cardinal.rs diff --git a/src/tts/ja/date.rs b/src/tn/ja/date.rs similarity index 100% rename from src/tts/ja/date.rs rename to src/tn/ja/date.rs diff --git a/src/tts/ja/decimal.rs b/src/tn/ja/decimal.rs similarity index 100% rename from src/tts/ja/decimal.rs rename to src/tn/ja/decimal.rs diff --git a/src/tts/ja/electronic.rs b/src/tn/ja/electronic.rs similarity index 100% rename from src/tts/ja/electronic.rs rename to src/tn/ja/electronic.rs diff --git a/src/tts/ja/measure.rs b/src/tn/ja/measure.rs similarity index 100% rename from src/tts/ja/measure.rs rename to src/tn/ja/measure.rs diff --git a/src/tts/ja/mod.rs b/src/tn/ja/mod.rs similarity index 100% rename from src/tts/ja/mod.rs rename to src/tn/ja/mod.rs diff --git a/src/tts/ja/money.rs b/src/tn/ja/money.rs similarity index 100% rename from src/tts/ja/money.rs rename to src/tn/ja/money.rs diff --git a/src/tts/ja/ordinal.rs b/src/tn/ja/ordinal.rs similarity index 100% rename from src/tts/ja/ordinal.rs rename to src/tn/ja/ordinal.rs diff --git a/src/tts/ja/telephone.rs b/src/tn/ja/telephone.rs similarity index 100% rename from src/tts/ja/telephone.rs rename to src/tn/ja/telephone.rs diff --git a/src/tts/ja/time.rs b/src/tn/ja/time.rs similarity index 100% rename from src/tts/ja/time.rs rename to src/tn/ja/time.rs diff --git a/src/tts/ja/whitelist.rs b/src/tn/ja/whitelist.rs similarity index 100% rename from src/tts/ja/whitelist.rs rename to src/tn/ja/whitelist.rs diff --git a/src/tts/mod.rs b/src/tn/mod.rs similarity index 100% rename from src/tts/mod.rs rename to src/tn/mod.rs diff --git a/src/tts/zh/cardinal.rs b/src/tn/zh/cardinal.rs similarity index 100% rename from src/tts/zh/cardinal.rs rename to src/tn/zh/cardinal.rs diff --git a/src/tts/zh/date.rs b/src/tn/zh/date.rs similarity index 100% rename from src/tts/zh/date.rs rename to src/tn/zh/date.rs diff --git a/src/tts/zh/decimal.rs b/src/tn/zh/decimal.rs similarity index 100% rename from src/tts/zh/decimal.rs rename to src/tn/zh/decimal.rs diff --git a/src/tts/zh/electronic.rs b/src/tn/zh/electronic.rs similarity index 100% rename from src/tts/zh/electronic.rs rename to src/tn/zh/electronic.rs diff --git a/src/tts/zh/measure.rs b/src/tn/zh/measure.rs similarity index 100% rename from src/tts/zh/measure.rs rename to src/tn/zh/measure.rs diff --git a/src/tts/zh/mod.rs b/src/tn/zh/mod.rs similarity index 100% rename from src/tts/zh/mod.rs rename to src/tn/zh/mod.rs diff --git a/src/tts/zh/money.rs b/src/tn/zh/money.rs similarity index 100% rename from src/tts/zh/money.rs rename to src/tn/zh/money.rs diff --git a/src/tts/zh/ordinal.rs b/src/tn/zh/ordinal.rs similarity index 100% rename from src/tts/zh/ordinal.rs rename to src/tn/zh/ordinal.rs diff --git a/src/tts/zh/telephone.rs b/src/tn/zh/telephone.rs similarity index 100% rename from src/tts/zh/telephone.rs rename to src/tn/zh/telephone.rs diff --git a/src/tts/zh/time.rs b/src/tn/zh/time.rs similarity index 100% rename from src/tts/zh/time.rs rename to src/tn/zh/time.rs diff --git a/src/tts/zh/whitelist.rs b/src/tn/zh/whitelist.rs similarity index 100% rename from src/tts/zh/whitelist.rs rename to src/tn/zh/whitelist.rs diff --git a/tests/extensive_tests.rs b/tests/extensive_tests.rs index fb89620..c369cfc 100644 --- a/tests/extensive_tests.rs +++ b/tests/extensive_tests.rs @@ -1453,7 +1453,7 @@ fn test_number_to_words_i64_min() { // through the telephone tagger (the "-" is treated as a separator). // i64::MIN = -9223372036854775808: negating overflows i64 but our fix // uses wrapping_neg + u64 to handle it safely. - use text_processing_rs::tts::en::number_to_words; + use text_processing_rs::tn::en::number_to_words; let result = number_to_words(i64::MIN); assert!(