+ match value.get_value_hint() {
+ ValueHint::AnyPath => Self::Path,
+ ValueHint::FilePath => Self::Path,
+ ValueHint::DirPath => Self::Path,
+ ValueHint::ExecutablePath => Self::Path,
+ ValueHint::CommandName => Self::Command,
+ ValueHint::CommandString => Self::Command,
+ ValueHint::CommandWithArguments => Self::Command,
+ ValueHint::Username => Self::Name,
+ ValueHint::Hostname => Self::Name,
+ ValueHint::Url => Self::Url,
+ ValueHint::EmailAddress => Self::Email,
+ _ => {
+ let type_id = value.get_value_parser().type_id();
+ if type_id == ValueParser::new(RangedU64ValueParser::<u8>::new()).type_id() {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedU64ValueParser::<u16>::new()).type_id()
+ {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedU64ValueParser::<u32>::new()).type_id()
+ {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedU64ValueParser::<u64>::new()).type_id()
+ {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedI64ValueParser::<i8>::new()).type_id() {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedI64ValueParser::<i16>::new()).type_id()
+ {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedI64ValueParser::<i32>::new()).type_id()
+ {
+ Self::Range
+ } else if type_id == ValueParser::new(RangedI64ValueParser::<i64>::new()).type_id()
+ {
+ Self::Range
+ } else if type_id == ValueParser::string().type_id() {
+ Self::String
+ } else {
+ Self::Unknown
+ }
+ }