mod cursor;
mod ansi_cursor;
#[cfg(target_os = "windows")]
mod winapi_cursor;
use self::ansi_cursor::AnsiCursor;
#[cfg(target_os = "windows")]
use self::winapi_cursor::WinApiCursor;
pub use self::cursor::{cursor, TerminalCursor};
use super::functions;
use TerminalOutput;
use std::sync::Arc;
trait ITerminalCursor : Sync + Send {
fn goto(&self, x: u16, y: u16, stdout: &Arc<TerminalOutput>);
fn pos(&self, stdout: &Arc<TerminalOutput>) -> (u16, u16);
fn move_up(&self, count: u16, stdout: &Arc<TerminalOutput>);
fn move_right(&self, count: u16, stdout: &Arc<TerminalOutput>);
fn move_down(&self, count: u16, stdout: &Arc<TerminalOutput>);
fn move_left(&self, count: u16, stdout: &Arc<TerminalOutput>);
fn save_position(&self, stdout: &Arc<TerminalOutput>);
fn reset_position(&self, stdout: &Arc<TerminalOutput>);
fn hide(&self, stdout: &Arc<TerminalOutput>);
fn show(&self, stdout: &Arc<TerminalOutput>);
fn blink(&self, blink: bool, stdout: &Arc<TerminalOutput>);
}