use crossterm::cursor;
use crossterm::execute;
use crate::Result;
pub fn default() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::DefaultUserShape)
}
pub fn bar() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::SteadyBar)
}
pub fn blinking_bar() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::BlinkingBar)
}
pub fn block() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::SteadyBlock)
}
pub fn blinking_block() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::BlinkingBlock)
}
pub fn underscore() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::SteadyUnderScore)
}
pub fn blinking_underscore() -> Result<()>
{
set_cursor(cursor::SetCursorStyle::BlinkingUnderScore)
}
pub fn hide() -> Result<()>
{
execute!(
std::io::stdout(),
cursor::Hide
)?;
Ok(())
}
fn set_cursor(c: cursor::SetCursorStyle) -> Result<()>
{
execute!(
std::io::stdout(),
cursor::Show,
c
)?;
Ok(())
}