diff options
Diffstat (limited to 'src/utils/range.h')
-rw-r--r-- | src/utils/range.h | 25 |
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 |