NAH 1.0.6
Native Application Host - Library API Reference
Loading...
Searching...
No Matches
/home/runner/work/nah/nah/include/nah/semver.hpp
#include <nah/semver.hpp>
auto version = nah::parse_version("1.2.3");
auto range = nah::parse_range(">=1.0.0 <2.0.0");
if (version && range && nah::satisfies(*version, *range)) {
// Version satisfies the range
}
bool satisfies(const Version &version, const Constraint &constraint)
Check if a version satisfies a single constraint.
std::optional< VersionRange > parse_range(const std::string &str)
Parse a version range string.
std::optional< Version > parse_version(const std::string &str)
Parse a SemVer 2.0.0 version string.
Semantic Versioning 2.0.0 support.
#pragma once
// cpp-semver requires <cstdint> but doesn't include it (GCC strictness)
#include <cstdint>
#include <semver/semver.hpp>
#include <optional>
#include <string>
#include <vector>
namespace nah {
using Version = semver::version;
enum class Comparator {
Eq,
Lt,
Le,
Gt,
Ge
};
struct Constraint {
};
using ComparatorSet = std::vector<Constraint>;
struct VersionRange {
std::vector<ComparatorSet> sets;
std::optional<Version> min_version() const;
std::string selection_key() const;
};
std::optional<Version> parse_version(const std::string& str);
std::optional<VersionRange> parse_range(const std::string& str);
bool satisfies(const Version& version, const Constraint& constraint);
bool satisfies(const Version& version, const ComparatorSet& set);
bool satisfies(const Version& version, const VersionRange& range);
} // namespace nah
Comparator
Comparator operators for range expressions.
Definition semver.hpp:39
@ Eq
=X.Y.Z or X.Y.Z (exact match)
std::vector< Constraint > ComparatorSet
Definition semver.hpp:55
semver::version Version
Semantic version type (MAJOR.MINOR.PATCH[-prerelease][+build])
Definition semver.hpp:36
Version version
Definition semver.hpp:50
Comparator op
Definition semver.hpp:49
std::vector< ComparatorSet > sets
Definition semver.hpp:63
std::optional< Version > min_version() const
Get the minimum version from the range.
std::string selection_key() const
Get selection key as "MAJOR.MINOR" from min_version.