aboutsummaryrefslogtreecommitdiff
path: root/src/gentoo/package.rs
diff options
context:
space:
mode:
authorpablu <me@pablu.de>2026-06-03 15:48:10 +0200
committerpablu <me@pablu.de>2026-06-03 15:48:10 +0200
commit73fea832488e1b6c1e3f036531dcd9668760fe68 (patch)
tree956fdbcc64f3ff316db388b332ed94daa7c1d4e8 /src/gentoo/package.rs
parent282871b88f2414de492e97a88636551094ee04cb (diff)
search implemented for available packages, added some qol aswell
Diffstat (limited to 'src/gentoo/package.rs')
-rw-r--r--src/gentoo/package.rs23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/gentoo/package.rs b/src/gentoo/package.rs
index fcd86eb..8ddb2ad 100644
--- a/src/gentoo/package.rs
+++ b/src/gentoo/package.rs
@@ -46,7 +46,7 @@ impl PackageKey {
}
}
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Metadata {
pub maintainer: Option<String>,
pub description: Option<String>,
@@ -81,7 +81,7 @@ pub struct Package {
pub versions: Vec<PackageVersion>,
}
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PackageVersion {
pub version: String,
@@ -90,3 +90,22 @@ pub struct PackageVersion {
pub keywords: Vec<String>,
pub iuse: Vec<UseFlag>,
}
+
+impl PartialOrd for PackageVersion {
+ fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
+ match self.version.partial_cmp(&other.version) {
+ Some(core::cmp::Ordering::Equal) => {}
+ ord => return ord,
+ }
+
+ self.metadata
+ .repository
+ .partial_cmp(&other.metadata.repository)
+ }
+}
+
+impl Ord for PackageVersion {
+ fn cmp(&self, other: &Self) -> std::cmp::Ordering {
+ self.version.cmp(&other.version)
+ }
+}