Crate semver_parser[][src]

Collection of structures and helper functions for parsing semantic version.

This crate contains data structures for holding version data and comparison of versions according to Semantic versioning. Main structs are version::Version representing version itself and range::VersionReq as a collection of range::Predicate representing data for version comparison.

Examples

use semver_parser::range;
use semver_parser::version;

let r = range::parse("1.0.0")?;

assert_eq!(range::Predicate {
        op: range::Op::Compatible,
        major: 1,
        minor: Some(0),
        patch: Some(0),
        pre: Vec::new(),
    },
    r.predicates[0]
);

let m = version::parse("1.0.0")?;
for p in &r.predicates {
    match p.op {
        range::Op::Compatible => {
            assert_eq!(p.major, m.major);
        }
        _ => {
            unimplemented!();
        }
    }
}

Modules

comparator
lexer

Lexer for semver ranges.

parser

Recursive-descent parser for semver ranges.

range

Version range and requirements data and functions (used for version comparison).

version

Version data and functions.