9#include "../microfmt.hpp"
11#include <reloco/type_id.hpp>
24 microfmt::string_view prerelease{};
25 microfmt::string_view build{};
26 bool show_v_prefix{
false};
34[[nodiscard]]
constexpr semver version(uint16_t major, uint16_t minor, uint16_t patch,
35 microfmt::string_view prerelease =
"", microfmt::string_view build =
"",
36 bool show_v =
false) noexcept {
37 return semver{major, minor, patch, prerelease, build, show_v};
43 return semver{
static_cast<uint16_t
>((packed >> 24) & 0xFF),
44 static_cast<uint16_t
>((packed >> 16) & 0xFF),
45 static_cast<uint16_t
>(packed & 0xFFFF),
53 return semver{
static_cast<uint16_t
>((packed >> 16) & 0xFF),
54 static_cast<uint16_t
>((packed >> 8) & 0xFF),
55 static_cast<uint16_t
>(packed & 0xFF),
66 bool force_v_prefix{
false};
67 bool hide_prerelease{
false};
68 bool hide_build{
false};
71 for (
char c : ctx.spec()) {
72 if (c ==
'#' || c ==
'v' || c ==
'V') {
73 force_v_prefix =
true;
74 }
else if (c ==
'c' || c ==
'C') {
76 hide_prerelease =
true;
85#if MICROFMT_SHARED_PROVIDE_DEFINITIONS
Definition microfmt.hpp:881
#define MICROFMT_API_CLASS
Definition compat.hpp:181
#define MICROFMT_API
Definition compat.hpp:135
constexpr semver version(uint16_t major, uint16_t minor, uint16_t patch, microfmt::string_view prerelease="", microfmt::string_view build="", bool show_v=false) noexcept
Definition semver.hpp:34
reloco::sink sink
Type-erased, zero-allocation output sink.
Definition microfmt.hpp:46
constexpr semver from_packed32(uint32_t packed, bool show_v=false) noexcept
Definition semver.hpp:42
constexpr semver from_packed24(uint32_t packed, bool show_v=false) noexcept
Definition semver.hpp:52
RELOCO_TYPE_ID_NAME(microfmt::semver, "microfmt::semver")