From 37ec1729b81ea8a4b654fdff929029dff07c3de8 Mon Sep 17 00:00:00 2001 From: jojii Date: Sun, 7 Feb 2021 23:40:08 +0100 Subject: [PATCH] improve some 'error' handling --- src/main.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4094dfd..ccf2ad7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -47,30 +47,28 @@ fn main() -> Result<(), ureq::Error> { break; } - print_item(&query, entry); - println!(); + if print_item(&query, entry).is_some() && i + 1 != ITEM_LIMIT { + println!(); + } } Ok(()) } -fn print_item(query: &str, value: &Value) { - let japanese = value_to_arr(value.get("japanese").unwrap()) - .get(0) - .unwrap() - .to_owned(); +fn print_item(query: &str, value: &Value) -> Option<()> { + let japanese = value_to_arr(value.get("japanese")?).get(0)?.to_owned(); let reading = japanese .get("reading") .map(|i| value_to_str(i)) .unwrap_or(query); - let word = value_to_str(japanese.get("word").unwrap()); + let word = value_to_str(japanese.get("word")?); println!("{}[{}] {}", word, reading, format_result_tags(value)); // Print senses - let senses = value.get("senses").unwrap(); + let senses = value.get("senses")?; for (i, sense) in value_to_arr(senses).iter().enumerate() { let sense_str = format_sense(&sense, i); if sense_str.is_empty() { @@ -79,6 +77,8 @@ fn print_item(query: &str, value: &Value) { println!(" {}", sense_str); } + + Some(()) } fn format_sense(value: &Value, index: usize) -> String {