1use crate::upnp::UpnpSupport;
10use crate::{
11 connection_mode::ConnectionMode,
12 mode::{InputMode, Scene},
13 node_stats::NodeStats,
14};
15use serde::{Deserialize, Serialize};
16use std::path::PathBuf;
17use strum::Display;
18
19#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
20pub enum Action {
21 StatusActions(StatusActions),
22 OptionsActions(OptionsActions),
23
24 SwitchScene(Scene),
25 SwitchInputMode(InputMode),
26
27 StoreStorageDrive(PathBuf, String),
28 StoreConnectionMode(ConnectionMode),
29 StorePortRange(u32, u32),
30 StoreRewardsAddress(String),
31 StoreNodesToStart(usize),
32
33 SetUpnpSupport(UpnpSupport),
34
35 Tick,
36 Render,
37 Resize(u16, u16),
38 Suspend,
39 Resume,
40 Quit,
41 Refresh,
42 Error(String),
43 Help,
44 Noop,
45}
46
47#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
48pub enum StatusActions {
49 AddNode,
50 StartNodes,
51 StopNodes,
52 RemoveNodes,
53 StartStopNode,
54 StartNodesCompleted {
55 service_name: String,
56 },
57 StopNodesCompleted {
58 service_name: String,
59 },
60 ResetNodesCompleted {
61 trigger_start_node: bool,
62 },
63 RemoveNodesCompleted {
64 service_name: String,
65 },
66 AddNodesCompleted {
67 service_name: String,
68 },
69 UpdateNodesCompleted,
70 SuccessfullyDetectedNatStatus,
71 ErrorWhileRunningNatDetection,
72 ErrorLoadingNodeRegistry {
73 raw_error: String,
74 },
75 ErrorGettingNodeRegistryPath {
76 raw_error: String,
77 },
78 ErrorScalingUpNodes {
79 raw_error: String,
80 },
81 ErrorResettingNodes {
82 raw_error: String,
83 },
84 ErrorUpdatingNodes {
85 raw_error: String,
86 },
87 ErrorAddingNodes {
88 raw_error: String,
89 },
90 ErrorStartingNodes {
91 services: Vec<String>,
92 raw_error: String,
93 },
94 ErrorStoppingNodes {
95 services: Vec<String>,
96 raw_error: String,
97 },
98 ErrorRemovingNodes {
99 services: Vec<String>,
100 raw_error: String,
101 },
102 NodesStatsObtained(NodeStats),
103
104 TriggerManageNodes,
105 TriggerRewardsAddress,
106 TriggerNodeLogs,
107 TriggerRemoveNode,
108
109 PreviousTableItem,
110 NextTableItem,
111}
112
113#[derive(Debug, Clone, PartialEq, Eq, Serialize, Display, Deserialize)]
114pub enum OptionsActions {
115 ResetNodes,
116 UpdateNodes,
117
118 TriggerChangeDrive,
119 TriggerChangeConnectionMode,
120 TriggerChangePortRange,
121 TriggerRewardsAddress,
122 TriggerUpdateNodes,
123 TriggerResetNodes,
124 TriggerAccessLogs,
125 UpdateConnectionMode(ConnectionMode),
126 UpdatePortRange(u32, u32),
127 UpdateRewardsAddress(String),
128 UpdateStorageDrive(PathBuf, String),
129}