qemu_command_builder/
trace.rs1use 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}