14#include <peak_common_c/detail/peak_common_defines.h>
15#include <peak_common_c/types/peak_common_simple_types.h>
40 Version(uint32_t major, uint32_t minor, uint32_t subminor, uint32_t patch);
51 PEAK_COMMON_NO_DISCARD uint32_t
GetMajor()
const;
62 PEAK_COMMON_NO_DISCARD uint32_t
GetMinor()
const;
73 PEAK_COMMON_NO_DISCARD uint32_t
GetSubminor()
const;
84 PEAK_COMMON_NO_DISCARD uint32_t
GetPatch()
const;
96 return std::tie(other.m_major, other.m_minor, other.m_subminor, other.m_patch)
97 == std::tie(this->m_major, this->m_minor, this->m_subminor, this->m_patch);
110 return !(*
this == other);
125 return std::tie(this->m_major, this->m_minor, this->m_subminor, this->m_patch)
126 < std::tie(other.m_major, other.m_minor, other.m_subminor, other.m_patch);
139 return other < *
this;
153 return os << version.m_major <<
'.' << version.m_minor <<
'.' << version.m_subminor <<
'.' << version.m_patch;
163 PEAK_COMMON_NO_DISCARD std::string
ToString()
const
165 std::ostringstream ss;
171 friend detail::BackendAccessor<Version>;
174 :
Version(version.major, version.minor, version.subminor, version.patch)
177 explicit operator detail::c_type_of_t<Version>()
const
182 std::uint32_t m_major{};
183 std::uint32_t m_minor{};
184 std::uint32_t m_subminor{};
185 std::uint32_t m_patch{};
191 , m_subminor{ subminor }
Represents a structured version identifier with four components: major, minor, subminor,...
Version(uint32_t major, uint32_t minor, uint32_t subminor, uint32_t patch)
std::string ToString() const
Converts the version to its string representation (e.g., "1.2.3.4").
friend std::ostream & operator<<(std::ostream &os, Version version)
Outputs the version in dot-separated string format (e.g., "1.2.3.4").
uint32_t GetSubminor() const
Retrieves the subminor version component.
bool operator!=(const Version &other) const
Checks if two versions are not equal.
uint32_t GetPatch() const
Retrieves the patch version component.
bool operator>(const Version &other) const
Checks if this version is greater than another version.
uint32_t GetMajor() const
Retrieves the major version component.
uint32_t GetMinor() const
Retrieves the minor version component.
bool operator==(const Version &other) const
Checks if two versions are equal.
bool operator<(const Version &other) const
Checks if this version is less than another version.
typename c_type_of_< Type >::type c_type_of_t