winget_types/installer/switches/
custom.rs

1use derive_more::{Deref, DerefMut, Display, FromStr, IntoIterator};
2use serde_with::{DeserializeFromStr, SerializeDisplay};
3
4use crate::installer::switches::switch::InstallerSwitch;
5
6#[derive(
7    Clone,
8    Debug,
9    Deref,
10    DerefMut,
11    Display,
12    Eq,
13    PartialEq,
14    FromStr,
15    Ord,
16    PartialOrd,
17    Hash,
18    IntoIterator,
19    SerializeDisplay,
20    DeserializeFromStr,
21)]
22pub struct CustomSwitch(#[into_iterator(owned, ref, ref_mut)] InstallerSwitch<2048>);
23
24impl CustomSwitch {
25    #[must_use]
26    pub fn all_users() -> Self {
27        "/ALLUSERS".parse().unwrap_or_else(|_| unreachable!())
28    }
29
30    #[must_use]
31    pub fn current_user() -> Self {
32        "/CURRENTUSER".parse().unwrap_or_else(|_| unreachable!())
33    }
34}