async_tty/commands/
cursor.rs

1use std::fmt;
2
3use crate::write_csi;
4
5pub struct CursorUp {
6    pub count: usize,
7}
8
9impl fmt::Display for CursorUp {
10    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
11        write_csi!(f, "{}A", self.count)
12    }
13}
14
15pub struct CursorDown {
16    pub count: usize,
17}
18
19impl fmt::Display for CursorDown {
20    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
21        write_csi!(f, "{}B", self.count)
22    }
23}
24
25pub struct CursorForward {
26    pub count: usize,
27}
28
29impl fmt::Display for CursorForward {
30    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
31        write_csi!(f, "{}C", self.count)
32    }
33}
34
35pub struct CursorBackward {
36    pub count: usize,
37}
38
39impl fmt::Display for CursorBackward {
40    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
41        write_csi!(f, "{}D", self.count)
42    }
43}
44
45pub struct CursorNextLine {
46    pub count: usize,
47}
48
49impl fmt::Display for CursorNextLine {
50    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
51        write_csi!(f, "{}E", self.count)
52    }
53}
54
55pub struct CursorPreviousLine {
56    pub count: usize,
57}
58
59impl fmt::Display for CursorPreviousLine {
60    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
61        write_csi!(f, "{}F", self.count)
62    }
63}
64
65pub struct CursorPosition {
66    pub row: usize,
67    pub column: usize,
68}
69
70impl fmt::Display for CursorPosition {
71    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
72        write_csi!(f, "{};{}H", self.row, self.column)
73    }
74}