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}