qemu_command_builder/
audiodev.rs

1use bon::Builder;
2use std::collections::HashMap;
3
4use crate::to_command::ToCommand;
5
6#[derive(Default, Builder)]
7pub struct AudioDev {
8    driver: String,
9    props: HashMap<String, String>,
10}
11
12impl ToCommand for AudioDev {
13    fn to_command(&self) -> Vec<String> {
14        let mut cmd = vec!["-audiodev".to_string()];
15
16        let mut args = vec![self.driver.clone()];
17
18        for (k, v) in &self.props {
19            args.push(format!("{}={}", k, v));
20        }
21        cmd.push(args.join(","));
22        cmd
23    }
24}