diff options
Diffstat (limited to 'platform/darwin/src/string_nsstring.mm')
-rw-r--r-- | platform/darwin/src/string_nsstring.mm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/platform/darwin/src/string_nsstring.mm b/platform/darwin/src/string_nsstring.mm new file mode 100644 index 0000000000..9bf199afc0 --- /dev/null +++ b/platform/darwin/src/string_nsstring.mm @@ -0,0 +1,31 @@ +#import <Foundation/Foundation.h> + +#include <mbgl/platform/platform.hpp> + +namespace mbgl { +namespace platform { + +std::string uppercase(const std::string &string) { + NSString *original = [[NSString alloc] initWithBytesNoCopy:const_cast<char *>(string.data()) + length:string.size() + encoding:NSUTF8StringEncoding + freeWhenDone:NO]; + NSString *uppercase = [original uppercaseString]; + const std::string result{[uppercase cStringUsingEncoding : NSUTF8StringEncoding], + [uppercase lengthOfBytesUsingEncoding:NSUTF8StringEncoding]}; + return result; +} + +std::string lowercase(const std::string &string) { + NSString *original = [[NSString alloc] initWithBytesNoCopy:const_cast<char *>(string.data()) + length:string.size() + encoding:NSUTF8StringEncoding + freeWhenDone:NO]; + NSString *lowercase = [original lowercaseString]; + const std::string result{[lowercase cStringUsingEncoding : NSUTF8StringEncoding], + [lowercase lengthOfBytesUsingEncoding:NSUTF8StringEncoding]}; + return result; +} + +} +} |