use std::{collections::HashSet, hash::Hash}; use serde::{Deserialize, Serialize}; use crate::dependency::Dependency; #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] pub struct Package { name: String, version: semver::Version, source: String, checksum: String, dependencies: HashSet, } impl Package { pub fn name(&self) -> String { self.name.clone() } } impl Default for Package { fn default() -> Self { Self { name: Default::default(), version: semver::Version::new(0, 1, 0), source: Default::default(), checksum: Default::default(), dependencies: Default::default(), } } } impl Hash for Package { fn hash(&self, state: &mut H) { self.name.hash(state); } }