blob: d979f542255ef258083e69ae689e4b5c9edf7c8d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include "cru/base/Osx.h"
#include "cru/base/StringUtil.h"
namespace cru {
CFWrapper<CFStringRef> ToCFString(std::string_view string) {
return CFWrapper<CFStringRef>(CFStringCreateWithBytes(
nullptr, reinterpret_cast<const UInt8*>(string.data()),
string.size() * sizeof(char), kCFStringEncodingUTF8, false));
}
std::string FromCFStringRef(CFStringRef string) {
auto length = CFStringGetLength(string);
std::string result;
for (int i = 0; i < length; i++) {
cru::string::Utf8EncodeCodePointAppend(
CFStringGetCharacterAtIndex(string, i),
[&result](char c) { result += c; });
}
return result;
}
CFRange ToCFRange(const Range& range) {
return CFRangeMake(range.position, range.count);
}
Range FromCFRange(const CFRange& range) {
return Range(range.location, range.length);
}
} // namespace cru
|