diff options
-rw-r--r-- | src/main.rs | 86 |
1 files changed, 44 insertions, 42 deletions
diff --git a/src/main.rs b/src/main.rs index 025ad83..332b91e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -79,7 +79,8 @@ impl Epub { ); }); let dirname = std::path::Path::new(&path).parent().unwrap(); - let paths: Vec<&str> = doc.root_element() + let paths: Vec<&str> = doc + .root_element() .children() .find(|n| n.has_tag_name("spine")) .unwrap() @@ -100,13 +101,14 @@ impl Epub { .unwrap() .descendants() .filter(|n| n.has_tag_name("navPoint")) - .map(|n| n.descendants() - .find(|n| n.has_tag_name("text")) - .unwrap() - .text() - .unwrap() - .to_string() - ) + .map(|n| { + n.descendants() + .find(|n| n.has_tag_name("text")) + .unwrap() + .text() + .unwrap() + .to_string() + }) .collect() } else if let Some(path) = id_path.get("toc.xhtml") { let xml = self.get_text(dirname.join(path).to_str().unwrap()); @@ -129,12 +131,16 @@ impl Epub { } }; - paths.into_iter().enumerate().map(|(i, path)| { - let title = titles.get(i).unwrap_or(&path.to_string()).to_string(); - let path = dirname.join(path).to_str().unwrap().to_string(); - (title, path) - }) - .collect() + paths + .into_iter() + .enumerate() + .map(|(i, path)| { + let title = + titles.get(i).unwrap_or(&path.to_string()).to_string(); + let path = dirname.join(path).to_str().unwrap().to_string(); + (title, path) + }) + .collect() } } @@ -255,7 +261,7 @@ impl Bk { } fn run_nav(&mut self, e: Event) { match e { - Event::Key(e) => match e.code { + Event::Key(e) => match e.code { KeyCode::Tab | KeyCode::Char('q') => self.mode = Mode::Read, KeyCode::Down | KeyCode::Char('j') => { if self.nav_idx < self.toc.len() - 1 { @@ -273,8 +279,8 @@ impl Bk { } KeyCode::Char('g') => self.nav_idx = 0, KeyCode::Char('G') => self.nav_idx = self.toc.len() - 1, - _ => () - } + _ => (), + }, Event::Mouse(e) => match e { MouseEvent::ScrollDown(_, _, _) => { if self.nav_idx < self.toc.len() - 1 { @@ -292,7 +298,7 @@ impl Bk { } _ => (), }, - _ => () + _ => (), } } fn run_read(&mut self, e: Event) -> bool { @@ -368,24 +374,28 @@ impl Bk { } fn render_nav(&self) { let mut stdout = stdout(); - queue!( - stdout, - terminal::Clear(terminal::ClearType::All), - ) - .unwrap(); + queue!(stdout, terminal::Clear(terminal::ClearType::All),).unwrap(); let end = std::cmp::min(self.rows, self.toc.len()); for i in 0..end { if i == self.nav_idx { - queue!(stdout, - cursor::MoveTo(0, i as u16), - Print(format!("{}{}{}", - Attribute::Reverse, - &self.toc[i].0, - Attribute::Reset))).unwrap(); + queue!( + stdout, + cursor::MoveTo(0, i as u16), + Print(format!( + "{}{}{}", + Attribute::Reverse, + &self.toc[i].0, + Attribute::Reset + )) + ) + .unwrap(); } else { - queue!(stdout, - cursor::MoveTo(0, i as u16), - Print(&self.toc[i].0)).unwrap(); + queue!( + stdout, + cursor::MoveTo(0, i as u16), + Print(&self.toc[i].0) + ) + .unwrap(); } } @@ -408,18 +418,10 @@ PageDown Right Space f l Page Down Home g Chapter Start End G Chapter End "#; - queue!( - stdout, - terminal::Clear(terminal::ClearType::All), - ) - .unwrap(); + queue!(stdout, terminal::Clear(terminal::ClearType::All),).unwrap(); for (i, line) in text.lines().enumerate() { - queue!( - stdout, - cursor::MoveTo(0, i as u16), - Print(line) - ).unwrap(); + queue!(stdout, cursor::MoveTo(0, i as u16), Print(line)).unwrap(); } stdout.flush().unwrap(); } |