use crossterm_utils::Result;
pub use self::cursor::{
cursor, BlinkOff, BlinkOn, Down, Goto, Hide, Left, ResetPos, Right, SavePos, Show,
TerminalCursor, Up,
};
mod cursor;
mod ansi_cursor;
#[cfg(windows)]
mod winapi_cursor;
trait ITerminalCursor: 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<()>;
}