Program Listing for File Version.hpp
↰ Return to documentation for file (include/depthai/device/Version.hpp)
#pragma once
#include <cstdint>
#include <optional>
#include <string>
#include "depthai/utility/spimpl.h"
namespace dai {
struct Version {
enum class PreReleaseType : uint16_t {
ALPHA = 0,
BETA = 1,
RC = 2,
NONE = 3,
};
explicit Version(const std::string& v);
Version(unsigned major,
unsigned minor,
unsigned patch,
const PreReleaseType& type = PreReleaseType::NONE,
const std::optional<uint16_t>& preReleaseVersion = std::nullopt,
const std::string& buildInfo = "");
Version(unsigned major, unsigned minor, unsigned patch, const std::string& buildInfo)
: Version(major, minor, patch, PreReleaseType::NONE, std::nullopt, buildInfo) {}
bool operator==(const Version& other) const;
bool operator<(const Version& other) const;
inline bool operator!=(const Version& rhs) const {
return !(*this == rhs);
}
inline bool operator>(const Version& rhs) const {
return rhs < *this;
}
inline bool operator<=(const Version& rhs) const {
return !(*this > rhs);
}
inline bool operator>=(const Version& rhs) const {
return !(*this < rhs);
}
std::string toString() const;
std::string toStringSemver() const;
std::string getBuildInfo() const;
private:
class Impl;
spimpl::impl_ptr<Impl> pimpl;
};
} // namespace dai