pub struct TerminalCursor<'stdout> { /* fields omitted */ }
Struct that stores a platform-specific implementation for cursor related actions.
Check /examples/cursor
in the library for more specific examples.
extern crate crossterm;
use self::crossterm::cursor;
use self::crossterm::Screen;
let mut cursor = cursor();
cursor.goto(5,10);
cursor.show();
cursor.hide();
cursor.blink(true);
cursor.move_left(2);
When you want to use 'cursor' on 'alternate screen' use the Screen
type instead and pass it to the cursor::from_screen()
function.
By doing that cursor actions will be performed on the alternate screen.
Create new TerminalCursor
instance whereon cursor related actions can be performed.
Create a new instance of TerminalCursor
whereon cursor related actions could be preformed on the given output.
Note
Use this function when you want your terminal to operate with a specific output.
This could be useful when you have a screen which is in 'alternate mode'.
And you want your actions from the TerminalCursor
, created by this function, to operate on the 'alternate screen'.
let screen = Screen::default();
if let Ok(alternate) = screen.enable_alternate_modes(false) {
let terminal = TerminalCursor::from_output(&alternate.screen.stdout);
}
Goto some position (x,y) in the terminal.
let cursor = cursor();
cursor.goto(4,5);
Get current cursor position (x,y) in the terminal.
let cursor = cursor();
let (x,y) = cursor.pos();
Move the current cursor position n
times up.
let cursor = cursor();
cursor.move_up(3);
Move the current cursor position n
times right.
let cursor = cursor();
cursor.move_right(3);
Move the current cursor position n
times down.
let cursor = cursor();
cursor.move_down(3);
Move the current cursor position n
times left.
let cursor = cursor();
cursor.move_left(3);
Save cursor position for recall later.
Note that this position is stored program based not per instance of the Cursor
struct.
let cursor = cursor();
cursor.safe_position();
Return to saved cursor position
Note that this method reset to the position set by save_position()
and that this position is stored program based not per instance of the Cursor
struct.
let cursor = cursor();
cursor.reset_position();
Hide de cursor in the console.
let cursor = cursor();
cursor.hide();
Show the cursor in the console.
let cursor = cursor();
cursor.show();
Enable or disable blinking of the terminal.
Not all terminals are supporting this functionality. Windows versions lower than windows 10 also are not supporting this version.
let cursor = cursor();
cursor.blink(true);
cursor.blink(false);
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static