mod db; mod state; use crate::state::State; use crate::state::Threads; use std::io::{stdin, stdout}; use termion::raw::IntoRawMode; fn main() { let stdin = stdin(); let screen = stdout().into_raw_mode().unwrap(); // let screen = AlternateScreen::from(screen); // hide the cursor let mut screen = termion::cursor::HideCursor::from(screen); let mut threads = { // open database let db = crate::db::open(notmuch::DatabaseMode::ReadOnly).unwrap(); // get threads let query = db.create_query("tag:inbox").unwrap(); let threads = query.search_threads().unwrap(); Threads::from_query(Some(String::from("tag:inbox")), threads) }; threads.init(&mut screen); let state = State::Threads(threads); state.run(screen, stdin); }