1use crate::DynVirtioDevice;
7use crate::VirtioDevice;
8use vm_resource::CanResolveTo;
9use vm_resource::kind::VirtioDeviceHandle;
10use vmcore::vm_task::VmTaskDriverSource;
11
12impl CanResolveTo<ResolvedVirtioDevice> for VirtioDeviceHandle {
13 type Input<'a> = VirtioResolveInput<'a>;
14}
15
16pub struct ResolvedVirtioDevice(pub Box<dyn DynVirtioDevice>);
18
19impl<T: 'static + VirtioDevice> From<T> for ResolvedVirtioDevice {
20 fn from(value: T) -> Self {
21 Self(Box::new(value))
22 }
23}
24
25pub struct VirtioResolveInput<'a> {
27 pub driver_source: &'a VmTaskDriverSource,
29}