yazi/yazi-config/src/theme/is.rs
2025-09-02 16:58:34 +08:00

37 lines
665 B
Rust

use serde::Deserialize;
use yazi_fs::cha::Cha;
#[derive(Default, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum Is {
#[default]
None,
Hidden,
Link,
Orphan,
Dummy,
Block,
Char,
Fifo,
Sock,
Exec,
Sticky,
}
impl Is {
pub fn check(&self, cha: &Cha) -> bool {
match self {
Self::None => true,
Self::Hidden => cha.is_hidden(),
Self::Link => cha.is_link(),
Self::Orphan => cha.is_orphan(),
Self::Dummy => cha.is_dummy(),
Self::Block => cha.is_block(),
Self::Char => cha.is_char(),
Self::Fifo => cha.is_fifo(),
Self::Sock => cha.is_sock(),
Self::Exec => cha.is_exec(),
Self::Sticky => cha.is_sticky(),
}
}
}