use crate::{
connection_mode::ConnectionMode,
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),
StoreStorageDrive(PathBuf, String),
StoreConnectionMode(ConnectionMode),
StorePortRange(u32, u32),
StoreRewardsAddress(String),
StoreNodesToStart(usize),
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 },
UpdateNodesCompleted,
SuccessfullyDetectedNatStatus,
ErrorWhileRunningNatDetection,
ErrorLoadingNodeRegistry { raw_error: String },
ErrorGettingNodeRegistryPath { raw_error: String },
ErrorScalingUpNodes { raw_error: String },
ErrorStoppingNodes { raw_error: String },
ErrorResettingNodes { raw_error: String },
ErrorUpdatingNodes { raw_error: String },
NodesStatsObtained(NodeStats),
TriggerManageNodes,
TriggerRewardsAddress,
TriggerNodeLogs,
PreviousTableItem,
NextTableItem,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
pub enum OptionsActions {
ResetNodes,
UpdateNodes,
TriggerChangeDrive,
TriggerChangeConnectionMode,
TriggerChangePortRange,
TriggerRewardsAddress,
TriggerUpdateNodes,
TriggerResetNodes,
TriggerAccessLogs,
UpdateConnectionMode(ConnectionMode),
UpdatePortRange(u32, u32),
UpdateRewardsAddress(String),
UpdateStorageDrive(PathBuf, String),
}