Struct semver::VersionReq [] [src]

pub struct VersionReq {
    // some fields omitted
}

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

Methods

impl VersionReq

fn any() -> VersionReq

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

Examples

use semver::VersionReq;

let anything = VersionReq::any();

fn parse(input: &str) -> Result<VersionReq, ReqParseError>

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

A Result is returned which contains a ReqParseError if there was a problem parsing the VersionReq.

Examples

use semver::VersionReq;

let version = VersionReq::parse("=1.2.3");
let version = VersionReq::parse(">1.2.3");
let version = VersionReq::parse("<1.2.3");
let version = VersionReq::parse("~1.2.3");
let version = VersionReq::parse("^1.2.3");
let version = VersionReq::parse("<=1.2.3");
let version = VersionReq::parse(">=1.2.3");

This example demonstrates error handling, and will panic.

use semver::VersionReq;

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

fn exact(version: &Version) -> VersionReq

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

Examples

use semver::VersionReq;
use semver::Version;

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

fn matches(&self, version: &Version) -> bool

matches() matches a given Version against this VersionReq.

Examples

use semver::VersionReq;
use semver::Version;

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

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

Trait Implementations

impl Display for VersionReq

fn fmt(&self, fmt: &mut Formatter) -> Result

Derived Implementations

impl Debug for VersionReq

fn fmt(&self, __arg_0: &mut Formatter) -> Result

impl Clone for VersionReq

fn clone(&self) -> VersionReq

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

impl PartialEq for VersionReq

fn eq(&self, __arg_0: &VersionReq) -> bool

fn ne(&self, __arg_0: &VersionReq) -> bool