use alloc::{collections::BTreeSet, string::String};
pub use package::PackageDependencies;
mod package;
#[derive(Clone, Debug, Default, Eq, PartialEq, Hash, Ord, PartialOrd)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "PascalCase"))]
pub struct Dependencies {
#[cfg_attr(
feature = "serde",
serde(skip_serializing_if = "BTreeSet::is_empty", default)
)]
pub windows_features: BTreeSet<String>,
#[cfg_attr(
feature = "serde",
serde(skip_serializing_if = "BTreeSet::is_empty", default)
)]
pub windows_libraries: BTreeSet<String>,
#[cfg_attr(
feature = "serde",
serde(
rename = "PackageDependencies",
skip_serializing_if = "BTreeSet::is_empty",
default
)
)]
pub package: BTreeSet<PackageDependencies>,
#[cfg_attr(
feature = "serde",
serde(
rename = "ExternalDependencies",
skip_serializing_if = "BTreeSet::is_empty",
default
)
)]
pub external: BTreeSet<String>,
}
impl Dependencies {
#[must_use]
pub fn is_empty(&self) -> bool {
self.windows_features.is_empty()
&& self.windows_libraries.is_empty()
&& self.package.is_empty()
&& self.external.is_empty()
}
}