Skip to main content

provenant/output_schema/
license_policy_entry.rs

1// SPDX-FileCopyrightText: Provenant contributors
2// SPDX-License-Identifier: Apache-2.0
3
4use serde::{Deserialize, Serialize};
5
6use crate::models::ComplianceAlert;
7
8#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
9pub struct OutputLicensePolicyEntry {
10    pub license_key: String,
11    pub label: String,
12    pub color_code: String,
13    pub icon: String,
14    #[serde(default, skip_serializing_if = "Option::is_none")]
15    pub compliance_alert: Option<ComplianceAlert>,
16}
17
18impl From<&crate::models::LicensePolicyEntry> for OutputLicensePolicyEntry {
19    fn from(value: &crate::models::LicensePolicyEntry) -> Self {
20        Self {
21            license_key: value.license_key.clone(),
22            label: value.label.clone(),
23            color_code: value.color_code.clone(),
24            icon: value.icon.clone(),
25            compliance_alert: value.compliance_alert,
26        }
27    }
28}
29
30impl TryFrom<&OutputLicensePolicyEntry> for crate::models::LicensePolicyEntry {
31    type Error = String;
32    fn try_from(value: &OutputLicensePolicyEntry) -> Result<Self, Self::Error> {
33        Ok(Self {
34            license_key: value.license_key.clone(),
35            label: value.label.clone(),
36            color_code: value.color_code.clone(),
37            icon: value.icon.clone(),
38            compliance_alert: value.compliance_alert,
39        })
40    }
41}