use crossterm_utils::Result;
pub(crate) mod ansi;
#[cfg(windows)]
pub(crate) mod windows;
pub(crate) trait Cursor: Sync + Send {
fn goto(&self, x: u16, y: u16) -> Result<()>;
fn pos(&self) -> Result<(u16, u16)>;
fn move_up(&self, count: u16) -> Result<()>;
fn move_right(&self, count: u16) -> Result<()>;
fn move_down(&self, count: u16) -> Result<()>;
fn move_left(&self, count: u16) -> Result<()>;
fn save_position(&self) -> Result<()>;
fn restore_position(&self) -> Result<()>;
fn hide(&self) -> Result<()>;
fn show(&self) -> Result<()>;
fn blink(&self, blink: bool) -> Result<()>;
}