Skip to main content

provenant/output_schema/
license_index_provenance.rs

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