#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct StatFs {
pub block_size: u32,
pub blocks: u64,
pub blocks_free: u64,
pub blocks_avail: u64,
pub inodes: u64,
pub inodes_free: u64,
pub name_max: u32,
}
impl StatFs {
pub fn total_bytes(&self) -> u64 {
self.blocks.saturating_mul(self.block_size as u64)
}
pub fn free_bytes(&self) -> u64 {
self.blocks_free.saturating_mul(self.block_size as u64)
}
pub fn avail_bytes(&self) -> u64 {
self.blocks_avail.saturating_mul(self.block_size as u64)
}
}
impl Default for StatFs {
fn default() -> Self {
Self {
block_size: 4096,
blocks: 0,
blocks_free: 0,
blocks_avail: 0,
inodes: 0,
inodes_free: 0,
name_max: 255,
}
}
}