aboutsummaryrefslogtreecommitdiffstats
path: root/src/cursor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cursor.rs')
-rw-r--r--src/cursor.rs20
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();
+ }
+}