Skip to main content

rl_lang/interpreter/stdlib/terminal/
poll.rs

1use crate::interpreter::stdlib::common::{extract_number, vb, verr, vok, vs};
2use crate::interpreter::{evaluator::Evaluator, values::Value};
3use crossterm::event::poll;
4use std::time::Duration;
5
6pub fn func(_: &mut Evaluator, arg: Value) -> Value {
7    let ms = match extract_number(arg, "ms") {
8        Ok(v) => v,
9        Err(e) => return verr!(vs!(e)),
10    };
11
12    let ready = match poll(Duration::from_millis(ms)) {
13        Ok(v) => v,
14        Err(e) => return verr!(vs!(format!("term_poll(): {}", e))),
15    };
16    vok!(vb!(ready))
17}