use crate::usb::UsbDevice;
pub fn hostdev_xml(dev: &UsbDevice) -> String {
format!(
"<hostdev mode='subsystem' type='usb' managed='yes'>\n \
<source>\n \
<vendor id='0x{:04x}'/>\n \
<product id='0x{:04x}'/>\n \
<address bus='{}' device='{}'/>\n \
</source>\n\
</hostdev>\n",
dev.vid, dev.pid, dev.bus, dev.devnum
)
}
#[cfg(test)]
mod tests {
use super::*;
use crate::usb::test_support::device;
#[test]
fn xml_contains_expected_fields() {
let mut dev = device("2-1.4", 0x12ab, 0x00cd, 0);
dev.devnum = 7;
let xml = hostdev_xml(&dev);
assert!(xml.contains("type='usb'"));
assert!(xml.contains("managed='yes'"));
assert!(xml.contains("<vendor id='0x12ab'/>"));
assert!(xml.contains("<product id='0x00cd'/>"));
assert!(xml.contains("<address bus='2' device='7'/>"));
}
}