# RangedI64ValueParser in clap::builder - Rust
Parse number that fall within a range of values
Keywords: rust, rustlang, rust-lang, RangedI64ValueParser

# Struct clap::builder::RangedI64ValueParser

source · [−]

    pub struct RangedI64ValueParser<T: TryFrom<i64> + Clone + Send + Sync = 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: TryFrom<i64> + Clone + Send + Sync> RangedI64ValueParser<T>

source

#### pub fn new() -> Self

Select full range of `i64`

source

#### pub fn range<B: RangeBounds<i64>>(self, range: B) -> Self

Narrow the supported range

## Trait Implementations

source

### impl<T: Clone + TryFrom<i64> + Clone + Send + Sync> Clone for RangedI64ValueParser<T>

source

#### fn clone(&self) -> RangedI64ValueParser<T>

Returns a copy of the value. Read more

1.0.0 · source

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`. Read more

source

### impl<T: Debug + TryFrom<i64> + Clone + Send + Sync> Debug for RangedI64ValueParser<T>

source

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

source

### impl<T: TryFrom<i64> + Clone + Send + Sync> Default for RangedI64ValueParser<T>

source

#### fn default() -> Self

Returns the “default value” for a type. Read more

source

### impl<T: TryFrom<i64> + Clone + Send + Sync, B: RangeBounds<i64>> From<B> for RangedI64ValueParser<T>

source

#### fn from(range: B) -> Self

Converts to this type from the input type.

source

### impl<T: TryFrom<i64> + Clone + Send + Sync + 'static> TypedValueParser for RangedI64ValueParser<T> where
<T as TryFrom<i64>>::Error: Send + Sync + 'static + Error + ToString,

#### type Value = T

Argument’s value type

source

#### fn parse_ref(
&self,
cmd: &Command,
arg: Option<&Arg>,
raw_value: &OsStr
) -> 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>

Parse the argument value Read more

source

#### 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> where
T: Send + Sync + Clone,
F: Fn(Self::Value) -> T + Clone,

Adapt a `TypedValueParser` from one value to another Read more

source

#### fn try_map<T, E, F>(self, func: F) -> TryMapValueParser<Self, F> where
F: Fn(Self::Value) -> Result<T, E> + Clone + Send + Sync + 'static,
T: Send + Sync + Clone,
E: Into<Box<dyn Error + Send + Sync + 'static>>,

Adapt a `TypedValueParser` from one value to another Read more

source

### impl<T: Copy + TryFrom<i64> + Clone + Send + Sync> Copy for RangedI64ValueParser<T>

## Auto Trait Implementations

### 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> Any for T where
T: 'static + ?Sized,

source

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more

source

### impl<T> Borrow<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

### impl<T> BorrowMut<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

const: unstable · source

#### fn from(t: T) -> T

Returns the argument unchanged.

source

### impl<T, U> Into<U> for T where
U: From<T>,

const: unstable · source

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

source

### impl<T> ToOwned for T where
T: Clone,

#### type Owned = T

The resulting type after obtaining ownership.

source

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more

source

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more

source

### impl<T, U> TryFrom<U> for T where
U: Into<T>,

#### type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

source

### impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.