hidraw 0.0.7

Rust hidraw library.
Documentation
use std::fmt;
use std::mem::transmute;

use sys::hidraw_devinfo;

use super::BusType;

#[derive(Clone, Copy, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct RawInfo(pub(crate) hidraw_devinfo);

impl RawInfo {
	pub const fn bus_type(&self) -> BusType {
		unsafe { transmute(self.0.bustype) }
	}

	pub const fn product(&self) -> i16 {
		self.0.product
	}

	pub const fn vendor(&self) -> i16 {
		self.0.vendor
	}
}

impl fmt::Debug for RawInfo {
	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
		f.debug_struct("RawInfo")
			.field("bustype", &self.bus_type())
			.field("vendor", &format_args!("{:04x}", self.vendor()))
			.field("product", &format_args!("{:04x}", self.product()))
			.finish()
	}
}