blob: 17fd723f5f5e871f6d0b9e45d3feca2f6f33d610 (
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 {
FilesizeType::ApparentSize => metadata.len(),
// block size is always 512 byte, see stat(2) manpage
FilesizeType::DiskUsage => metadata.blocks() * 512,
}
}
#[cfg(windows)]
pub fn size(self, metadata: &std::fs::Metadata) -> u64 {
metadata.len()
}
}
|