1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use com_wrapper::ComWrapper;
pub use self::device::Device;
pub use self::device1::Device1;
pub use self::device2::Device2;
pub use self::device3::Device3;
pub use self::device4::Device4;
pub mod device;
pub mod device1;
pub mod device2;
pub mod device3;
pub mod device4;
pub trait DeviceType: ComWrapper + Clone {
fn try_cast<D: DeviceType>(&self) -> Option<D> {
unsafe {
let ptr = self.clone().into_ptr();
Some(ComWrapper::from_ptr(ptr.cast().ok()?))
}
}
}