diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-04-06 10:25:25 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-06 10:25:25 +0200 |
commit | f27ff3c73f91e3c5821ed54bbc9b7e6f641dbf53 (patch) | |
tree | ed59bb1e2e8a5db37177ed9e216709fe37f33292 /librepology/src/v1/types/package.rs | |
parent | 9251445a5ac5315dca3921b7e77ce4a37cd42497 (diff) | |
parent | a6caaff3c89bb21fd1ed83fae023bb7df9ce59b3 (diff) |
Merge remote-tracking branch 'github/master'
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'librepology/src/v1/types/package.rs')
-rw-r--r-- | librepology/src/v1/types/package.rs | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/librepology/src/v1/types/package.rs b/librepology/src/v1/types/package.rs index fc66faa..4623fd3 100644 --- a/librepology/src/v1/types/package.rs +++ b/librepology/src/v1/types/package.rs @@ -5,8 +5,17 @@ pub struct Package { /// name of repository for this package repo: Repo, - /// name - name: Name, + /// package name(s) as used in repository - generic one and/or source package name and/or binary package name, whichever is applicable + name: Option<Name>, + + /// package name(s) as used in repository - generic one and/or source package name and/or binary package name, whichever is applicable + srcname: Option<Name>, + + /// package name(s) as used in repository - generic one and/or source package name and/or binary package name, whichever is applicable + binname: Option<Name>, + + /// package name as shown to the user by Repology + visiblename: Option<Name>, /// version version: Version, @@ -35,8 +44,29 @@ impl Package { &self.repo } - pub fn name(&self) -> &Name { - &self.name + pub fn name(&self) -> Option<&Name> { + self.name.as_ref() + } + + pub fn srcname(&self) -> Option<&Name> { + self.srcname.as_ref() + } + + pub fn binname(&self) -> Option<&Name> { + self.binname.as_ref() + } + + pub fn visiblename(&self) -> Option<&Name> { + self.visiblename.as_ref() + } + + /// Get name, srcname, binname or visiblename, whatever is set + /// (in this order) + pub fn any_name(&self) -> Option<&Name> { + self.name() + .or_else(|| self.srcname()) + .or_else(|| self.binname()) + .or_else(|| self.visiblename()) } pub fn version(&self) -> &Version { |