use crate::data::{NodeId, Upgrade}; use serde::{Serialize, Deserialize}; /// All actions that a user can trigger via the UI #[derive(Serialize, Deserialize)] pub enum Action { /// Cancel the running action Cancel(NodeId), /// Start a capture action Capture { from: NodeId, to: NodeId }, /// Set the compute targets Compute { from: NodeId, to: Vec }, /// Set to payload analysis mode Payload(NodeId), /// Send an exploit across the network Reset { from: NodeId, to: NodeId, exp: Exploit, }, /// Try to upgrade the node to a level Upgrade { node: NodeId, level: Upgrade }, } /// A type of exploit a node can start running #[derive(Serialize, Deserialize)] pub enum Exploit { Reset, CNS, Nitm, Virus, TakeOver, }