use std::{
hash::{Hash, Hasher},
path::{Path, PathBuf},
};
use uuid::Uuid;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Collection {
pub path: PathBuf,
pub display_name: Option<String>,
pub description: Option<String>,
pub color: Option<String>,
}
impl Collection {
pub fn new(root: impl AsRef<Path>) -> Collection {
Collection {
path: root.as_ref().join(Uuid::new_v4().to_string()),
display_name: None,
description: None,
color: None,
}
}
}
impl Hash for Collection {
fn hash<H: Hasher>(&self, state: &mut H) {
self.path.hash(state);
}
}
impl AsRef<Path> for Collection {
fn as_ref(&self) -> &Path {
&self.path
}
}