NAH 1.0.6
Native Application Host - Library API Reference
Loading...
Searching...
No Matches
semver.hpp
Go to the documentation of this file.
1#pragma once
2
26// cpp-semver requires <cstdint> but doesn't include it (GCC strictness)
27#include <cstdint>
28#include <semver/semver.hpp>
29#include <optional>
30#include <string>
31#include <vector>
32
33namespace nah {
34
36using Version = semver::version;
37
39enum class Comparator {
40 Eq,
41 Lt,
42 Le,
43 Gt,
44 Ge
45};
46
52
55using ComparatorSet = std::vector<Constraint>;
56
63 std::vector<ComparatorSet> sets;
64
66 std::optional<Version> min_version() const;
67
69 std::string selection_key() const;
70};
71
77std::optional<Version> parse_version(const std::string& str);
78
86std::optional<VersionRange> parse_range(const std::string& str);
87
89bool satisfies(const Version& version, const Constraint& constraint);
90
92bool satisfies(const Version& version, const ComparatorSet& set);
93
95bool satisfies(const Version& version, const VersionRange& range);
96
97} // namespace nah
98
Result type for fallible operations.
Definition nahhost.hpp:109
Comparator
Comparator operators for range expressions.
Definition semver.hpp:39
@ Eq
=X.Y.Z or X.Y.Z (exact match)
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::vector< Constraint > ComparatorSet
Definition semver.hpp:55
std::optional< Version > parse_version(const std::string &str)
Parse a SemVer 2.0.0 version string.
semver::version Version
Semantic version type (MAJOR.MINOR.PATCH[-prerelease][+build])
Definition semver.hpp:36
A single comparator constraint (e.g., ">=1.0.0" or "<2.0.0")
Definition semver.hpp:48
Version version
Definition semver.hpp:50
Comparator op
Definition semver.hpp:49
A version range is a union of comparator sets (OR)
Definition semver.hpp:62
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.