21 using VersionType = std::uint64_t;
23 using Token = std::variant<VersionType, std::string>;
42 std::vector<Token> prerelease);
50 SemVer(VersionType major, VersionType minor, VersionType patch);
52 [[nodiscard]] SemVer::VersionType Major()
const;
53 [[nodiscard]] SemVer::VersionType Minor()
const;
54 [[nodiscard]] SemVer::VersionType Patch()
const;
56 [[nodiscard]] std::optional<std::vector<Token>>
const& Prerelease()
const;
64 [[nodiscard]]
static std::optional<SemVer>
Parse(std::string
const& value);
70 std::optional<std::vector<Token>> prerelease_;