diff options
Diffstat (limited to 'src/atom/mod.rs')
| -rw-r--r-- | src/atom/mod.rs | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/src/atom/mod.rs b/src/atom/mod.rs index 2ecf655..8da7468 100644 --- a/src/atom/mod.rs +++ b/src/atom/mod.rs @@ -77,7 +77,7 @@ pub struct SlotName(#[get(method = "name", kind = "deref")] String); #[derive(Clone, Debug, PartialEq, Eq, Get)] pub struct Slot { - slot: Option<SlotName>, + primary: Option<SlotName>, sub: Option<SlotName>, operator: Option<SlotOperator>, } @@ -134,6 +134,7 @@ pub struct Atom { } impl Cpv { + #[must_use] pub fn into_cp(self) -> Cp { Cp { name: self.name, @@ -143,13 +144,12 @@ impl Cpv { } impl Atom { + #[must_use] pub fn version_operator(&self) -> Option<VersionOperator> { - match self.version { - Some((operator, _)) => Some(operator), - None => None, - } + self.version.clone().map(|(oper, _)| oper) } + #[must_use] pub fn into_cp(self) -> Cp { Cp { category: self.category, @@ -157,6 +157,7 @@ impl Atom { } } + #[must_use] pub fn into_cpv(self) -> Option<Cpv> { match self.version { Some((_, version)) => Some(Cpv { @@ -177,8 +178,7 @@ impl PartialEq for VersionSuffix { (Some(a), Some(b)) => a.0 == b.0, (Some(a), None) if a.get().chars().all(|c| c == '0') => true, (None, Some(b)) if b.get().chars().all(|c| c == '0') => true, - (Some(_), None) => false, - (None, Some(_)) => false, + (Some(_), None) | (None, Some(_)) => false, (None, None) => true, } } @@ -220,10 +220,9 @@ impl PartialEq for VersionSuffixes { loop { match (a.next(), b.next()) { - (Some(a), Some(b)) if a == b => continue, - (Some(_), Some(_)) => break false, + (Some(a), Some(b)) if a == b => (), + (Some(_) | None, Some(_)) | (Some(_), None) => break false, (None, None) => break true, - _ => break false, } } } @@ -247,7 +246,7 @@ impl Ord for VersionSuffixes { (Some(a), Some(b)) => match a.cmp(b) { Ordering::Less => break Ordering::Less, Ordering::Greater => break Ordering::Greater, - Ordering::Equal => continue, + Ordering::Equal => (), }, (Some(a), None) if matches!(a.kind, VersionSuffixKind::P) => { break Ordering::Greater; @@ -271,9 +270,9 @@ impl PartialEq for VersionNumbers { loop { match (a.next(), b.next()) { - (Some(a), Some(b)) if a.get().starts_with("0") => { - let a = a.get().trim_end_matches("0"); - let b = b.get().trim_end_matches("0"); + (Some(a), Some(b)) if a.get().starts_with('0') => { + let a = a.get().trim_end_matches('0'); + let b = b.get().trim_end_matches('0'); if a != b { break false; @@ -284,8 +283,8 @@ impl PartialEq for VersionNumbers { break false; } } - (Some(a), None) if a.get().chars().all(|c| c == '0') => continue, - (None, Some(b)) if b.get().chars().all(|c| c == '0') => continue, + (Some(a), None) if a.get().chars().all(|c| c == '0') => (), + (None, Some(b)) if b.get().chars().all(|c| c == '0') => (), (None, None) => break true, _ => break false, } @@ -313,8 +312,8 @@ impl Ord for VersionNumbers { .unwrap() .cmp(&other.get().first().unwrap().get().parse::<u64>().unwrap()) { - Ordering::Less => return Ordering::Less, - Ordering::Greater => return Ordering::Greater, + Ordering::Less => Ordering::Less, + Ordering::Greater => Ordering::Greater, Ordering::Equal => { let mut a = self.get().iter().skip(1); let mut b = other.get().iter().skip(1); @@ -322,15 +321,15 @@ impl Ord for VersionNumbers { loop { match (a.next(), b.next()) { (Some(a), Some(b)) - if a.get().starts_with("0") || b.get().starts_with("0") => + if a.get().starts_with('0') || b.get().starts_with('0') => { - let a = a.get().trim_end_matches("0"); - let b = b.get().trim_end_matches("0"); + let a = a.get().trim_end_matches('0'); + let b = b.get().trim_end_matches('0'); match a.cmp(b) { Ordering::Less => break Ordering::Less, Ordering::Greater => break Ordering::Greater, - Ordering::Equal => continue, + Ordering::Equal => (), } } (Some(a), Some(b)) => match a @@ -341,7 +340,7 @@ impl Ord for VersionNumbers { { Ordering::Less => break Ordering::Less, Ordering::Greater => break Ordering::Greater, - Ordering::Equal => continue, + Ordering::Equal => (), }, (Some(_), None) => break Ordering::Greater, @@ -364,9 +363,8 @@ impl PartialEq for Version { a.get().parse::<u64>().unwrap() == b.get().parse::<u64>().unwrap() } (Some(a), None) if a.get().chars().all(|c| c == '0') => true, - (Some(_), None) => false, (None, Some(b)) if b.get().chars().all(|c| c == '0') => true, - (None, Some(_)) => false, + (Some(_), None) | (None, Some(_)) => false, (None, None) => true, } } @@ -402,7 +400,7 @@ impl Ord for Version { (None, Some(_)) => return Ordering::Less, (None, None) => (), _ => unreachable!(), - }; + } match (&self.rev, &other.rev) { (Some(a), Some(b)) => a @@ -499,7 +497,7 @@ impl fmt::Display for Version { .numbers .get() .iter() - .map(|n| n.get()) + .map(VersionNumber::get) .intersperse(".") .collect::<String>(); @@ -507,18 +505,18 @@ impl fmt::Display for Version { .suffixes .get() .iter() - .map(|s| s.to_string()) + .map(VersionSuffix::to_string) .intersperse("_".to_string()) .collect::<String>(); - write!(f, "{}", numbers)?; + write!(f, "{numbers}")?; if let Some(letter) = self.letter { write!(f, "{letter}")?; } - if suffixes.len() > 0 { - write!(f, "_{}", suffixes)?; + if !suffixes.is_empty() { + write!(f, "_{suffixes}")?; } if let Some(rev) = self.rev.as_ref() { @@ -546,7 +544,7 @@ impl fmt::Display for SlotName { impl fmt::Display for Slot { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - if let Some(slot) = self.slot.as_ref() { + if let Some(slot) = self.primary.as_ref() { write!(f, "{slot}")?; } @@ -652,7 +650,7 @@ impl fmt::Display for Atom { let usedeps = self .usedeps .iter() - .map(|u| u.to_string()) + .map(UseDep::to_string) .intersperse(",".to_string()) .collect::<String>(); |
