provenant/output_schema/
extra_data.rs1use serde::{Deserialize, Serialize};
5
6use super::license_index_provenance::OutputLicenseIndexProvenance;
7use super::system_environment::OutputSystemEnvironment;
8
9#[derive(Serialize, Deserialize, Debug, Clone)]
10pub struct OutputExtraData {
11 pub system_environment: OutputSystemEnvironment,
12 pub spdx_license_list_version: String,
13 pub files_count: usize,
14 pub directories_count: usize,
15 pub excluded_count: usize,
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub license_index_provenance: Option<OutputLicenseIndexProvenance>,
18}
19
20impl From<&crate::models::ExtraData> for OutputExtraData {
21 fn from(value: &crate::models::ExtraData) -> Self {
22 Self {
23 system_environment: OutputSystemEnvironment::from(&value.system_environment),
24 spdx_license_list_version: value.spdx_license_list_version.clone(),
25 files_count: value.files_count,
26 directories_count: value.directories_count,
27 excluded_count: value.excluded_count,
28 license_index_provenance: value
29 .license_index_provenance
30 .as_ref()
31 .map(OutputLicenseIndexProvenance::from),
32 }
33 }
34}