virtualization_rs/virtualization/
entropy_device.rs

1//! entropy device module
2
3use crate::base::Id;
4
5use objc::rc::StrongPtr;
6use objc::{class, msg_send, sel, sel_impl};
7
8/// common configure of entropy device
9pub trait VZEntropyDeviceConfiguration {
10    fn id(&self) -> Id;
11}
12
13/// configure of entropy device
14pub struct VZVirtioEntropyDeviceConfiguration(StrongPtr);
15
16impl VZVirtioEntropyDeviceConfiguration {
17    pub fn new() -> VZVirtioEntropyDeviceConfiguration {
18        unsafe {
19            let p = StrongPtr::new(msg_send![class!(VZVirtioEntropyDeviceConfiguration), new]);
20            VZVirtioEntropyDeviceConfiguration(p)
21        }
22    }
23}
24
25impl VZEntropyDeviceConfiguration for VZVirtioEntropyDeviceConfiguration {
26    fn id(&self) -> Id {
27        *self.0
28    }
29}