From dfe62dcf8bcefc523b466e127c3edc4dc2756629 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 6 Oct 2024 13:57:39 +0800 Subject: Rename common to base. --- src/base/platform/osx/Convert.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/base/platform/osx/Convert.cpp (limited to 'src/base/platform/osx/Convert.cpp') diff --git a/src/base/platform/osx/Convert.cpp b/src/base/platform/osx/Convert.cpp new file mode 100644 index 00000000..1a6deb8f --- /dev/null +++ b/src/base/platform/osx/Convert.cpp @@ -0,0 +1,29 @@ +#include "cru/base/platform/osx/Convert.h" + +namespace cru::platform::osx { +CFStringRef Convert(const String& string) { + return CFStringCreateWithBytes( + nullptr, reinterpret_cast(string.data()), + string.size() * sizeof(std::uint16_t), kCFStringEncodingUTF16, false); +} + +String Convert(CFStringRef string) { + auto length = CFStringGetLength(string); + + String result; + + for (int i = 0; i < length; i++) { + result.AppendCodePoint(CFStringGetCharacterAtIndex(string, i)); + } + + return result; +} + +CFRange Convert(const Range& range) { + return CFRangeMake(range.position, range.count); +} + +Range Convert(const CFRange& range) { + return Range(range.location, range.length); +} +} // namespace cru::platform::osx -- cgit v1.2.3