pub struct RangedI64ValueParser<T = i64>{ /* private fields */ }
Expand description
Parse number that fall within a range of values
NOTE: To capture negative values, you will also need to set
Arg::allow_negative_numbers
or
Arg::allow_hyphen_values
.
§Example
Usage:
let mut cmd = clap::Command::new("raw")
.arg(
clap::Arg::new("port")
.long("port")
.value_parser(clap::value_parser!(u16).range(3000..))
.action(clap::ArgAction::Set)
.required(true)
);
let m = cmd.try_get_matches_from_mut(["cmd", "--port", "3001"]).unwrap();
let port: u16 = *m.get_one("port")
.expect("required");
assert_eq!(port, 3001);
Semantics:
let value_parser = clap::builder::RangedI64ValueParser::<i32>::new().range(-1..200);
assert!(value_parser.parse_ref(&cmd, arg, OsStr::new("random")).is_err());
assert!(value_parser.parse_ref(&cmd, arg, OsStr::new("")).is_err());
assert!(value_parser.parse_ref(&cmd, arg, OsStr::new("-200")).is_err());
assert!(value_parser.parse_ref(&cmd, arg, OsStr::new("300")).is_err());
assert_eq!(value_parser.parse_ref(&cmd, arg, OsStr::new("-1")).unwrap(), -1);
assert_eq!(value_parser.parse_ref(&cmd, arg, OsStr::new("0")).unwrap(), 0);
assert_eq!(value_parser.parse_ref(&cmd, arg, OsStr::new("50")).unwrap(), 50);
Implementations§
Source§impl<T> RangedI64ValueParser<T>
impl<T> RangedI64ValueParser<T>
Sourcepub fn new() -> RangedI64ValueParser<T>
pub fn new() -> RangedI64ValueParser<T>
Select full range of i64
Sourcepub fn range<B>(self, range: B) -> RangedI64ValueParser<T>where
B: RangeBounds<i64>,
pub fn range<B>(self, range: B) -> RangedI64ValueParser<T>where
B: RangeBounds<i64>,
Narrow the supported range
Trait Implementations§
Source§impl<T> Clone for RangedI64ValueParser<T>
impl<T> Clone for RangedI64ValueParser<T>
Source§fn clone(&self) -> RangedI64ValueParser<T>
fn clone(&self) -> RangedI64ValueParser<T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<T> Debug for RangedI64ValueParser<T>
impl<T> Debug for RangedI64ValueParser<T>
Source§impl<T> Default for RangedI64ValueParser<T>
impl<T> Default for RangedI64ValueParser<T>
Source§fn default() -> RangedI64ValueParser<T>
fn default() -> RangedI64ValueParser<T>
Returns the “default value” for a type. Read more
Source§impl<T, B> From<B> for RangedI64ValueParser<T>
impl<T, B> From<B> for RangedI64ValueParser<T>
Source§fn from(range: B) -> RangedI64ValueParser<T>
fn from(range: B) -> RangedI64ValueParser<T>
Converts to this type from the input type.
Source§impl<T> TypedValueParser for RangedI64ValueParser<T>
impl<T> TypedValueParser for RangedI64ValueParser<T>
Source§fn parse_ref(
&self,
cmd: &Command,
arg: Option<&Arg>,
raw_value: &OsStr,
) -> Result<<RangedI64ValueParser<T> as TypedValueParser>::Value, Error>
fn parse_ref( &self, cmd: &Command, arg: Option<&Arg>, raw_value: &OsStr, ) -> Result<<RangedI64ValueParser<T> as TypedValueParser>::Value, Error>
Parse the argument value Read more
Source§fn parse_ref_(
&self,
cmd: &Command,
arg: Option<&Arg>,
value: &OsStr,
_source: ValueSource,
) -> Result<Self::Value, Error>
fn parse_ref_( &self, cmd: &Command, arg: Option<&Arg>, value: &OsStr, _source: ValueSource, ) -> Result<Self::Value, Error>
Parse the argument value Read more
Source§fn parse(
&self,
cmd: &Command,
arg: Option<&Arg>,
value: OsString,
) -> Result<Self::Value, Error>
fn parse( &self, cmd: &Command, arg: Option<&Arg>, value: OsString, ) -> Result<Self::Value, Error>
Parse the argument value Read more
Source§fn parse_(
&self,
cmd: &Command,
arg: Option<&Arg>,
value: OsString,
_source: ValueSource,
) -> Result<Self::Value, Error>
fn parse_( &self, cmd: &Command, arg: Option<&Arg>, value: OsString, _source: ValueSource, ) -> Result<Self::Value, Error>
Parse the argument value Read more
Source§fn possible_values(
&self,
) -> Option<Box<dyn Iterator<Item = PossibleValue> + '_>>
fn possible_values( &self, ) -> Option<Box<dyn Iterator<Item = PossibleValue> + '_>>
Reflect on enumerated value properties Read more
Source§fn map<T, F>(self, func: F) -> MapValueParser<Self, F>
fn map<T, F>(self, func: F) -> MapValueParser<Self, F>
Adapt a
TypedValueParser
from one value to another Read moreimpl<T> Copy for RangedI64ValueParser<T>
Auto Trait Implementations§
impl<T> Freeze for RangedI64ValueParser<T>
impl<T> RefUnwindSafe for RangedI64ValueParser<T>where
T: RefUnwindSafe,
impl<T> Send for RangedI64ValueParser<T>
impl<T> Sync for RangedI64ValueParser<T>
impl<T> Unpin for RangedI64ValueParser<T>where
T: Unpin,
impl<T> UnwindSafe for RangedI64ValueParser<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<I> IntoResettable<ValueParser> for Iwhere
I: Into<ValueParser>,
impl<I> IntoResettable<ValueParser> for Iwhere
I: Into<ValueParser>,
Source§fn into_resettable(self) -> Resettable<ValueParser>
fn into_resettable(self) -> Resettable<ValueParser>
Convert to the intended resettable type
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes