qemu_command_builder/
common.rs1use crate::to_command::{ToArg, ToCommand};
2
3pub enum YesNo {
4 Yes,
5 No,
6}
7
8impl ToCommand for YesNo {
9 fn to_command(&self) -> Vec<String> {
10 let mut cmd = vec![];
11 match self {
12 YesNo::Yes => {
13 cmd.push("yes".to_string());
14 }
15 YesNo::No => {
16 cmd.push("no".to_string());
17 }
18 }
19 cmd
20 }
21}
22
23impl ToArg for YesNo {
24 fn to_arg(&self) -> &str {
25 match self {
26 YesNo::Yes => "yes",
27 YesNo::No => "no",
28 }
29 }
30}
31
32pub enum OnOff {
33 On,
34 Off,
35}
36
37impl ToCommand for OnOff {
38 fn to_command(&self) -> Vec<String> {
39 let mut cmd = vec![];
40 match self {
41 OnOff::On => {
42 cmd.push("on".to_string());
43 }
44 OnOff::Off => {
45 cmd.push("off".to_string());
46 }
47 }
48 cmd
49 }
50}
51
52impl ToArg for OnOff {
53 fn to_arg(&self) -> &str {
54 match self {
55 OnOff::On => "on",
56 OnOff::Off => "off",
57 }
58 }
59}
60
61#[derive(Default)]
62pub enum OnOffAuto {
63 On,
64 Off,
65 #[default]
66 Auto,
67}
68
69impl ToCommand for OnOffAuto {
70 fn to_command(&self) -> Vec<String> {
71 let mut cmd = vec![];
72 match self {
73 OnOffAuto::On => {
74 cmd.push("on".to_string());
75 }
76 OnOffAuto::Off => {
77 cmd.push("off".to_string());
78 }
79 OnOffAuto::Auto => {
80 cmd.push("auto".to_string());
81 }
82 }
83 cmd
84 }
85}
86
87impl ToArg for OnOffAuto {
88 fn to_arg(&self) -> &str {
89 match self {
90 OnOffAuto::On => "on",
91 OnOffAuto::Off => "off",
92 OnOffAuto::Auto => "auto",
93 }
94 }
95}
96
97#[derive(Default)]
98pub enum OnOffDefaultOn {
99 #[default]
100 On,
101 Off,
102}
103
104impl ToCommand for OnOffDefaultOn {
105 fn to_command(&self) -> Vec<String> {
106 let mut cmd = vec![];
107 match self {
108 OnOffDefaultOn::On => {
109 cmd.push("on".to_string());
110 }
111 OnOffDefaultOn::Off => {
112 cmd.push("off".to_string());
113 }
114 }
115 cmd
116 }
117}
118
119impl ToArg for OnOffDefaultOn {
120 fn to_arg(&self) -> &str {
121 match self {
122 OnOffDefaultOn::On => "on",
123 OnOffDefaultOn::Off => "off",
124 }
125 }
126}
127
128#[derive(Default)]
129pub enum OnOffDefaultOff {
130 On,
131 #[default]
132 Off,
133}
134impl ToCommand for OnOffDefaultOff {
135 fn to_command(&self) -> Vec<String> {
136 let mut cmd = vec![];
137 match self {
138 OnOffDefaultOff::On => {
139 cmd.push("on".to_string());
140 }
141 OnOffDefaultOff::Off => {
142 cmd.push("off".to_string());
143 }
144 }
145 cmd
146 }
147}
148
149impl ToArg for OnOffDefaultOff {
150 fn to_arg(&self) -> &str {
151 match self {
152 OnOffDefaultOff::On => "on",
153 OnOffDefaultOff::Off => "off",
154 }
155 }
156}
157
158#[derive(Default)]
159pub enum AccelType {
160 Kvm,
161 Xen,
162 Hvf,
163 Nvmm,
164 Whpx,
165 #[default]
166 Tcg,
167}
168
169impl ToArg for AccelType {
170 fn to_arg(&self) -> &str {
171 match self {
172 AccelType::Kvm => "kvm",
173 AccelType::Xen => "xen",
174 AccelType::Hvf => "hvf",
175 AccelType::Nvmm => "nvmm",
176 AccelType::Whpx => "whpx",
177 AccelType::Tcg => "tcg",
178 }
179 }
180}
181
182pub enum IgnoreUnmap {
183 Ignore,
184 Unmap,
185}
186
187impl ToArg for IgnoreUnmap {
188 fn to_arg(&self) -> &str {
189 match self {
190 IgnoreUnmap::Ignore => "ignore",
191 IgnoreUnmap::Unmap => "unmap",
192 }
193 }
194}
195
196pub enum OnOffUnmap {
197 On,
198 Off,
199 Unmap,
200}
201
202impl ToArg for OnOffUnmap {
203 fn to_arg(&self) -> &str {
204 match self {
205 OnOffUnmap::On => "on",
206 OnOffUnmap::Off => "off",
207 OnOffUnmap::Unmap => "unmap",
208 }
209 }
210}
211
212pub enum AutoNeverAlways {
213 Auto,
214 Never,
215 Always,
216}
217
218impl ToArg for AutoNeverAlways {
219 fn to_arg(&self) -> &str {
220 match self {
221 AutoNeverAlways::Auto => "auto",
222 AutoNeverAlways::Never => "never",
223 AutoNeverAlways::Always => "always",
224 }
225 }
226}