winget_types/locale/icon/
mod.rs1pub mod file_type;
2pub mod resolution;
3pub mod theme;
4
5use url::Url;
6
7use crate::{
8 locale::icon::{file_type::IconFileType, resolution::IconResolution, theme::IconTheme},
9 shared::Sha256String,
10};
11
12#[derive(Ord, PartialOrd, Eq, PartialEq)]
13#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
14#[cfg_attr(feature = "serde", serde(rename_all = "PascalCase"))]
15pub struct Icon {
16 #[cfg_attr(feature = "serde", serde(rename = "IconUrl"))]
18 pub url: Url,
19 #[cfg_attr(feature = "serde", serde(rename = "IconFileType"))]
21 pub file_type: IconFileType,
22 #[cfg_attr(
24 feature = "serde",
25 serde(rename = "IconResolution", skip_serializing_if = "Option::is_none")
26 )]
27 pub resolution: Option<IconResolution>,
28 #[cfg_attr(
30 feature = "serde",
31 serde(rename = "IconTheme", skip_serializing_if = "Option::is_none")
32 )]
33 pub theme: Option<IconTheme>,
34 #[cfg_attr(
36 feature = "serde",
37 serde(rename = "IconSha256", skip_serializing_if = "Option::is_none")
38 )]
39 pub sha_256: Option<Sha256String>,
40}