From 4b58333fc2b7af434b1c29dbdef30de82621df54 Mon Sep 17 00:00:00 2001 From: Sarah Allen Date: Mon, 11 Jul 2022 19:03:34 -0700 Subject: [PATCH] new example displaying entry info with kanji and reading --- examples/kanji_info.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 examples/kanji_info.rs diff --git a/examples/kanji_info.rs b/examples/kanji_info.rs new file mode 100644 index 0000000..4180c5b --- /dev/null +++ b/examples/kanji_info.rs @@ -0,0 +1,39 @@ +/******************************************************************************* +* SPDX-License-Identifier: Apache-2.0 Refer to the file "LICENSE" for details. +* example illustrating how to access kanji and reading information for a word +*******************************************************************************/ +use jmdict::{KanjiElement, ReadingElement}; + +fn main() { + let input = "一日"; + let count = jmdict::entries() + .filter(|e| { + let mut result = false; + if e.kanji_elements().any(|k| k.text == input) { + result = true; + println!("--- entry #{} ---", e.number); + let kanji_elements: Vec = e.kanji_elements().map(|ke| ke).collect(); + for kanji in &kanji_elements { + println!("kanji element: {}", kanji.text); + println!(" priority: {:?}\n", kanji.priority); + } + + let reading_forms: Vec = e.reading_elements().map(|item| item).collect(); + for reading in reading_forms { + println!("reading_form: {}", reading.text); + println!(" priority: {:?}\n", reading.priority); + + for info in reading.infos() { + println!("info: {:?}", info); + } + } + + + // let sense = e.senses().next().unwrap().text; + + } + result + }) + .count(); + println!("{} entries for {}", count, input); +}