summaryrefslogtreecommitdiffstats
path: root/librepology/src/v1
diff options
context:
space:
mode:
Diffstat (limited to 'librepology/src/v1')
-rw-r--r--librepology/src/v1/restapi.rs5
-rw-r--r--librepology/src/v1/types/package.rs38
2 files changed, 38 insertions, 5 deletions
diff --git a/librepology/src/v1/restapi.rs b/librepology/src/v1/restapi.rs
index bc1a693..1e8711c 100644
--- a/librepology/src/v1/restapi.rs
+++ b/librepology/src/v1/restapi.rs
@@ -42,17 +42,20 @@ impl Api for RestApi {
fn project<N: AsRef<str>>(&self, name: N) -> Result<Vec<Package>> {
let url = format!("{}api/v1/project/{}", self.repology, name.as_ref());
+ trace!("Request: {}", url);
serde_json::from_str(&self.send_request(url)?).map_err(Error::from)
}
fn problems_for_repo<R: AsRef<str>>(&self, repo: R) -> Result<Vec<Problem>> {
let url = format!("{}api/v1/repository/{}/problems", self.repology, repo.as_ref());
+ trace!("Request: {}", url);
serde_json::from_str(&self.send_request(url)?).map_err(Error::from)
}
fn problems_for_maintainer<M: AsRef<str>>(&self, maintainer: M) -> Result<Vec<Problem>> {
let url = format!("{}api/v1/maintainer/{}/problems", self.repology, maintainer.as_ref());
+ trace!("Request: {}", url);
serde_json::from_str(&self.send_request(url)?).map_err(Error::from)
}
-} \ No newline at end of file
+}
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 {