MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / new

Method new

block/src/vhdx_sync.rs:31–45  ·  view source on GitHub ↗
(f: File)

Source from the content-addressed store, hash-verified

29
30impl VhdxDiskSync {
31 pub fn new(f: File) -> BlockResult<Self> {
32 Ok(VhdxDiskSync {
33 vhdx_file: Arc::new(Mutex::new(Vhdx::new(f).map_err(|e| {
34 let kind = match &e {
35 VhdxError::NotVhdx(_)
36 | VhdxError::ParseVhdxHeader(_)
37 | VhdxError::ParseVhdxMetadata(_)
38 | VhdxError::ParseVhdxRegionEntry(_) => BlockErrorKind::InvalidFormat,
39 VhdxError::ReadBatEntry(_) => BlockErrorKind::CorruptImage,
40 VhdxError::ReadFailed(_) | VhdxError::WriteFailed(_) => BlockErrorKind::Io,
41 };
42 BlockError::new(kind, e).with_op(ErrorOp::Open)
43 })?)),
44 })
45 }
46}
47
48impl disk_file::DiskSize for VhdxDiskSync {

Callers

nothing calls this directly

Calls 2

newFunction · 0.85
with_opMethod · 0.80

Tested by

no test coverage detected