diff --git a/libimagdiary/src/is_in_diary.rs b/libimagdiary/src/is_in_diary.rs index f02904ec..2b9d3fc7 100644 --- a/libimagdiary/src/is_in_diary.rs +++ b/libimagdiary/src/is_in_diary.rs @@ -18,8 +18,7 @@ impl IsInDiary for Entry { impl IsInDiary for StoreId { fn is_in_diary(&self, name: &str) -> bool { - use std::path::PathBuf; - self.is_in_collection(&PathBuf::from(format!("diary/{}", name))) + self.local().starts_with(format!("diary/{}", name)) } } diff --git a/libimagentrylink/src/external.rs b/libimagentrylink/src/external.rs index ca095907..a6c2faef 100644 --- a/libimagentrylink/src/external.rs +++ b/libimagentrylink/src/external.rs @@ -91,10 +91,8 @@ pub trait ExternalLinker : InternalLinker { /// Check whether the StoreId starts with `/link/external/` pub fn is_external_link_storeid(id: &StoreId) -> bool { - use std::path::PathBuf; - debug!("Checking whether this is a link/external/*: '{:?}'", id); - id.is_in_collection(&PathBuf::from("link/external")) + id.local().starts_with("link/external") } fn get_external_link_from_file(entry: &FileLockEntry) -> Result { diff --git a/libimagstore/src/storeid.rs b/libimagstore/src/storeid.rs index 8d9308d6..4bb26bf6 100644 --- a/libimagstore/src/storeid.rs +++ b/libimagstore/src/storeid.rs @@ -86,11 +86,9 @@ impl StoreId { self.id.components() } - /// Convenience function over PathBuf::starts_with(). - /// - /// This function calls `PathBuf::starts_with()` on the _local_ part of `self`. - pub fn is_in_collection(&self, collspec: &PathBuf) -> bool { - self.id.starts_with(collspec) + /// Get the _local_ part of a StoreId object, as in "the part from the store root to the entry". + pub fn local(&self) -> &PathBuf { + &self.id } } @@ -226,25 +224,4 @@ mod test { assert_eq!(p.into_storeid().unwrap().to_str().unwrap(), "test/test"); } - #[test] - fn storeid_in_collection() { - use std::path::PathBuf; - let p = module_path::ModuleEntryPath::new("1/2/3/4/5/6/7/8/9/0").into_storeid().unwrap(); - - assert!(p.is_in_collection(&PathBuf::from("test/1"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4/5"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4/5/6"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4/5/6/7"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4/5/6/7/8"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4/5/6/7/8/9"))); - assert!(p.is_in_collection(&PathBuf::from("test/1/2/3/4/5/6/7/8/9/0"))); - - assert!(!p.is_in_collection(&PathBuf::from("test/0/2/3/4/5/6/7/8/9/0"))); - assert!(!p.is_in_collection(&PathBuf::from("test/1/2/3/4/5/6/8"))); - assert!(!p.is_in_collection(&PathBuf::from("test/1/2/3/leet/5/6/7"))); - } - }