Pioneer
Loading...
Searching...
No Matches
FrameId.h
Go to the documentation of this file.
1#ifndef FRAMEID_H_INCLUDED
2#define FRAMEID_H_INCLUDED
3
4#include <cstddef>
5#include <cstdint>
6#include <exception>
7#include <limits>
8
9struct FrameId {
10 static constexpr uint32_t Invalid = std::numeric_limits<uint32_t>::max();
11 constexpr FrameId() :
12 m_id(Invalid) {}
13 constexpr FrameId(uint32_t new_id) :
14 m_id(new_id) {}
15
16 constexpr operator bool() const { return m_id != Invalid; }
17 constexpr operator size_t() const { return m_id; }
18
19 constexpr bool operator==(FrameId rhs) const { return m_id == rhs.m_id; }
20 constexpr bool operator!=(FrameId rhs) const { return m_id != rhs.m_id; }
21
22 constexpr bool valid() const { return m_id != Invalid; }
23 constexpr size_t id() const { return m_id; }
24
25private:
26 uint32_t m_id;
27};
28
29static_assert(sizeof(FrameId) == sizeof(uint32_t) && alignof(FrameId) == alignof(uint32_t),
30 "Error: FrameId sized differently than the underlying type on this platform!");
31
32#endif // FRAMEID_H_INCLUDED
Definition FrameId.h:9
constexpr FrameId(uint32_t new_id)
Definition FrameId.h:13
static constexpr uint32_t Invalid
Definition FrameId.h:10
constexpr bool operator==(FrameId rhs) const
Definition FrameId.h:19
constexpr bool operator!=(FrameId rhs) const
Definition FrameId.h:20
constexpr FrameId()
Definition FrameId.h:11
constexpr bool valid() const
Definition FrameId.h:22
constexpr size_t id() const
Definition FrameId.h:23