From 01a198b8ad42680c9333039c75317d1787120c78 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Sun, 24 May 2026 18:02:04 +0200 Subject: better multiline handling --- src/cursor.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/cursor.rs') 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(); + } +} -- cgit v1.2.3