diff options
Diffstat (limited to 'server/src/library.rs')
-rw-r--r-- | server/src/library.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/server/src/library.rs b/server/src/library.rs index 6cb6c3a..258569e 100644 --- a/server/src/library.rs +++ b/server/src/library.rs @@ -39,9 +39,9 @@ pub struct Item { } impl Library { - pub fn open(path: &PathBuf) -> anyhow::Result<Self> { + pub fn open(path: &Path) -> anyhow::Result<Self> { Ok(Self { - root: Node::from_path(path.clone(), PathBuf::new(), true) + root: Node::from_path(path.to_path_buf(), PathBuf::new(), true) .context("indexing root")? .ok_or(anyhow!("root need directory.json"))?, }) @@ -51,10 +51,10 @@ impl Library { } pub fn nested(&self, path: &str) -> anyhow::Result<Arc<Node>> { let mut n = self.root.clone(); - if path == "" { + if path.is_empty() { return Ok(n); } - for seg in path.split("/") { + for seg in path.split('/') { n = n .get_directory()? .child_by_ident(seg) @@ -111,7 +111,7 @@ impl Node { .read_dir()? .filter_map(|e| { let e = e.unwrap(); - if (e.path().extension() == None || e.metadata().unwrap().is_dir()) + if (e.path().extension().is_none() || e.metadata().unwrap().is_dir()) && !e.path().ends_with("directory.json") { Some(e.path()) @@ -124,7 +124,6 @@ impl Node { .context(format!("loading {e:?}")) .transpose() }) - .into_iter() .collect::<anyhow::Result<Vec<_>>>()?; Ok(Some( @@ -149,7 +148,7 @@ impl Node { .to_string(); Ok(Some( Node::Item(Arc::new(Item { - fs_path: path.clone(), + fs_path: path, lib_path: lib_path.join(identifier.clone()), info: data, identifier, |