summaryrefslogtreecommitdiff
path: root/utils/src/legacy/globber.rs
diff options
context:
space:
mode:
Diffstat (limited to 'utils/src/legacy/globber.rs')
-rw-r--r--utils/src/legacy/globber.rs21
1 files changed, 17 insertions, 4 deletions
diff --git a/utils/src/legacy/globber.rs b/utils/src/legacy/globber.rs
index 4d722db..b6a3032 100644
--- a/utils/src/legacy/globber.rs
+++ b/utils/src/legacy/globber.rs
@@ -69,9 +69,7 @@ impl Globber {
}
};
- let pattern = if pattern.is_empty() {
- "*".to_string()
- } else if pattern == "." {
+ let pattern = if pattern.is_empty() || pattern == "." {
"*".to_string()
} else if pattern.ends_with(SPLIT_STR) {
format!("{}*", pattern)
@@ -182,7 +180,7 @@ impl<T: AsRef<str>> From<T> for Globber {
}
}
-#[derive(Debug, Clone, Hash)]
+#[derive(Debug, Clone)]
pub enum GlobItem {
File(String),
Directory(String),
@@ -207,6 +205,21 @@ impl std::fmt::Display for GlobItem {
}
}
+impl std::hash::Hash for GlobItem {
+ fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
+ match self {
+ GlobItem::File(name) => {
+ state.write_u8(0);
+ name.hash(state);
+ }
+ GlobItem::Directory(name) => {
+ state.write_u8(1);
+ name.hash(state);
+ }
+ }
+ }
+}
+
impl Eq for GlobItem {}
pub mod constants {