rswappalyzer_engine/core/
basic_info.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
5pub struct CategoryRule {
6 #[serde(default)]
7 pub name: String,
8 #[serde(default)]
9 pub priority: Option<u32>,
10 #[serde(default)]
11 pub id: u32,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
16pub struct TechBasicInfo {
17 pub tech_name: Option<String>,
18 pub category_ids: Vec<u32>,
19 #[serde(default)]
20 pub implies: Option<Vec<String>>,
21
22 #[cfg(feature = "full-meta")]
24 pub cpe: Option<String>,
25 #[cfg(feature = "full-meta")]
26 pub description: Option<String>,
27 #[cfg(feature = "full-meta")]
28 pub website: Option<String>,
29 #[cfg(feature = "full-meta")]
30 pub icon: Option<String>,
31 #[cfg(feature = "full-meta")]
32 pub saas: Option<bool>,
33 #[cfg(feature = "full-meta")]
34 pub pricing: Option<Vec<String>>,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
38pub struct CategoryEntry {
39 #[serde(default)] pub groups: Vec<u32>,
41 pub name: String,
42 #[serde(default)]
43 pub priority: u8,
44}