hackeraudit_api_common/
lib.rs1extern crate serde;
2#[macro_use]
3extern crate serde_derive;
4extern crate serde_json;
5
6#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize, Clone)]
7pub struct AuditRequestPackage {
8 pub source: String,
9 pub name: String,
10 pub version: String,
11}
12
13#[derive(Debug, Serialize, Deserialize, Clone)]
14pub struct AuditRequest {
15 pub packages: Vec<AuditRequestPackage>,
16 pub token: Option<String>,
17}
18
19#[derive(Debug, Serialize, Deserialize, Default, Clone, Copy)]
20pub struct UsageStatsItem {
21 pub bad: i64,
22 pub good: i64,
23 pub used: i64,
24}
25
26impl UsageStatsItem {
27 pub fn empty() -> Self {
28 UsageStatsItem {
29 bad: 0,
30 good: 0,
31 used: 0,
32 }
33 }
34}
35
36#[derive(Debug, Serialize, Deserialize, Default, Clone)]
37pub struct UsageStats {
38 pub patch: UsageStatsItem,
39 pub minor: UsageStatsItem,
40 pub major: UsageStatsItem,
41 pub total: UsageStatsItem,
42}
43
44impl UsageStats {
45 pub fn empty() -> Self {
46 UsageStats {
47 patch: UsageStatsItem::empty(),
48 minor: UsageStatsItem::empty(),
49 major: UsageStatsItem::empty(),
50 total: UsageStatsItem::empty(),
51 }
52 }
53}
54
55#[derive(Debug, Serialize, Deserialize, Clone)]
56pub struct AuditResponsePackage {
57 pub stats: UsageStats,
58 pub self_score_good: bool,
59 pub self_score_bad: bool,
60 pub url: Option<String>,
61}
62
63#[derive(Debug, Serialize, Deserialize, Clone)]
64pub struct AuditResponse {
65 pub packages: Vec<Result<AuditResponsePackage, String>>,
66 pub username: Option<String>,
67}