diff options
Diffstat (limited to 'src/cursor.rs')
| -rw-r--r-- | src/cursor.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/cursor.rs b/src/cursor.rs index 1ec23d5..959b15f 100644 --- a/src/cursor.rs +++ b/src/cursor.rs @@ -1,4 +1,4 @@ -use std::io::Write; +use std::io::{self, Write}; #[derive(Debug, Clone, Copy)] pub enum Direction { @@ -41,3 +41,21 @@ pub struct CursorPos { pub row: usize, pub col: usize, } + +impl Default for CursorPos { + fn default() -> Self { + Self { row: 1, col: 1 } + } +} + +impl CursorPos { + pub fn f_go_to(&self, stdout: &mut dyn Write) -> std::io::Result<()> { + write!(stdout, "\x1b[{};{}H", self.row, self.col) + } + + pub fn go_to(&self) { + let mut stdout = io::stdout().lock(); + self.f_go_to(&mut stdout).unwrap(); + stdout.flush().unwrap(); + } +} |
