diff options
Diffstat (limited to 'src/term.rs')
| -rw-r--r-- | src/term.rs | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/term.rs b/src/term.rs deleted file mode 100644 index 84449f4..0000000 --- a/src/term.rs +++ /dev/null @@ -1,32 +0,0 @@ -use anyhow::Result; -use crossterm::{ - cursor, queue, style, - terminal::{self, disable_raw_mode, enable_raw_mode, ClearType}, -}; -use std::io::{self, Stdout, Write}; - -pub fn clear_screen(keep_lines: u16) -> Result<()> { - enable_raw_mode()?; - let mut stdout = io::stdout(); - - let ret = clear_screen_inner(&mut stdout, keep_lines); - - // restore terminal - disable_raw_mode()?; - - ret -} - -fn clear_screen_inner(writer: &mut Stdout, keep_lines: u16) -> Result<()> { - let (_, h) = terminal::size()?; - queue!( - writer, - style::Print("\n".repeat((h - 2).into())), - terminal::ScrollUp(2), - cursor::MoveTo(0, 0), - terminal::Clear(ClearType::FromCursorDown), - terminal::ScrollUp(keep_lines), - )?; - writer.flush()?; - Ok(()) -} |
