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