qemu_command_builder/
overcommit.rs

1use 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}