blob: 7d4700446058d5375b32ccaa346e27346fa88e59 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
use std::ops::Deref;
use url::Url;
#[derive(Debug, Serialize, Deserialize)]
pub struct Configuration {
#[serde(with = "url_serde")]
#[serde(rename = "repology_url")]
repology_url: Url,
#[serde(rename = "whitelist")]
whitelist: Vec<String>,
#[serde(rename = "blacklist")]
blacklist: Vec<String>,
#[serde(rename = "local_packages")]
local_packages: Option<Vec<Package>>,
}
impl Configuration {
pub fn repology_url(&self) -> &Url {
&self.repology_url
}
pub fn whitelist(&self) -> &Vec<String> {
&self.whitelist
}
pub fn blacklist(&self) -> &Vec<String> {
&self.blacklist
}
// unused
//pub fn local_packages(&self) -> Option<&Vec<Package>> {
// self.local_packages.as_ref()
//}
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Package {
#[serde(rename = "name")]
name: String,
#[serde(rename = "local_version")]
local_version: Version,
}
/// Not reusing the librepology type here because it might change
#[derive(Debug, Serialize, Deserialize)]
pub struct Version(String);
impl Deref for Version {
type Target = String;
fn deref(&self) -> &Self::Target {
&self.0
}
}
|