1use super::DiskLayer;
7use crate::LayerAttach;
8use vm_resource::CanResolveTo;
9use vm_resource::kind::DiskLayerHandleKind;
10use vmcore::vm_task::VmTaskDriverSource;
11
12impl CanResolveTo<ResolvedDiskLayer> for DiskLayerHandleKind {
13 type Input<'a> = ResolveDiskLayerParameters<'a>;
14}
15
16#[derive(Copy, Clone)]
18pub struct ResolveDiskLayerParameters<'a> {
19 pub read_only: bool,
21 pub driver_source: &'a VmTaskDriverSource,
23}
24
25pub struct ResolvedDiskLayer(pub DiskLayer);
27
28impl ResolvedDiskLayer {
29 pub fn new<T: LayerAttach>(layer: T) -> Self {
31 Self(DiskLayer::new(layer))
32 }
33}