winbrew_models\catalog/
raw.rs1use serde::{Deserialize, Serialize};
4
5use crate::catalog::installer_type::CatalogInstallerType;
6use crate::shared::HashAlgorithm;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct RawCatalogPackage {
11 pub id: String,
13 pub name: String,
15 pub version: String,
17 pub source: String,
19 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub namespace: Option<String>,
22 pub source_id: String,
24 pub description: Option<String>,
26 pub homepage: Option<String>,
28 pub license: Option<String>,
30 pub publisher: Option<String>,
32 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub locale: Option<String>,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub moniker: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub platform: Option<String>,
41 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub commands: Option<String>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
46 pub protocols: Option<String>,
47 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub file_extensions: Option<String>,
50 #[serde(default, skip_serializing_if = "Option::is_none")]
52 pub capabilities: Option<String>,
53 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub tags: Option<String>,
56 #[serde(default, skip_serializing_if = "Option::is_none")]
58 pub bin: Option<String>,
59 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub env_add_path: Option<String>,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
66pub struct RawCatalogInstaller {
67 pub package_id: String,
69 pub url: String,
71 pub hash: String,
73 pub hash_algorithm: HashAlgorithm,
75 pub installer_type: CatalogInstallerType,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub installer_switches: Option<String>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub platform: Option<String>,
83 #[serde(default, skip_serializing_if = "Option::is_none")]
85 pub commands: Option<String>,
86 #[serde(default, skip_serializing_if = "Option::is_none")]
88 pub protocols: Option<String>,
89 #[serde(default, skip_serializing_if = "Option::is_none")]
91 pub file_extensions: Option<String>,
92 #[serde(default, skip_serializing_if = "Option::is_none")]
94 pub capabilities: Option<String>,
95 pub arch: String,
97 pub kind: String,
99 #[serde(default, skip_serializing_if = "Option::is_none")]
101 pub nested_kind: Option<String>,
102 #[serde(default, skip_serializing_if = "Option::is_none")]
104 pub scope: Option<String>,
105}