use anyhow::Result;
use crossterm::ExecutableCommand;
use crossterm::cursor::MoveTo;
use crossterm::terminal::{Clear, ClearType};
use std::io::stdout;
pub fn clean() -> Result<()> {
let mut stdout = stdout();
stdout.execute(Clear(ClearType::All))?;
stdout.execute(MoveTo(0, 0))?;
Ok(())
}
#[macro_export]
macro_rules! cprintln {
() => {
{
use std::io::stdout;
use crossterm::ExecutableCommand;
let mut stdout = stdout();
stdout.execute(MoveDown(1))?;
stdout.execute(MoveToColumn(0))?;
}
};
($($arg:tt)*) => {
{
use std::io::stdout;
use crossterm::{ExecutableCommand, style::Print};
let mut stdout = stdout();
let txt = format!($($arg)*);
stdout.execute(Print(txt))?;
stdout.execute(MoveDown(1))?;
stdout.execute(MoveToColumn(0))?;
}
};
}