Infinity Engine v0.6.20
C++ API Documentation
Loading...
Searching...
No Matches
Version.hpp
1// INFINITY_API_PUBLIC
2
3#pragma once
4
5#include <Infinity/api.h>
6
7#include <ostream>
8#include <cstdint>
9
10namespace Infinity::Engine
11{
12 struct INFINITY_API_PUBLIC Version
13 {
15 Version(uint32_t major, uint32_t minor, uint32_t patch);
16
17 uint32_t major() const;
18 uint32_t minor() const;
19 uint32_t patch() const;
20
21 private:
22 uint32_t _major;
23 uint32_t _minor;
24 uint32_t _patch;
25 };
26
37 {
38 return Version(
39 INFINITY_VERSION_MAJOR,
40 INFINITY_VERSION_MINOR,
41 INFINITY_VERSION_PATCH
42 );
43 }
44
45 inline bool operator<(const Version& lhs, const Version& rhs)
46 {
47 if (lhs.major() != rhs.major()) return lhs.major() < rhs.major();
48 if (lhs.minor() != rhs.minor()) return lhs.minor() < rhs.minor();
49 return lhs.patch() < rhs.patch();
50 }
51
52 inline bool operator>(const Version& lhs, const Version& rhs)
53 {
54 return rhs < lhs;
55 }
56
57 inline bool operator<=(const Version& lhs, const Version& rhs)
58 {
59 return !(rhs < lhs);
60 }
61
62 inline bool operator>=(const Version& lhs, const Version& rhs)
63 {
64 return !(lhs < rhs);
65 }
66
67 inline bool operator==(const Version& lhs, const Version& rhs)
68 {
69 return lhs.major() == rhs.major() &&
70 lhs.minor() == rhs.minor() &&
71 lhs.patch() == rhs.patch();
72 }
73
74 inline bool operator!=(const Version& lhs, const Version& rhs)
75 {
76 return !(lhs == rhs);
77 }
78
79 inline std::ostream& operator<<(std::ostream& os, const Version& v)
80 {
81 return os << v.major() << '.' << v.minor() << '.' << v.patch();
82 }
83}
Definition BaseException.hpp:9
Version CurrentVersion()
Gets the current engine version as a Version object.
Definition Version.hpp:36
std::ostream & operator<<(std::ostream &os, const Version &v)
Definition Version.hpp:79
bool operator>(const Version &lhs, const Version &rhs)
Definition Version.hpp:52
bool operator>=(const Version &lhs, const Version &rhs)
Definition Version.hpp:62
bool operator<(const Version &lhs, const Version &rhs)
Definition Version.hpp:45
bool operator!=(const Version &lhs, const Version &rhs)
Definition Version.hpp:74
bool operator<=(const Version &lhs, const Version &rhs)
Definition Version.hpp:57
bool operator==(const Version &lhs, const Version &rhs)
Definition Version.hpp:67
Definition Version.hpp:13
uint32_t major() const
uint32_t minor() const
Version(uint32_t major, uint32_t minor, uint32_t patch)
uint32_t patch() const