use nom::IResult;
use nom::number::complete::{be_u32, be_u64};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct VirtDiskIo {
pub capacity: u64,
pub allocation: u64,
pub available: u64,
pub rd_req: u32,
pub rd_bytes: u64,
pub wr_req: u32,
pub wr_bytes: u64,
pub errs: u32,
}
pub(crate) fn parse_virt_disk_io(input: &[u8]) -> IResult<&[u8], VirtDiskIo> {
let (input, capacity) = be_u64(input)?;
let (input, allocation) = be_u64(input)?;
let (input, available) = be_u64(input)?;
let (input, rd_req) = be_u32(input)?;
let (input, rd_bytes) = be_u64(input)?;
let (input, wr_req) = be_u32(input)?;
let (input, wr_bytes) = be_u64(input)?;
let (input, errs) = be_u32(input)?;
Ok((
input,
VirtDiskIo {
capacity,
allocation,
available,
rd_req,
rd_bytes,
wr_req,
wr_bytes,
errs,
},
))
}