Struct reproto_core::Range [] [src]

pub struct Range {
    pub predicates: Vec<Predicate>,
}

A Range is a struct containing a list of predicates that can apply to ranges of version numbers. Matching operations can then be done with the Range against a particular version to see if it satisfies some or all of the constraints.

Fields

Methods

impl Range
[src]

[src]

any() is a factory method which creates a Range with no constraints. In other words, any version will match against it.

Examples

use reproto_semver::Range;

let anything = Range::any();

[src]

parse() is the main constructor of a Range. It takes a string like "^1.2.3" and turns it into a Range that matches that particular constraint.

A Result is returned which contains a Error if there was a problem parsing the Range.

Examples

use reproto_semver::Range;

let version = Range::parse("=1.2.3");
let version = Range::parse(">1.2.3");
let version = Range::parse("<1.2.3");
let version = Range::parse("~1.2.3");
let version = Range::parse("^1.2.3");
let version = Range::parse("1.2.3"); // synonym for ^1.2.3
let version = Range::parse("<=1.2.3");
let version = Range::parse(">=1.2.3");

This example demonstrates error handling, and will panic.

use reproto_semver::Range;

let version = match Range::parse("not a version") {
    Ok(version) => version,
    Err(e) => panic!("There was a problem parsing: {}", e),
}

[src]

exact() is a factory method which creates a Range with one exact constraint.

Examples

use reproto_semver::Range;
use reproto_semver::Version;

let version = Version { major: 1, minor: 1, patch: 1, pre: vec![], build: vec![] };
let exact = Range::exact(&version);

[src]

matches() matches a given Version against this Range.

Examples

use reproto_semver::Range;
use reproto_semver::Version;

let version = Version { major: 1, minor: 1, patch: 1, pre: vec![], build: vec![] };
let exact = Range::exact(&version);

assert!(exact.matches(&version));

[src]

Check if range matches any.

Trait Implementations

impl Ord for Range
[src]

[src]

This method returns an Ordering between self and other. Read more

1.21.0
[src]

Compares and returns the maximum of two values. Read more

1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl PartialOrd<Range> for Range
[src]

[src]

This method returns an ordering between self and other values if one exists. Read more

[src]

This method tests less than (for self and other) and is used by the < operator. Read more

[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'de> Deserialize<'de> for Range
[src]

[src]

Deserialize this value from the given Serde deserializer. Read more

impl Display for Range
[src]

[src]

Formats the value using the given formatter. Read more

impl Serialize for Range
[src]

[src]

Serialize this value into the given Serde serializer. Read more

impl Eq for Range
[src]

impl Hash for Range
[src]

[src]

Feeds this value into the given [Hasher]. Read more

1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl PartialEq<Range> for Range
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl Clone for Range
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Range
[src]

[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for Range

impl Sync for Range