diff options
Diffstat (limited to 'src/app.rs')
| -rw-r--r-- | src/app.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/app.rs b/src/app.rs new file mode 100644 index 0000000..87caf62 --- /dev/null +++ b/src/app.rs @@ -0,0 +1,31 @@ +use std::io::{stdout, Stdout}; + +use rand::Rng; +use tokio::sync::mpsc::{channel, Receiver, Sender}; + +use crate::event::Event; + +pub struct App { + stdout: Stdout, + quote: Vec<String>, + event_tx: Sender<Event>, + event_rx: Receiver<Event>, +} + +impl App { + pub fn new(quotes: &[Vec<String>]) -> App { + let mut rng = rand::thread_rng(); + let chosen = rng.gen_range(0..quotes.len()); + let (event_tx, event_rx): (Sender<Event>, Receiver<Event>) = channel(10); + App { + stdout: stdout(), + quote: quotes[chosen].clone(), + event_rx, + event_tx, + } + } + + pub fn run() { + todo!() + } +} |
