From 695024ae427eb5014457d42d832ba5e6ff233c64 Mon Sep 17 00:00:00 2001 From: Mroik Date: Mon, 27 Jan 2025 17:56:06 +0100 Subject: Move out of App the quote selection --- src/app.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/app.rs') diff --git a/src/app.rs b/src/app.rs index 7ba3da8..e5d0f25 100644 --- a/src/app.rs +++ b/src/app.rs @@ -7,7 +7,6 @@ use crossterm::{ terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}, ExecutableCommand, }; -use rand::Rng; use tokio::{ spawn, sync::mpsc::{channel, Receiver, Sender}, @@ -19,23 +18,27 @@ pub const TICK_RATE: u64 = 1000 / 20; pub struct App { stdout: Stdout, - quote: Vec, pub event_tx: Sender, event_rx: Receiver, running: bool, + quote: Vec, + current: (usize, usize), } impl App { - pub fn new(quotes: &[Vec]) -> App { - let mut rng = rand::thread_rng(); - let chosen = rng.gen_range(0..quotes.len()); + pub fn new(quote: String) -> App { let (event_tx, event_rx): (Sender, Receiver) = channel(10); App { stdout: stdout(), - quote: quotes[chosen].clone(), + quote: quote + .split_whitespace() + .filter(|s| !s.is_empty()) + .map(|s| s.to_string()) + .collect(), event_rx, event_tx, running: false, + current: (0, 0), } } @@ -75,8 +78,8 @@ impl App { async fn start_input_handler(ev: Sender, mut kill_switch: Receiver<()>) { loop { tokio::select! { - _ = handle_input(&ev) => (), - _ = kill_switch.recv() => return, + _ = handle_input(&ev) => (), + _ = kill_switch.recv() => return, } } } -- cgit v1.3