aboutsummaryrefslogtreecommitdiff
path: root/include/cru/base/Range.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/base/Range.h')
-rw-r--r--include/cru/base/Range.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/cru/base/Range.h b/include/cru/base/Range.h
index edc2ec55..ade1979a 100644
--- a/include/cru/base/Range.h
+++ b/include/cru/base/Range.h
@@ -1,6 +1,10 @@
#pragma once
#include "Base.h"
+#ifdef CRU_PLATFORM_OSX
+#include <CoreFoundation/CoreFoundation.h>
+#endif
+
namespace cru {
struct Range final {
constexpr static Range FromTwoSides(Index start, Index end) {
@@ -36,6 +40,14 @@ struct Range final {
return Range::FromTwoSides(coerce(GetStart()), coerce(GetEnd()));
}
+#ifdef CRU_PLATFORM_OSX
+ CFRange ToCFRange() const { return CFRangeMake(this->position, this->count); }
+
+ static Range FromCFRange(const CFRange& range) {
+ return Range(range.location, range.length);
+ }
+#endif
+
Index position = 0;
Index count = 0;
};