cloud_hypervisor_client/models/
vm_info.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct VmInfo {
17 #[serde(rename = "config")]
18 pub config: models::VmConfig,
19 #[serde(rename = "state")]
20 pub state: State,
21 #[serde(rename = "memory_actual_size", skip_serializing_if = "Option::is_none")]
22 pub memory_actual_size: Option<i64>,
23 #[serde(rename = "device_tree", skip_serializing_if = "Option::is_none")]
24 pub device_tree: Option<std::collections::HashMap<String, models::DeviceNode>>,
25}
26
27impl VmInfo {
28 pub fn new(config: models::VmConfig, state: State) -> VmInfo {
30 VmInfo {
31 config,
32 state,
33 memory_actual_size: None,
34 device_tree: None,
35 }
36 }
37}
38#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
40pub enum State {
41 #[serde(rename = "Created")]
42 Created,
43 #[serde(rename = "Running")]
44 Running,
45 #[serde(rename = "Shutdown")]
46 Shutdown,
47 #[serde(rename = "Paused")]
48 Paused,
49}
50
51impl Default for State {
52 fn default() -> State {
53 Self::Created
54 }
55}