1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
use ncurses::CURSOR_VISIBILITY;

pub enum CursorState {
    Visible,
    VeryVisible,
    Invisible,
}

fn get_curses_curs_visibility(vis: CursorState) -> CURSOR_VISIBILITY {
    use CursorState::*;
    use CURSOR_VISIBILITY::*;

    match vis {
        Visible => CURSOR_VISIBLE,
        Invisible => CURSOR_INVISIBLE,
        VeryVisible => CURSOR_VERY_VISIBLE,
    }
}

pub fn set_cursor(state: CursorState) {
    ncurses::curs_set(get_curses_curs_visibility(state));
}