provenant-cli 0.1.3

Independent Rust scanner for ScanCode-compatible workflows, licenses, package metadata, SBOMs, and provenance data.
Documentation
// SPDX-FileCopyrightText: Provenant contributors
// SPDX-License-Identifier: Apache-2.0

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct OutputLicenseIndexProvenance {
    pub source: String,
    pub dataset_fingerprint: String,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub ignored_rules: Vec<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub ignored_licenses: Vec<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub ignored_rules_due_to_licenses: Vec<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub added_rules: Vec<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub replaced_rules: Vec<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub added_licenses: Vec<String>,
    #[serde(default, skip_serializing_if = "Vec::is_empty")]
    pub replaced_licenses: Vec<String>,
}

impl From<&crate::models::LicenseIndexProvenance> for OutputLicenseIndexProvenance {
    fn from(value: &crate::models::LicenseIndexProvenance) -> Self {
        Self {
            source: value.source.clone(),
            dataset_fingerprint: value.dataset_fingerprint.clone(),
            ignored_rules: value.ignored_rules.clone(),
            ignored_licenses: value.ignored_licenses.clone(),
            ignored_rules_due_to_licenses: value.ignored_rules_due_to_licenses.clone(),
            added_rules: value.added_rules.clone(),
            replaced_rules: value.replaced_rules.clone(),
            added_licenses: value.added_licenses.clone(),
            replaced_licenses: value.replaced_licenses.clone(),
        }
    }
}