/// Values per occurrence for an argument #[derive(Copy, Clone, PartialEq, Eq, Hash)] pubstruct ValueRange {
start_inclusive: usize,
end_inclusive: usize,
}
impl ValueRange { /// Nor argument values, or a flag pubconst EMPTY: Self = Self {
start_inclusive: 0,
end_inclusive: 0,
};
/// A single argument value, the most common case for options pubconst SINGLE: Self = Self {
start_inclusive: 1,
end_inclusive: 1,
};
/// Create a range /// /// # Panics /// /// If the end is less than the start (debug builds) /// /// # Examples /// /// ```rust /// # use clap_builder as clap; /// # use clap::builder::ValueRange; /// let range = ValueRange::new(5); /// let range = ValueRange::new(5..10); /// let range = ValueRange::new(5..=10); /// let range = ValueRange::new(5..); /// let range = ValueRange::new(..10); /// let range = ValueRange::new(..=10); /// ``` /// /// While this will panic: /// ```should_panic /// # use clap_builder as clap; /// # use clap::builder::ValueRange; /// let range = ValueRange::new(10..5); // Panics! /// ``` pubfn new(range: impl Into<Self>) -> Self {
range.into()
}
/// Fewest number of values the argument accepts pubfn min_values(&self) -> usize { self.start_inclusive
}
/// Most number of values the argument accepts pubfn max_values(&self) -> usize { self.end_inclusive
}
/// Report whether the argument takes any values (ie is a flag) /// /// # Examples /// /// ```rust /// # use clap_builder as clap; /// # use clap::builder::ValueRange; /// let range = ValueRange::new(5); /// assert!(range.takes_values()); /// /// let range = ValueRange::new(0); /// assert!(!range.takes_values()); /// ``` pubfn takes_values(&self) -> bool { self.end_inclusive != 0
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.