summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2019-04-23 16:49:30 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2019-04-24 08:14:42 +0200
commit35e92e4055b8a6c6294602627896cc22d234c0bd (patch)
treeeab80d9db64cc63137d49198cabb33399cf98520
parentcf4edeadab3f54b328cbdd17e6d2ca8ac92e4a85 (diff)
Split types into module and submodules
Without breaking the build because we reexport the private submodule types in the crate::v1::types module.
-rw-r--r--librepology/src/v1/types.rs277
-rw-r--r--librepology/src/v1/types/category.rs14
-rw-r--r--librepology/src/v1/types/download.rs16
-rw-r--r--librepology/src/v1/types/effname.rs14
-rw-r--r--librepology/src/v1/types/license.rs14
-rw-r--r--librepology/src/v1/types/maintainer.rs14
-rw-r--r--librepology/src/v1/types/mod.rs28
-rw-r--r--librepology/src/v1/types/name.rs14
-rw-r--r--librepology/src/v1/types/package.rs71
-rw-r--r--librepology/src/v1/types/problem.rs41
-rw-r--r--librepology/src/v1/types/repo.rs14
-rw-r--r--librepology/src/v1/types/status.rs44
-rw-r--r--librepology/src/v1/types/summary.rs14
-rw-r--r--librepology/src/v1/types/version.rs14
-rw-r--r--librepology/src/v1/types/www.rs15
15 files changed, 327 insertions, 277 deletions
diff --git a/librepology/src/v1/types.rs b/librepology/src/v1/types.rs
deleted file mode 100644
index bd47471..0000000
--- a/librepology/src/v1/types.rs
+++ /dev/null
@@ -1,277 +0,0 @@
-use std::ops::Deref;
-
-use url::Url;
-
-#[derive(Clone, Debug, Serialize, Deserialize)]
-pub struct Package {
- /// name of repository for this package
- repo: Repo,
-
- /// name
- name: Name,
-
- /// version
- version: Version,
-
- /// package status, one of newest, devel, unique, outdated, legacy, rolling, noscheme, incorrect, untrusted, ignored
- status: Option<Status>,
-
- /// one-line description of the package
- summary: Option<Summary>,
-
- /// list of package licenses
- licenses: Option<Vec<License>>,
-
- /// list of package maintainers
- maintainers: Option<Vec<Maintainer>>,
-
- /// list of package webpages
- www: Option<Vec<Www>>,
-
- /// list of package downloads
- downloads: Option<Vec<Download>>,
-}
-
-impl Package {
- pub fn repo(&self) -> &Repo {
- &self.repo
- }
-
- pub fn name(&self) -> &Name {
- &self.name
- }
-
- pub fn version(&self) -> &Version {
- &self.version
- }
-
- pub fn status(&self) -> Option<&Status> {
- self.status.as_ref()
- }
-
- pub fn summary(&self) -> Option<&Summary> {
- self.summary.as_ref()
- }
-
- pub fn licenses(&self) -> Option<&Vec<License>> {
- self.licenses.as_ref()
- }
-
- pub fn maintainers(&self) -> Option<&Vec<Maintainer>> {
- self.maintainers.as_ref()
- }
-
- pub fn www(&self) -> Option<&Vec<Www>> {
- self.www.as_ref()
- }
-
- pub fn downloads(&self) -> Option<&Vec<Download>> {
- self.downloads.as_ref()
- }
-
-}
-
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Problem {
- #[serde(rename = "repo")]
- repo: Repo,
-
- #[serde(rename = "name")]
- name: Name,
-
- #[serde(rename = "effname")]
- effname: EffName,
-
- #[serde(rename = "maintainer")]
- maintainer: Maintainer,
-
- #[serde(rename = "problem")]
- problem: String,
-}
-
-impl Problem {
- pub fn repo(&self) -> &Repo {
- &self.repo
- }
-
- pub fn name(&self) -> &Name {
- &self.name
- }
-
- pub fn effname(&self) -> &EffName {
- &self.effname
- }
-
- pub fn maintainer(&self) -> &Maintainer {
- &self.maintainer
- }
-
- pub fn problem_description(&self) -> &String {
- &self.problem
- }
-}
-
-// name of repository for this package
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Repo(String);
-
-impl Deref for Repo {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// package name as in repository (if different from version)
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Name(String);
-
-impl Deref for Name {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// package version (sanitized)
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Version(String);
-
-impl Deref for Version {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// package status
-#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize, Display)]
-pub enum Status {
- #[serde(rename = "newest")]
- #[display(fmt = "newest")]
- Newest,
-
- #[serde(rename = "devel")]
- #[display(fmt = "devel")]
- Devel,
-
- #[serde(rename = "unique")]
- #[display(fmt = "unique")]
- Unique,
-
- #[serde(rename = "outdated")]
- #[display(fmt = "outdated")]
- Outdated,
-
- #[serde(rename = "legacy")]
- #[display(fmt = "legacy")]
- Legacy,
-
- #[serde(rename = "rolling")]
- #[display(fmt = "rolling")]
- Rolling,
-
- #[serde(rename = "noscheme")]
- #[display(fmt = "noscheme")]
- Noscheme,
-
- #[serde(rename = "incorrect")]
- #[display(fmt = "incorrect")]
- Incorrect,
-
- #[serde(rename = "untrusted")]
- #[display(fmt = "untrusted")]
- Untrusted,
-
- #[serde(rename = "ignored")]
- #[display(fmt = "ignored")]
- Ignored,
-}
-
-// one-line description of the package
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Summary(String);
-
-impl Deref for Summary {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// list of package categories
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Category(String);
-
-impl Deref for Category {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// list of package licenses
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct License(String);
-
-impl Deref for License {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// list of package maintainers
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct Maintainer(String);
-
-impl Deref for Maintainer {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// list of package webpages
-#[derive(Clone, Debug, Serialize, Deserialize)]
-pub struct Www(#[serde(with = "url_serde")] Url);
-
-impl Deref for Www {
- type Target = Url;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// list of package downloads
-#[derive(Clone, Debug, Serialize, Deserialize)]
-pub struct Download(#[serde(with = "url_serde")] Url);
-
-impl Deref for Download {
- type Target = Url;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
-// list of package downloads
-#[derive(Eq, PartialEq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
-pub struct EffName(String);
-
-impl Deref for EffName {
- type Target = String;
-
- fn deref(&self) -> &Self::Target {
- &self.0
- }
-}
-
diff --git a/librepology/src/v1/types/category.rs b/librepology/src/v1/types/category.rs
new file mode 100644
index 0000000..1bc8c02
--- /dev/null
+++ b/librepology/src/v1/types/category.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// list of package categories
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct Category(String);
+
+impl Deref for Category {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/download.rs b/librepology/src/v1/types/download.rs
new file mode 100644
index 0000000..e337baa
--- /dev/null
+++ b/librepology/src/v1/types/download.rs
@@ -0,0 +1,16 @@
+use std::ops::Deref;
+
+use url::Url;
+
+// list of package downloads
+#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)]
+pub struct Download(#[serde(with = "url_serde")] Url);
+
+impl Deref for Download {
+ type Target = Url;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/effname.rs b/librepology/src/v1/types/effname.rs
new file mode 100644
index 0000000..ae38fd7
--- /dev/null
+++ b/librepology/src/v1/types/effname.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// list of package downloads
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct EffName(String);
+
+impl Deref for EffName {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/license.rs b/librepology/src/v1/types/license.rs
new file mode 100644
index 0000000..7d67a2e
--- /dev/null
+++ b/librepology/src/v1/types/license.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// list of package licenses
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct License(String);
+
+impl Deref for License {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/maintainer.rs b/librepology/src/v1/types/maintainer.rs
new file mode 100644
index 0000000..d76c879
--- /dev/null
+++ b/librepology/src/v1/types/maintainer.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// list of package maintainers
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct Maintainer(String);
+
+impl Deref for Maintainer {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/mod.rs b/librepology/src/v1/types/mod.rs
new file mode 100644
index 0000000..4e97b44
--- /dev/null
+++ b/librepology/src/v1/types/mod.rs
@@ -0,0 +1,28 @@
+mod category;
+mod download;
+mod effname;
+mod license;
+mod maintainer;
+mod name;
+mod package;
+mod problem;
+mod repo;
+mod status;
+mod summary;
+mod version;
+mod www;
+
+pub use category::Category;
+pub use download::Download;
+pub use effname::EffName;
+pub use license::License;
+pub use maintainer::Maintainer;
+pub use name::Name;
+pub use package::Package;
+pub use problem::Problem;
+pub use repo::Repo;
+pub use status::Status;
+pub use summary::Summary;
+pub use version::Version;
+pub use www::Www;
+
diff --git a/librepology/src/v1/types/name.rs b/librepology/src/v1/types/name.rs
new file mode 100644
index 0000000..649e70d
--- /dev/null
+++ b/librepology/src/v1/types/name.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// package name as in repository (if different from version)
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct Name(String);
+
+impl Deref for Name {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/package.rs b/librepology/src/v1/types/package.rs
new file mode 100644
index 0000000..fc66faa
--- /dev/null
+++ b/librepology/src/v1/types/package.rs
@@ -0,0 +1,71 @@
+use crate::v1::types::*;
+
+#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)]
+pub struct Package {
+ /// name of repository for this package
+ repo: Repo,
+
+ /// name
+ name: Name,
+
+ /// version
+ version: Version,
+
+ /// package status, one of newest, devel, unique, outdated, legacy, rolling, noscheme, incorrect, untrusted, ignored
+ status: Option<Status>,
+
+ /// one-line description of the package
+ summary: Option<Summary>,
+
+ /// list of package licenses
+ licenses: Option<Vec<License>>,
+
+ /// list of package maintainers
+ maintainers: Option<Vec<Maintainer>>,
+
+ /// list of package webpages
+ www: Option<Vec<Www>>,
+
+ /// list of package downloads
+ downloads: Option<Vec<Download>>,
+}
+
+impl Package {
+ pub fn repo(&self) -> &Repo {
+ &self.repo
+ }
+
+ pub fn name(&self) -> &Name {
+ &self.name
+ }
+
+ pub fn version(&self) -> &Version {
+ &self.version
+ }
+
+ pub fn status(&self) -> Option<&Status> {
+ self.status.as_ref()
+ }
+
+ pub fn summary(&self) -> Option<&Summary> {
+ self.summary.as_ref()
+ }
+
+ pub fn licenses(&self) -> Option<&Vec<License>> {
+ self.licenses.as_ref()
+ }
+
+ pub fn maintainers(&self) -> Option<&Vec<Maintainer>> {
+ self.maintainers.as_ref()
+ }
+
+ pub fn www(&self) -> Option<&Vec<Www>> {
+ self.www.as_ref()
+ }
+
+ pub fn downloads(&self) -> Option<&Vec<Download>> {
+ self.downloads.as_ref()
+ }
+
+}
+
diff --git a/librepology/src/v1/types/problem.rs b/librepology/src/v1/types/problem.rs
new file mode 100644
index 0000000..60c7cc4
--- /dev/null
+++ b/librepology/src/v1/types/problem.rs
@@ -0,0 +1,41 @@
+use crate::v1::types::*;
+
+#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)]
+pub struct Problem {
+ #[serde(rename = "repo")]
+ repo: Repo,
+
+ #[serde(rename = "name")]
+ name: Name,
+
+ #[serde(rename = "effname")]
+ effname: EffName,
+
+ #[serde(rename = "maintainer")]
+ maintainer: Maintainer,
+
+ #[serde(rename = "problem")]
+ problem: String,
+}
+
+impl Problem {
+ pub fn repo(&self) -> &Repo {
+ &self.repo
+ }
+
+ pub fn name(&self) -> &Name {
+ &self.name
+ }
+
+ pub fn effname(&self) -> &EffName {
+ &self.effname
+ }
+
+ pub fn maintainer(&self) -> &Maintainer {
+ &self.maintainer
+ }
+
+ pub fn problem_description(&self) -> &String {
+ &self.problem
+ }
+}
diff --git a/librepology/src/v1/types/repo.rs b/librepology/src/v1/types/repo.rs
new file mode 100644
index 0000000..7305ec6
--- /dev/null
+++ b/librepology/src/v1/types/repo.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// name of repository for this package
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct Repo(String);
+
+impl Deref for Repo {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/status.rs b/librepology/src/v1/types/status.rs
new file mode 100644
index 0000000..c42d510
--- /dev/null
+++ b/librepology/src/v1/types/status.rs
@@ -0,0 +1,44 @@
+// package status
+#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize, Display)]
+pub enum Status {
+ #[serde(rename = "newest")]
+ #[display(fmt = "newest")]
+ Newest,
+
+ #[serde(rename = "devel")]
+ #[display(fmt = "devel")]
+ Devel,
+
+ #[serde(rename = "unique")]
+ #[display(fmt = "unique")]
+ Unique,
+
+ #[serde(rename = "outdated")]
+ #[display(fmt = "outdated")]
+ Outdated,
+
+ #[serde(rename = "legacy")]
+ #[display(fmt = "legacy")]
+ Legacy,
+
+ #[serde(rename = "rolling")]
+ #[display(fmt = "rolling")]
+ Rolling,
+
+ #[serde(rename = "noscheme")]
+ #[display(fmt = "noscheme")]
+ Noscheme,
+
+ #[serde(rename = "incorrect")]
+ #[display(fmt = "incorrect")]
+ Incorrect,
+
+ #[serde(rename = "untrusted")]
+ #[display(fmt = "untrusted")]
+ Untrusted,
+
+ #[serde(rename = "ignored")]
+ #[display(fmt = "ignored")]
+ Ignored,
+}
+
diff --git a/librepology/src/v1/types/summary.rs b/librepology/src/v1/types/summary.rs
new file mode 100644
index 0000000..494e671
--- /dev/null
+++ b/librepology/src/v1/types/summary.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// one-line description of the package
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct Summary(String);
+
+impl Deref for Summary {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/version.rs b/librepology/src/v1/types/version.rs
new file mode 100644
index 0000000..cad703a
--- /dev/null
+++ b/librepology/src/v1/types/version.rs
@@ -0,0 +1,14 @@
+use std::ops::Deref;
+
+// package version (sanitized)
+#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, Serialize, Deserialize)]
+pub struct Version(String);
+
+impl Deref for Version {
+ type Target = String;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
diff --git a/librepology/src/v1/types/www.rs b/librepology/src/v1/types/www.rs
new file mode 100644
index 0000000..a59ef02
--- /dev/null
+++ b/librepology/src/v1/types/www.rs
@@ -0,0 +1,15 @@
+use std::ops::Deref;
+use url::Url;
+
+// list of package webpages
+#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)]
+pub struct Www(#[serde(with = "url_serde")] Url);
+
+impl Deref for Www {
+ type Target = Url;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+