From 06dba7a78f1028c6104bfe0c8e49081db7f07e8d Mon Sep 17 00:00:00 2001 From: jojii Date: Wed, 7 Apr 2021 14:02:32 +0200 Subject: [PATCH] fix #3 --- src/main.rs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 6ed6365..3b8ec9d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,7 @@ -use std::io::{stdin, stdout, Write}; +use std::{ + io::{stdin, stdout, Write}, + thread::{self, JoinHandle}, +}; use argparse::{ArgumentParser, List, Print, Store, StoreTrue}; use colored::*; @@ -49,10 +52,21 @@ fn main() -> Result<(), ureq::Error> { loop { if options.kanji { // Open kanji page here - query.chars().into_iter().for_each(|kanji| { - webbrowser::open(&format!("https://jisho.org/search/{}%23kanji", kanji)) - .expect("Couldn't open browser"); - }); + let threads = query + .chars() + .into_iter() + .map(|kanji| { + let kanji = kanji.clone(); + thread::spawn(move || { + webbrowser::open(&format!("https://jisho.org/search/{}%23kanji", kanji)) + .expect("Couldn't open browser"); + }) + }) + .collect::>>(); + + for thread in threads { + thread.join().unwrap(); + } } else { // Do API request let body: Value = ureq::get(&format!(JISHO_URL!(), query))