console_utilities/
cursor.rs1use crate::console::flush_console;
2
3pub struct Visibility;
4
5impl Visibility {
6 pub fn show_cursor() {
7 print!("\x1B[?25h");
8 flush_console();
9 }
10
11 pub fn hide_cursor() {
12 print!("\x1B[?25l");
13 flush_console();
14 }
15}
16
17pub struct Move;
18
19impl Move {
20 pub fn cursor_up(num: i32) {
21 if num > 0 {
22 print!("\x1b[{}A", num);
23 flush_console();
24 }
25 }
26
27 pub fn cursor_down(num: i32) {
28 if num > 0 {
29 print!("\x1b[{}B", num);
30 flush_console();
31 }
32 }
33
34 pub fn cursor_left(num: i32) {
35 if num > 0 {
36 print!("\x1b[{}D", num);
37 flush_console();
38 }
39 }
40
41 pub fn cursor_right(num: i32) {
42 if num > 0 {
43 print!("\x1b[{}C", num);
44 flush_console();
45 }
46 }
47}