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