aboutsummaryrefslogtreecommitdiff
path: root/src/utils/range.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/range.h')
-rw-r--r--src/utils/range.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/utils/range.h b/src/utils/range.h
new file mode 100644
index 0000000..ce25298
--- /dev/null
+++ b/src/utils/range.h
@@ -0,0 +1,25 @@
+#ifndef SYSC_PLAYGROUND_RANGE
+#define SYSC_PLAYGROUND_RANGE
+
+#include "utils/types.h"
+
+#include <cassert>
+
+struct range {
+ constexpr explicit range(u64 start, u64 end) : start{start}, end{end} {
+ assert(start < end);
+ }
+
+ constexpr bool overlaps(range rhs) const {
+ return start <= rhs.end && rhs.start <= end;
+ }
+
+ constexpr bool contains(range rhs) const {
+ return start <= rhs.start && rhs.end <= end;
+ }
+
+ u64 start;
+ u64 end;
+};
+
+#endif