qemu_command_builder/
overcommit.rs1use crate::common::OnOff;
2use crate::to_command::{ToArg, ToCommand};
3
4pub enum OnOffOnfault {
5 On,
6 Off,
7 Onfault,
8}
9
10impl ToArg for OnOffOnfault {
11 fn to_arg(&self) -> &str {
12 match self {
13 OnOffOnfault::On => "on",
14 OnOffOnfault::Off => "off",
15 OnOffOnfault::Onfault => "on-fault",
16 }
17 }
18}
19
20pub enum Overcommit {
21 MemLock(OnOffOnfault),
22 CpuPm(OnOff),
23}
24
25impl ToCommand for Overcommit {
26 fn to_command(&self) -> Vec<String> {
27 let mut cmd = vec![];
28
29 cmd.push("-overcommit".to_string());
30 match self {
31 Overcommit::MemLock(memlock) => {
32 cmd.push(memlock.to_arg().to_string());
33 }
34 Overcommit::CpuPm(cpupm) => {
35 cmd.push(cpupm.to_arg().to_string());
36 }
37 }
38
39 cmd
40 }
41}