framework/
frameworks.rs

1use serde_json::Value;
2use std::collections::HashSet;
3use crate::DetectFramework;
4
5#[derive(Serialize, Deserialize, PartialEq, Debug, Clone)]
6pub struct Framework {
7    pub name: String,
8    pub path: String,
9    pub relative: String,
10    pub files: HashSet<String>,
11    pub languages: HashSet<String>,
12}
13
14impl Framework {
15    pub fn from(fw: &DetectFramework) -> Framework {
16        let framework = fw.clone();
17        let files_set = framework.files.into_inner();
18        let languages_set = framework.languages.into_inner();
19
20        Framework {
21            name: fw.name.clone(),
22            path: fw.path.clone(),
23            relative: "".to_string(),
24            files: files_set,
25            languages: languages_set
26        }
27    }
28}
29
30#[derive(Serialize, Deserialize, Clone, Debug)]
31pub struct Frameworks {
32    pub frameworks: Vec<Framework>,
33    pub facets: Vec<Value>
34}