winget_types/locale/icon/
mod.rs

1pub 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    /// The url of the hosted icon file
17    #[cfg_attr(feature = "serde", serde(rename = "IconUrl"))]
18    pub url: Url,
19    /// The icon file type
20    #[cfg_attr(feature = "serde", serde(rename = "IconFileType"))]
21    pub file_type: IconFileType,
22    /// Optional icon resolution
23    #[cfg_attr(
24        feature = "serde",
25        serde(rename = "IconResolution", skip_serializing_if = "Option::is_none")
26    )]
27    pub resolution: Option<IconResolution>,
28    /// Optional icon theme
29    #[cfg_attr(
30        feature = "serde",
31        serde(rename = "IconTheme", skip_serializing_if = "Option::is_none")
32    )]
33    pub theme: Option<IconTheme>,
34    /// Optional Sha256 of the icon file
35    #[cfg_attr(
36        feature = "serde",
37        serde(rename = "IconSha256", skip_serializing_if = "Option::is_none")
38    )]
39    pub sha_256: Option<Sha256String>,
40}