use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PackageSummary {
pub display_name: String,
pub name: String,
#[serde(rename = "type")]
pub r#type: String,
pub version: String,
pub package_classification: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub architecture: Option<ArchType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub software_sources: Option<Vec<SoftwareSourceDetails>>,
}
pub struct PackageSummaryRequired {
pub display_name: String,
pub name: String,
pub r#type: String,
pub version: String,
pub package_classification: String,
}
impl PackageSummary {
pub fn new(required: PackageSummaryRequired) -> Self {
Self {
display_name: required.display_name,
name: required.name,
r#type: required.r#type,
version: required.version,
package_classification: required.package_classification,
architecture: None,
software_sources: None,
}
}
pub fn set_display_name(mut self, value: String) -> Self {
self.display_name = value;
self
}
pub fn set_name(mut self, value: String) -> Self {
self.name = value;
self
}
pub fn set_type(mut self, value: String) -> Self {
self.r#type = value;
self
}
pub fn set_version(mut self, value: String) -> Self {
self.version = value;
self
}
pub fn set_architecture(mut self, value: Option<ArchType>) -> Self {
self.architecture = value;
self
}
pub fn set_software_sources(mut self, value: Option<Vec<SoftwareSourceDetails>>) -> Self {
self.software_sources = value;
self
}
pub fn set_package_classification(mut self, value: String) -> Self {
self.package_classification = value;
self
}
pub fn with_architecture(mut self, value: ArchType) -> Self {
self.architecture = Some(value);
self
}
pub fn with_software_sources(mut self, value: Vec<SoftwareSourceDetails>) -> Self {
self.software_sources = Some(value);
self
}
}