diff options
-rw-r--r-- | src/codes.rs | 2 | ||||
-rw-r--r-- | src/lib.rs | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/codes.rs b/src/codes.rs index 2111df7..e397df8 100644 --- a/src/codes.rs +++ b/src/codes.rs @@ -46,6 +46,7 @@ pub enum SpecialCode { GotoXY(Option<u32>, Option<u32>), } +/// Write a X or Y goto symbol, as required fn write_goto_xy_sym<T: Write>(writer: &mut T, sym: char, value: Option<u32>) -> Result<usize> { let mut total = 0; if let Some(value) = value { @@ -55,6 +56,7 @@ fn write_goto_xy_sym<T: Write>(writer: &mut T, sym: char, value: Option<u32>) -> Ok(total) } +/// Write both X and/or Y goto symbol, as required fn write_goto_xy<T: Write>(writer: &mut T, x: Option<u32>, y: Option<u32>) -> Result<usize> { let mut total = 0; total += write_goto_xy_sym(writer, 'x', x)?; @@ -287,6 +287,18 @@ where pub fn large_font(&mut self) -> std::io::Result<()> { write_simple_code!(self, SpecialCode::LargeFont) } + + pub fn gotoxy(&mut self, x: u32, y: u32) -> std::io::Result<()> { + write_simple_code!(self, SpecialCode::GotoXY(Some(x), Some(y))) + } + + pub fn gotox(&mut self, x: u32) -> std::io::Result<()> { + write_simple_code!(self, SpecialCode::GotoXY(Some(x), None)) + } + + pub fn gotoy(&mut self, y: u32) -> std::io::Result<()> { + write_simple_code!(self, SpecialCode::GotoXY(None, Some(y))) + } } // Reimplement Write trait for Screen, so that user can call the write and |