use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Vulnerability {
#[serde(rename = "package", deserialize_with = "Option::deserialize")]
pub package: Option<Box<models::VulnerabilityPackage>>,
#[serde(rename = "vulnerable_version_range", deserialize_with = "Option::deserialize")]
pub vulnerable_version_range: Option<String>,
#[serde(rename = "first_patched_version", deserialize_with = "Option::deserialize")]
pub first_patched_version: Option<String>,
#[serde(rename = "vulnerable_functions", deserialize_with = "Option::deserialize")]
pub vulnerable_functions: Option<Vec<String>>,
}
impl Vulnerability {
pub fn new(package: Option<models::VulnerabilityPackage>, vulnerable_version_range: Option<String>, first_patched_version: Option<String>, vulnerable_functions: Option<Vec<String>>) -> Vulnerability {
Vulnerability {
package: package.map(Box::new),
vulnerable_version_range,
first_patched_version,
vulnerable_functions,
}
}
}