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
use crate::update::UpdateStep; use crate::interface::InterfaceState; use termion::raw::RawTerminal; use std::io::StdoutLock; use crate::result::Result; #[derive(Copy, Clone, Eq, PartialEq)] pub struct CursorPosition { pub x: u16, pub y: u16, } impl CursorPosition { pub(crate) fn init(x: u16, y: u16) -> CursorPosition { CursorPosition { x, y } } } pub(crate) struct UpdateCursorStep { pub(crate) new_cursor: CursorPosition, } impl UpdateStep for UpdateCursorStep { fn do_update(&mut self, _stdout: &mut RawTerminal<StdoutLock>, state: &mut InterfaceState, _update_cursor: &mut CursorPosition) -> Result<()> { state.cursor = self.new_cursor; Ok(()) } }