winget_types/shared/
manifest_type.rs

1use std::fmt::{Display, Formatter};
2
3use icu_locid::LanguageIdentifier;
4use serde::{Deserialize, Serialize};
5
6#[derive(Clone, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Deserialize, Serialize)]
7#[serde(rename_all = "camelCase")]
8pub enum ManifestType {
9    #[default]
10    Installer,
11    DefaultLocale,
12    Locale,
13    Version,
14}
15
16impl Display for ManifestType {
17    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
18        match self {
19            Self::Installer => f.write_str("Installer"),
20            Self::DefaultLocale => f.write_str("DefaultLocale"),
21            Self::Locale => f.write_str("Locale"),
22            Self::Version => f.write_str("Version"),
23        }
24    }
25}
26
27pub enum ManifestTypeWithLocale {
28    Installer,
29    Locale(LanguageIdentifier),
30    Version,
31}