virtualization_rs/virtualization/
memory_device.rs

1//! memory 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 memory balloon device
9pub trait VZMemoryBalloonDeviceConfiguration {
10    fn id(&self) -> Id;
11}
12
13/// configure of memory balloon device through the Virtio interface
14pub struct VZVirtioTraditionalMemoryBalloonDeviceConfiguration(StrongPtr);
15
16impl VZVirtioTraditionalMemoryBalloonDeviceConfiguration {
17    pub fn new() -> VZVirtioTraditionalMemoryBalloonDeviceConfiguration {
18        unsafe {
19            let p = StrongPtr::new(msg_send![
20                class!(VZVirtioTraditionalMemoryBalloonDeviceConfiguration),
21                new
22            ]);
23            VZVirtioTraditionalMemoryBalloonDeviceConfiguration(p)
24        }
25    }
26}
27
28impl VZMemoryBalloonDeviceConfiguration for VZVirtioTraditionalMemoryBalloonDeviceConfiguration {
29    fn id(&self) -> Id {
30        *self.0
31    }
32}