use caprice::theme::{Theme, DEFAULT_THEME};
use caprice::{Caprice, CapriceCommand};
use crossterm::style::Color;
use std::thread;
use std::time::Duration;
fn main() {
let caprice = Caprice::new()
.set_prompt("!:") .disable_ctrl_c() .enable_alternate_screen()
.theme(Theme {
prompt_color: Color::Yellow,
..DEFAULT_THEME
})
.set_keywords(vec![
"some_token".to_owned(),
"some_other_token".to_owned(),
"exit".to_owned(), ])
.init();
let (tx, rx, caprice_handle) = caprice.run().unwrap();
loop {
if let Ok(token) = rx.recv() {
match token.as_str() {
"exit" => {
tx.send(CapriceCommand::Exit).unwrap();
caprice_handle
.join()
.expect("couldn't join thread")
.expect("Caprice run has encountered an error");
break; }
_ => {
let print_token = format!("Got {} from Caprice", token);
tx.send(CapriceCommand::Println(print_token)).unwrap();
}
}
}
thread::sleep(Duration::from_millis(10));
}
}