1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use strum::{AsRefStr, EnumString, EnumVariantNames};
/// Quantity to be measured.
#[derive(Debug, Clone, Copy, PartialEq, Eq, AsRefStr, EnumString, EnumVariantNames)]
pub enum Quantity {
/// Measure apparent sizes, equivalent to the
/// [len](std::fs::Metadata::len) method.
#[strum(serialize = "len")]
ApparentSize,
/// Measure block sizes, equivalent to the
/// [blksize](std::os::unix::prelude::MetadataExt::blksize) method (POSIX only).
#[cfg(unix)]
#[strum(serialize = "blksize")]
BlockSize,
/// Count numbers of blocks, equivalent to the
/// [blocks](std::os::unix::prelude::MetadataExt::blocks) method (POSIX only).
#[cfg(unix)]
#[strum(serialize = "blocks")]
BlockCount,
}
impl Quantity {
pub(super) fn default_value() -> &'static str {
Quantity::ApparentSize.as_ref()
}
}