diff options
Diffstat (limited to 'src/example.rs')
-rw-r--r-- | src/example.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/example.rs b/src/example.rs index c52cc8f..494ab73 100644 --- a/src/example.rs +++ b/src/example.rs @@ -4,16 +4,17 @@ use crate::charset::Charset; use crate::*; impl Example { - pub fn gen_furigana(&mut self, dict_idx: &DictIndex, overrides: &HashMap<String, String>) { + pub fn gen_furigana(&mut self, dict_idx: &DictIndex, overrides: &HashMap<String, String>) -> bool { use std::fmt::Write; if let Some(v) = overrides.get(&self.ja) { self.furigana = Some(v.to_string()); - return; + return true; } let mut remainder = self.ja.as_str(); let mut ret = String::new(); + let mut is_good = true; for word in self.expl.split(|c| c == ' ' || c == '~') { let (keb, reb) = expl_clean_word(word); @@ -34,7 +35,8 @@ impl Example { remainder = remainder.strip_prefix(c).unwrap(); new_word.push(c); } else { - eprintln!("!!!! Char {} is not in remainder !!!!", c); + is_good = false; + warn!("!!!! Char {} is not in remainder !!!!", c); } } let word = &new_word; @@ -49,11 +51,12 @@ impl Example { let ents = dict_idx.get(keb).map(|x| &x[..]).unwrap_or_default(); if let Some(ent) = ents .iter() - .find(|ent| ent.ent_seq == reb.strip_prefix('#').unwrap()) + .find(|ent| ent.ent_seq == reb.strip_prefix('#').unwrap().parse::<u64>().unwrap()) { ent.reb.as_str() } else { - println!("- entry id not found: {}", reb); + is_good = false; + warn!("- entry id not found: {}", reb); ret += &word; continue; } @@ -68,7 +71,8 @@ impl Example { if matches.len() == 1 { *matches.iter().next().unwrap() } else { - println!("- word without reb: {}", word); + is_good = false; + warn!("- word with {} reb: {}", matches.len(), word); ret += &word; continue; } @@ -170,10 +174,13 @@ impl Example { let re = regex::Regex::new(r#"\|\|\w+\]\]"#).unwrap(); let back_to_ja = re.replace_all(&ret, "").replace("[[", ""); if self.ja != back_to_ja { - eprintln!("!!!! {} != {}", self.ja, back_to_ja); + is_good = false; + error!("!!!! {} != {}", self.ja, back_to_ja); } self.furigana = Some(ret); + + is_good } pub fn furigana_markup(&self) -> String { |