119625d8cSopenharmony_ci/// Origin of the argument's value
219625d8cSopenharmony_ci#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
319625d8cSopenharmony_ci#[non_exhaustive]
419625d8cSopenharmony_cipub enum ValueSource {
519625d8cSopenharmony_ci    /// Value came [`Arg::default_value`][crate::Arg::default_value]
619625d8cSopenharmony_ci    DefaultValue,
719625d8cSopenharmony_ci    /// Value came [`Arg::env`][crate::Arg::env]
819625d8cSopenharmony_ci    EnvVariable,
919625d8cSopenharmony_ci    /// Value was passed in on the command-line
1019625d8cSopenharmony_ci    CommandLine,
1119625d8cSopenharmony_ci}
1219625d8cSopenharmony_ci
1319625d8cSopenharmony_ciimpl ValueSource {
1419625d8cSopenharmony_ci    pub(crate) fn is_explicit(self) -> bool {
1519625d8cSopenharmony_ci        self != Self::DefaultValue
1619625d8cSopenharmony_ci    }
1719625d8cSopenharmony_ci}
18