use std::time::Duration;
use crate::{Attribute, Clear, Color, Event};
pub enum Value {
TerminalSize,
CursorPosition,
Event(Option<Duration>),
}
pub enum Retrieved {
TerminalSize(u16, u16),
CursorPosition(u16, u16),
Event(Option<Event>),
}
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash)]
pub enum Action {
MoveCursorTo(u16, u16),
HideCursor,
ShowCursor,
EnableBlinking,
DisableBlinking,
ClearTerminal(Clear),
SetTerminalSize(u16, u16),
ScrollUp(u16),
ScrollDown(u16),
EnableRawMode,
DisableRawMode,
EnterAlternateScreen,
LeaveAlternateScreen,
EnableMouseCapture,
DisableMouseCapture,
SetForegroundColor(Color),
SetBackgroundColor(Color),
SetAttribute(Attribute),
ResetColor,
}
impl From<Action> for String {
fn from(action: Action) -> Self {
format!("{:?}", action)
}
}