aboutsummaryrefslogtreecommitdiff
path: root/src/example.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/example.rs')
-rw-r--r--src/example.rs24
1 files changed, 7 insertions, 17 deletions
diff --git a/src/example.rs b/src/example.rs
index 7d20a28..c52cc8f 100644
--- a/src/example.rs
+++ b/src/example.rs
@@ -4,11 +4,7 @@ use crate::charset::Charset;
use crate::*;
impl Example {
- pub fn gen_furigana<'a>(
- &mut self,
- dict_idx: &DictIndex<'a>,
- overrides: &HashMap<String, String>,
- ) {
+ pub fn gen_furigana(&mut self, dict_idx: &DictIndex, overrides: &HashMap<String, String>) {
use std::fmt::Write;
if let Some(v) = overrides.get(&self.ja) {
@@ -51,13 +47,11 @@ impl Example {
let reb = match reb {
Some(reb) if reb.starts_with('#') => {
let ents = dict_idx.get(keb).map(|x| &x[..]).unwrap_or_default();
- if let Some(ent) = ents.iter().find(|ent| {
- let ent_seq = ent.children().find(|x| x.has_tag_name("ent_seq")).unwrap();
- ent_seq.text().unwrap().trim() == reb.strip_prefix('#').unwrap()
- }) {
- let r_ele = ent.children().find(|x| x.has_tag_name("r_ele")).unwrap();
- let reb = r_ele.children().find(|x| x.has_tag_name("reb")).unwrap();
- reb.text().unwrap().trim()
+ if let Some(ent) = ents
+ .iter()
+ .find(|ent| ent.ent_seq == reb.strip_prefix('#').unwrap())
+ {
+ ent.reb.as_str()
} else {
println!("- entry id not found: {}", reb);
ret += &word;
@@ -69,11 +63,7 @@ impl Example {
let ents = dict_idx.get(keb).map(|x| &x[..]).unwrap_or_default();
let matches = ents
.iter()
- .map(|ent| {
- let r_ele = ent.children().find(|x| x.has_tag_name("r_ele")).unwrap();
- let reb = r_ele.children().find(|x| x.has_tag_name("reb")).unwrap();
- reb.text().unwrap().trim()
- })
+ .map(|ent| ent.reb.as_str())
.collect::<HashSet<_>>();
if matches.len() == 1 {
*matches.iter().next().unwrap()