Skip to main content

rl_lang/interpreter/stdlib/terminal/
sync_output.rs

1use crate::interpreter::{
2    evaluator::Evaluator,
3    stdlib::common::{try_fn, verr, vnl, vok, vs},
4    values::Value,
5};
6use crossterm::{
7    execute,
8    terminal::{BeginSynchronizedUpdate, EndSynchronizedUpdate},
9};
10use std::io::stdout;
11
12pub fn std_term_begin_sync(_: &mut Evaluator) -> Value {
13    try_fn!(
14        "term_begin_sync",
15        execute!(stdout(), BeginSynchronizedUpdate)
16    );
17    vok!(vnl!())
18}
19
20pub fn std_term_end_sync(_: &mut Evaluator) -> Value {
21    try_fn!("term_end_sync", execute!(stdout(), EndSynchronizedUpdate));
22    vok!(vnl!())
23}