use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct AurPackage {
pub name: String,
pub version: String,
pub description: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub popularity: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub out_of_date: Option<u64>,
#[serde(default)]
pub orphaned: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maintainer: Option<String>,
}
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct AurPackageDetails {
pub name: String,
pub version: String,
pub description: String,
pub url: String,
pub licenses: Vec<String>,
pub groups: Vec<String>,
pub provides: Vec<String>,
pub depends: Vec<String>,
pub make_depends: Vec<String>,
pub opt_depends: Vec<String>,
pub conflicts: Vec<String>,
pub replaces: Vec<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maintainer: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_submitted: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_modified: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub popularity: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub num_votes: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub out_of_date: Option<u64>,
#[serde(default)]
pub orphaned: bool,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct AurComment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub author: String,
pub date: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date_timestamp: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date_url: Option<String>,
pub content: String,
#[serde(default)]
pub pinned: bool,
}