qemu_command_builder/
trace.rs

1use bon::Builder;
2use std::path::PathBuf;
3
4use crate::to_command::ToCommand;
5
6#[derive(Default, Builder)]
7pub struct Trace {
8    enable: Option<String>,
9    events: Option<PathBuf>,
10    file: Option<PathBuf>,
11}
12
13impl ToCommand for Trace {
14    fn to_command(&self) -> Vec<String> {
15        let mut cmd = vec![];
16
17        cmd.push("-trace".to_string());
18
19        let mut args = vec![];
20
21        if let Some(enable) = &self.enable {
22            args.push(format!("enable={}", enable));
23        }
24        if let Some(events) = &self.events {
25            args.push(format!("events={}", events.display()));
26        }
27        if let Some(file) = &self.file {
28            args.push(format!("file={}", file.display()));
29        }
30        cmd.push(args.join(","));
31        cmd
32    }
33}