Skip to main content

provenant/output_schema/
license_index_provenance.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4pub struct OutputLicenseIndexProvenance {
5    pub source: String,
6    pub dataset_fingerprint: String,
7    #[serde(default, skip_serializing_if = "Vec::is_empty")]
8    pub ignored_rules: Vec<String>,
9    #[serde(default, skip_serializing_if = "Vec::is_empty")]
10    pub ignored_licenses: Vec<String>,
11    #[serde(default, skip_serializing_if = "Vec::is_empty")]
12    pub ignored_rules_due_to_licenses: Vec<String>,
13    #[serde(default, skip_serializing_if = "Vec::is_empty")]
14    pub added_rules: Vec<String>,
15    #[serde(default, skip_serializing_if = "Vec::is_empty")]
16    pub replaced_rules: Vec<String>,
17    #[serde(default, skip_serializing_if = "Vec::is_empty")]
18    pub added_licenses: Vec<String>,
19    #[serde(default, skip_serializing_if = "Vec::is_empty")]
20    pub replaced_licenses: Vec<String>,
21}
22
23impl From<&crate::models::LicenseIndexProvenance> for OutputLicenseIndexProvenance {
24    fn from(value: &crate::models::LicenseIndexProvenance) -> Self {
25        Self {
26            source: value.source.clone(),
27            dataset_fingerprint: value.dataset_fingerprint.clone(),
28            ignored_rules: value.ignored_rules.clone(),
29            ignored_licenses: value.ignored_licenses.clone(),
30            ignored_rules_due_to_licenses: value.ignored_rules_due_to_licenses.clone(),
31            added_rules: value.added_rules.clone(),
32            replaced_rules: value.replaced_rules.clone(),
33            added_licenses: value.added_licenses.clone(),
34            replaced_licenses: value.replaced_licenses.clone(),
35        }
36    }
37}