winget_types/installer/dependencies/
package.rs1use crate::shared::{PackageIdentifier, PackageVersion};
2
3#[derive(Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5#[cfg_attr(feature = "serde", serde(rename_all = "PascalCase"))]
6pub struct PackageDependencies {
7 pub package_identifier: PackageIdentifier,
8 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
9 pub minimum_version: Option<PackageVersion>,
10}
11
12impl PackageDependencies {
13 #[must_use]
15 pub const fn new(package_identifier: PackageIdentifier) -> Self {
16 Self {
17 package_identifier,
18 minimum_version: None,
19 }
20 }
21
22 #[must_use]
24 pub const fn new_with_min_version(
25 package_identifier: PackageIdentifier,
26 minimum_version: PackageVersion,
27 ) -> Self {
28 Self {
29 package_identifier,
30 minimum_version: Some(minimum_version),
31 }
32 }
33}