diff options
| author | pablu <me@pablu.de> | 2026-06-03 15:48:10 +0200 |
|---|---|---|
| committer | pablu <me@pablu.de> | 2026-06-03 15:48:10 +0200 |
| commit | 73fea832488e1b6c1e3f036531dcd9668760fe68 (patch) | |
| tree | 956fdbcc64f3ff316db388b332ed94daa7c1d4e8 /src/gentoo/package.rs | |
| parent | 282871b88f2414de492e97a88636551094ee04cb (diff) | |
search implemented for available packages, added some qol aswell
Diffstat (limited to 'src/gentoo/package.rs')
| -rw-r--r-- | src/gentoo/package.rs | 23 |
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) + } +} |
