use crate::{
mode::{InputMode, Scene},
node_stats::NodeStats,
};
use serde::{Deserialize, Serialize};
use std::path::PathBuf;
use strum::Display;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
pub enum Action {
StatusActions(StatusActions),
OptionsActions(OptionsActions),
SwitchScene(Scene),
SwitchInputMode(InputMode),
StoreDiscordUserName(String),
StoreNodesToStart(usize),
StoreStorageDrive(PathBuf, String),
Tick,
Render,
Resize(u16, u16),
Suspend,
Resume,
Quit,
Refresh,
Error(String),
Help,
Noop,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
pub enum StatusActions {
StartNodes,
StopNodes,
StartNodesCompleted,
StopNodesCompleted,
ResetNodesCompleted { trigger_start_node: bool },
SuccessfullyDetectedNatStatus,
ErrorWhileRunningNatDetection,
NodesStatsObtained(NodeStats),
TriggerManageNodes,
PreviousTableItem,
NextTableItem,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
pub enum OptionsActions {
ResetNodes,
TriggerChangeDrive,
TriggerBetaProgramme,
TriggerResetNodes,
TriggerAccessLogs,
UpdateBetaProgrammeUsername(String),
UpdateStorageDrive(PathBuf, String),
}