2021-08-23 05:00:57 +02:00
|
|
|
#[derive(Clone, Copy, Eq, PartialEq)]
|
|
|
|
pub enum ListCursorMode {
|
|
|
|
Insert,
|
2022-06-19 23:13:21 +02:00
|
|
|
Select
|
2021-08-23 05:00:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Clone, Copy, Eq, PartialEq)]
|
|
|
|
pub struct ListCursor {
|
|
|
|
pub mode: ListCursorMode,
|
2022-06-19 23:13:21 +02:00
|
|
|
pub idx: Option<isize>,
|
2021-08-23 05:00:57 +02:00
|
|
|
}
|
|
|
|
|
2022-06-19 23:13:21 +02:00
|
|
|
impl ListCursor {
|
|
|
|
pub fn home() -> Self {
|
2021-08-23 05:00:57 +02:00
|
|
|
ListCursor {
|
2022-06-19 23:13:21 +02:00
|
|
|
mode: ListCursorMode::Insert,
|
|
|
|
idx: Some(0)
|
2021-08-23 05:00:57 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-06-19 23:13:21 +02:00
|
|
|
pub fn none() -> Self {
|
|
|
|
ListCursor {
|
|
|
|
mode: ListCursorMode::Insert,
|
|
|
|
idx: None,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-08-23 05:00:57 +02:00
|
|
|
|
2022-06-19 23:13:21 +02:00
|
|
|
impl Default for ListCursor {
|
|
|
|
fn default() -> Self {
|
|
|
|
ListCursor::none()
|
|
|
|
}
|
2021-08-23 05:00:57 +02:00
|
|
|
}
|
2022-06-19 23:13:21 +02:00
|
|
|
|