From 17e5bfc27c3518c45c95d136c3fff982e6282f17 Mon Sep 17 00:00:00 2001 From: Moritz Gmeiner Date: Sun, 27 Jul 2025 00:22:27 +0200 Subject: [PATCH] DirEntry: added is_dot, is_dotdot, is_hidden methods --- src/dir.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/dir.rs b/src/dir.rs index fd96b5a..656fa7b 100644 --- a/src/dir.rs +++ b/src/dir.rs @@ -167,6 +167,30 @@ impl RegularDirEntry { self.attr.contains(Attr::Directory) && !self.attr.intersects(Attr::System | Attr::VolumeId) } + pub fn is_dot(&self) -> bool { + if !self.is_dir() { + return false; + } + + // &self.name[..2] == &[b'.', b' '] + + self.name[0] == b'.' && &self.name[1..] == &[b' '; 10] + } + + pub fn is_dotdot(&self) -> bool { + if !self.is_dir() { + return false; + } + + // &self.name[..3] == &[b'.', b'.', b' '] + + &self.name[..2] == &[b'.', b'.'] && &self.name[2..] == &[b' '; 9] + } + + pub fn is_hidden(&self) -> bool { + self.is_dot() || self.is_dotdot() || self.attr.contains(Attr::Hidden) + } + pub fn name(&self) -> &[u8] { &self.name }