blob: 0ac4c7e281e44ca7a689a47774f82a99f66599b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#[derive(Debug, Clone, Copy)]
pub enum FilesizeType {
DiskUsage,
ApparentSize,
}
impl FilesizeType {
#[cfg(not(windows))]
pub fn size(self, metadata: &std::fs::Metadata) -> u64 {
use std::os::unix::fs::MetadataExt;
match self {
Self::ApparentSize => metadata.len(),
// block size is always 512 byte, see stat(2) manpage
Self::DiskUsage => metadata.blocks() * 512,
}
}
#[cfg(windows)]
pub fn size(self, metadata: &std::fs::Metadata) -> u64 {
metadata.len()
}
}
|