summaryrefslogtreecommitdiff
path: root/deimos/core/base.h
diff options
context:
space:
mode:
Diffstat (limited to 'deimos/core/base.h')
-rw-r--r--deimos/core/base.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/deimos/core/base.h b/deimos/core/base.h
index 0c15ccd..4c74b33 100644
--- a/deimos/core/base.h
+++ b/deimos/core/base.h
@@ -64,8 +64,9 @@ struct SourceLocation
{}
};
-template<typename T> T Min(T a, T b) { return (a < b) ? a : b; }
-template<typename T> T Max(T a, T b) { return (a > b) ? a : b; }
+template<typename T> constexpr T Min(T a, T b) { return (a < b) ? a : b; }
+template<typename T> constexpr T Max(T a, T b) { return (a > b) ? a : b; }
+template<typename T> constexpr T Clamp(T x, T min, T max) { return Min(Max(x, min), max); }
[[maybe_unused]] static constexpr int64_t Kilobytes = 1024;
[[maybe_unused]] static constexpr int64_t Megabytes = 1024 * 1024;
@@ -151,6 +152,15 @@ public:
Expects(offset + size <= m_size);
return Span(m_begin + offset, size);
}
+
+ bool Contains(const T& v) const
+ {
+ for (const T& p: *this)
+ {
+ if (p == v) { return true; }
+ }
+ return false;
+ }
};
template<typename T>