1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// move_to(row, col) - Move cursor to specific position
///
/// Moves the cursor to the given (row, column) position (1-indexed).
///
/// # Examples
///
/// ```
/// use ransi::cursor::move_to;
///
/// println!("{}", move_to(5, 10));
/// println!("This text appears at (5, 10)");
/// ```
/// move_up(n) - Move cursor up by n rows
///
/// Moves the cursor up by the specified number of rows.
///
/// # Examples
///
/// ```
/// use ransi::cursor::move_up;
///
/// println!("Line 1");
/// println!("Line 2");
/// print!("{}", move_up(1));
/// println!("Overwritten!");
/// ```
/// move_down(n) - Move cursor down by n rows
///
/// Moves the cursor down by the specified number of rows.
///
/// # Examples
///
/// ```
/// use ransi::cursor::move_down;
///
/// print!("Top line");
/// print!("{}", move_down(2));
/// println!("This appears two lines below.");
/// ```
/// move_right(n) - Move cursor right by n columns
///
/// Moves the cursor right by the specified number of columns.
///
/// # Examples
///
/// ```
/// use ransi::cursor::move_right;
///
/// print!("Start");
/// print!("{}", move_right(10));
/// println!("Indented text");
/// ```
/// move_left(n) - Move cursor left by n columns
///
/// Moves the cursor left by the specified number of columns.
///
/// # Examples
///
/// ```
/// use ransi::cursor::move_left;
///
/// print!("1234567890");
/// print!("{}", move_left(5));
/// println!("X"); // Overwrites the '6'
/// ```
/// home() - Move cursor to top-left corner (1,1)
///
/// Moves the cursor to the very top-left of the screen.
///
/// # Examples
///
/// ```
/// use ransi::cursor::home;
///
/// println!("{}", home());
/// println!("Screen starts fresh here.");
/// ```
/// save_position() - Save the current cursor position
///
/// Saves the current cursor position so it can be restored later with `restore_position()`.
///
/// # Examples
///
/// ```
/// use ransi::cursor::{save_position, restore_position};
///
/// print!("{}", save_position());
/// println!("Moved away from here...");
/// print!("{}", restore_position());
/// ```
/// restore_position() - Restore the previously saved cursor position
///
/// Restores the cursor to the position saved by `save_position()`.
///
/// # Examples
///
/// ```
/// use ransi::cursor::{save_position, restore_position};
///
/// print!("{}", save_position());
/// println!("Moved away from here...");
/// print!("{}", restore_position());
/// println!("Back to saved spot!");
/// ```