summaryrefslogtreecommitdiffstats
path: root/src/project/path.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-11-27 19:23:11 -0600
committerToby Vincent <tobyv13@gmail.com>2022-11-27 19:23:11 -0600
commitc7319caf38ff22e67f6fb625411ed554cf3b1f92 (patch)
tree82882b77fa97052c150f49eb16e2d28ee2d78763 /src/project/path.rs
parent46cee052d6d4b60b483ab6841af976d68d954705 (diff)
feat: improve Project trait
Diffstat (limited to 'src/project/path.rs')
-rw-r--r--src/project/path.rs41
1 files changed, 7 insertions, 34 deletions
diff --git a/src/project/path.rs b/src/project/path.rs
index 24dad9d..14ce308 100644
--- a/src/project/path.rs
+++ b/src/project/path.rs
@@ -1,39 +1,18 @@
use ignore::DirEntry;
-use std::{
- path::PathBuf,
- time::{Duration, SystemTime},
-};
-
-use crate::Project;
+use std::path::PathBuf;
#[derive(Debug, PartialEq, Eq, Clone, Default)]
-pub struct PathProject {
- path_buf: PathBuf,
- timestamp: Option<Duration>,
-}
+pub struct PathProject(PathBuf);
impl PathProject {
fn new(path_buf: PathBuf) -> Self {
- let timestamp = path_buf
- .metadata()
- .ok()
- .and_then(|m| m.modified().ok())
- .and_then(|t| t.duration_since(SystemTime::UNIX_EPOCH).ok());
-
- Self {
- timestamp,
- path_buf,
- }
+ Self(path_buf)
}
}
-impl Project for PathProject {
- fn timestamp(&self) -> Option<Duration> {
- self.timestamp
- }
-
- fn to_path_buf(&self) -> PathBuf {
- self.path_buf.to_owned()
+impl AsRef<PathBuf> for PathProject {
+ fn as_ref(&self) -> &PathBuf {
+ &self.0
}
}
@@ -55,12 +34,6 @@ impl TryFrom<(&String, DirEntry)> for PathProject {
}
}
-impl From<PathBuf> for PathProject {
- fn from(value: PathBuf) -> Self {
- Self::new(value)
- }
-}
-
impl From<DirEntry> for PathProject {
fn from(value: DirEntry) -> Self {
Self::new(value.into_path())
@@ -69,6 +42,6 @@ impl From<DirEntry> for PathProject {
impl From<PathProject> for PathBuf {
fn from(value: PathProject) -> Self {
- value.path_buf
+ value.0
}
}