use crate::path::DevicePath;
#[cfg_attr(feature = "bincode", derive(bincode::Decode, bincode::Encode))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct DeviceInfo {
pub(crate) path: DevicePath,
pub(crate) class: String,
pub(crate) vendor: String,
pub(crate) product: String,
pub(crate) manufacturer: Option<String>,
pub(crate) class_id: Option<u16>,
pub(crate) vendor_id: u16,
pub(crate) product_id: u16,
pub(crate) manufacturer_id: Option<u16>,
}
impl DeviceInfo {
pub fn path(&self) -> &DevicePath {
&self.path
}
pub fn class(&self) -> &str {
&self.class
}
pub fn vendor(&self) -> &str {
&self.vendor
}
pub fn product(&self) -> &str {
&self.product
}
pub fn manufacturer(&self) -> &Option<String> {
&self.manufacturer
}
pub fn class_id(&self) -> Option<u16> {
self.class_id
}
pub fn vendor_id(&self) -> u16 {
self.vendor_id
}
pub fn product_id(&self) -> u16 {
self.product_id
}
pub fn manufacturer_id(&self) -> Option<u16> {
self.manufacturer_id
}
}