Struct semver_rs::Range [−][src]
pub struct Range { /* fields omitted */ }
Expand description
A version range
is a set of comparators
which specify versions that satisfy the range
.
A comparator is composed of an operator and a version. The set of primitive operators is:
<
Less than
<=
Less than or equal to
>
Greater than
>=
Greater than or equal to
=
Equal. If no operator is specified, then equality is assumed, so this operator is optional, but MAY be included.
For example, the comparator >=1.2.7
would match the versions 1.2.7
, 1.2.8
, 2.5.3
, and 1.3.9
, but not the versions 1.2.6
or 1.1.0
.
Comparators can be joined by whitespace to form a comparator set, which is satisfied by the intersection of all of the comparators it includes.
A range is composed of one or more comparator sets, joined by ||. A version matches a range if and only if every comparator in at least one of the ||-separated comparator sets is satisfied by the version.
For example, the range >=1.2.7 <1.3.0
would match the versions 1.2.7
, 1.2.8
, and 1.2.99
, but not the versions 1.2.6
, 1.3.0
, or 1.1.0
.
The range 1.2.7 || >=1.2.9 <2.0.0
would match the versions 1.2.7
, 1.2.9
, and 1.4.6
, but not the versions 1.2.8
or 2.0.0
.