Struct dia_semver::Range
source · [−]pub struct Range { /* private fields */ }
👎Deprecated: Beta
Expand description
Range
A range can be respresented in string, following these rules:
-
Start and end are placed inside one of
[]
,[)
…, separated by a comma. -
[
and]
are inclusive. -
(
and)
are exclusive. -
White spaces can be included. They will be ignored by parser.
-
For protection against flood attack, max length of the string is one of:
255
bytes (on 8-bit machines)4096
bytes (on larger machines)
Notes
Large ranges, such as [,]
, (,)
, [start,]
, [,end]
… are not supported. Technically it’s doable, but using such wild ranges in
software development is not recommended.
Examples
use core::str::FromStr;
use dia_semver::{Range, Semver};
// An empty range
let range = Range::from(Semver::new(0, 1, 2)..Semver::new(0, 0, 0));
assert!(range.is_empty());
// Only one single semver
let range = Range::from(Semver::new(0, 1, 2));
assert!(range.contains(&Semver::new(0, 1, 2)));
assert!(range.contains(&Semver::new(0, 1, 3)) == false);
// Inclusive range
let range = Range::from_str("[0.1.2, 0.2.0-beta]")?;
assert!(range.contains(&Semver::new(0, 1, 3)));
assert!(range.contains(&Semver::from_str("0.2.0-alpha")?));
assert!(range.contains(&Semver::new(0, 2, 0)) == false);
// Exclusive range
let range = Range::from(Semver::new(0, 1, 2)..Semver::new(0, 2, 0));
assert!(range.contains(&Semver::new(0, 2, 0)) == false);
Implementations
Trait Implementations
sourceimpl From<RangeInclusive<Semver>> for Range
impl From<RangeInclusive<Semver>> for Range
sourcefn from(range: RangeInclusive<Semver>) -> Self
fn from(range: RangeInclusive<Semver>) -> Self
Converts to this type from the input type.
impl Eq for Range
impl StructuralEq for Range
impl StructuralPartialEq for Range
Auto Trait Implementations
impl RefUnwindSafe for Range
impl Send for Range
impl Sync for Range
impl Unpin for Range
impl UnwindSafe for Range
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more