diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-04-07 18:03:43 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-07 18:03:50 +0200 |
commit | 8f44f7c9d7877e9dba11e09fdd1b80ffa0013d42 (patch) | |
tree | 41f38893d8d2de716518e2ea7015cce480232105 | |
parent | 825a0216c4fe4fb76e2fd27621eab74dcc189e60 (diff) |
lib: Fix Problems API types to match API
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | librepology/Cargo.toml | 1 | ||||
-rw-r--r-- | librepology/src/v1/types/response/binname.rs | 14 | ||||
-rw-r--r-- | librepology/src/v1/types/response/mod.rs | 4 | ||||
-rw-r--r-- | librepology/src/v1/types/response/problem.rs | 60 | ||||
-rw-r--r-- | librepology/src/v1/types/response/srcname.rs | 14 |
5 files changed, 66 insertions, 27 deletions
diff --git a/librepology/Cargo.toml b/librepology/Cargo.toml index 9055052..ba4ef3e 100644 --- a/librepology/Cargo.toml +++ b/librepology/Cargo.toml @@ -22,4 +22,5 @@ serde_json = "1" thiserror = "1" url = "1.7" url_serde = "0.2" +getset = "0.1" diff --git a/librepology/src/v1/types/response/binname.rs b/librepology/src/v1/types/response/binname.rs new file mode 100644 index 0000000..0f90a1b --- /dev/null +++ b/librepology/src/v1/types/response/binname.rs @@ -0,0 +1,14 @@ +use std::ops::Deref; + +// list of package downloads +#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, serde::Deserialize)] +pub struct BinName(String); + +impl Deref for BinName { + type Target = String; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + diff --git a/librepology/src/v1/types/response/mod.rs b/librepology/src/v1/types/response/mod.rs index a3902ad..4ea107d 100644 --- a/librepology/src/v1/types/response/mod.rs +++ b/librepology/src/v1/types/response/mod.rs @@ -6,6 +6,7 @@ //! This top-level module exports all types of the submodules publicly. //! +mod binname; mod category; mod download; mod effname; @@ -15,11 +16,13 @@ mod name; mod package; mod problem; mod repo; +mod srcname; mod status; mod summary; mod version; mod www; +pub use crate::v1::types::response::binname::BinName; pub use crate::v1::types::response::category::Category; pub use crate::v1::types::response::download::Download; pub use crate::v1::types::response::effname::EffName; @@ -29,6 +32,7 @@ pub use crate::v1::types::response::name::Name; pub use crate::v1::types::response::package::Package; pub use crate::v1::types::response::problem::Problem; pub use crate::v1::types::response::repo::Repo; +pub use crate::v1::types::response::srcname::SrcName; pub use crate::v1::types::response::status::Status; pub use crate::v1::types::response::summary::Summary; pub use crate::v1::types::response::version::Version; diff --git a/librepology/src/v1/types/response/problem.rs b/librepology/src/v1/types/response/problem.rs index 309fe3d..82c5709 100644 --- a/librepology/src/v1/types/response/problem.rs +++ b/librepology/src/v1/types/response/problem.rs @@ -1,41 +1,47 @@ +use std::collections::HashMap; + use crate::v1::types::response::*; -#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize)] +#[derive(Eq, PartialEq, Clone, Debug, serde::Deserialize, getset::Getters)] pub struct Problem { + #[serde(rename = "type")] + #[getset(get = "pub")] + problemtype: String, + + #[serde(rename = "data")] + #[getset(get = "pub")] + data: HashMap<String, String>, + #[serde(rename = "repo")] + #[getset(get = "pub")] repo: Repo, #[serde(rename = "name")] - name: Name, + #[getset(get = "pub")] + name: Option<Name>, - #[serde(rename = "effname")] - effname: EffName, + #[serde(rename = "srcname")] + #[getset(get = "pub")] + srcname: SrcName, - #[serde(rename = "maintainer")] - maintainer: Maintainer, + #[serde(rename = "binname")] + #[getset(get = "pub")] + binname: BinName, - #[serde(rename = "problem")] - problem: String, -} + #[serde(rename = "rawversion")] + #[getset(get = "pub")] + rawversion: String, -impl Problem { - pub fn repo(&self) -> &Repo { - &self.repo - } + #[serde(rename = "maintainers")] + #[getset(get = "pub")] + maintainers: Vec<Maintainer>, - pub fn name(&self) -> &Name { - &self.name - } - - pub fn effname(&self) -> &EffName { - &self.effname - } - - pub fn maintainer(&self) -> &Maintainer { - &self.maintainer - } + #[serde(rename = "effname")] + #[getset(get = "pub")] + effname: EffName, - pub fn problem_description(&self) -> &String { - &self.problem - } + #[serde(rename = "version")] + #[getset(get = "pub")] + version: String, } + diff --git a/librepology/src/v1/types/response/srcname.rs b/librepology/src/v1/types/response/srcname.rs new file mode 100644 index 0000000..d652d71 --- /dev/null +++ b/librepology/src/v1/types/response/srcname.rs @@ -0,0 +1,14 @@ +use std::ops::Deref; + +// list of package downloads +#[derive(Eq, PartialEq, Ord, PartialOrd, Clone, Debug, serde::Deserialize)] +pub struct SrcName(String); + +impl Deref for SrcName { + type Target = String; + + fn deref(&self) -> &Self::Target { + &self.0 + } +} + |