Path: blob/master/drivers/apple/foundation_helpers.h
21382 views
/**************************************************************************/1/* foundation_helpers.h */2/**************************************************************************/3/* This file is part of: */4/* GODOT ENGINE */5/* https://godotengine.org */6/**************************************************************************/7/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */8/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */9/* */10/* Permission is hereby granted, free of charge, to any person obtaining */11/* a copy of this software and associated documentation files (the */12/* "Software"), to deal in the Software without restriction, including */13/* without limitation the rights to use, copy, modify, merge, publish, */14/* distribute, sublicense, and/or sell copies of the Software, and to */15/* permit persons to whom the Software is furnished to do so, subject to */16/* the following conditions: */17/* */18/* The above copyright notice and this permission notice shall be */19/* included in all copies or substantial portions of the Software. */20/* */21/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */22/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */23/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */24/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */25/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */26/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */27/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */28/**************************************************************************/2930#pragma once3132#ifdef __OBJC__33#import <Foundation/NSString.h>34#else35#include <Foundation/NSString.hpp>36#endif3738class String;39template <typename T>40class CharStringT;4142using CharString = CharStringT<char>;4344template <typename T>45class Span;4647namespace conv {4849#ifdef __OBJC__50/**51* Converts a Godot String to an NSString without allocating an intermediate UTF-8 buffer.52* */53NSString *to_nsstring(const String &p_str);54/**55* Converts a Godot String to an NSString without allocating an intermediate UTF-8 buffer.56* */57NSString *to_nsstring(Span<char> p_str);58/**59* Converts a Godot CharString to an NSString without allocating an intermediate UTF-8 buffer.60* */61NSString *to_nsstring(const CharString &p_str);62/**63* Converts an NSString to a Godot String without allocating intermediate buffers.64* */65String to_string(NSString *p_str);66#else67/**68* Converts a Godot String to an NSString without allocating an intermediate UTF-8 buffer.69* */70NS::String *to_nsstring(const String &p_str);71/**72* Converts a Godot String to an NSString without allocating an intermediate UTF-8 buffer.73* */74NS::String *to_nsstring(Span<char> p_str);75/**76* Converts a Godot CharString to an NSString without allocating an intermediate UTF-8 buffer.77* */78NS::String *to_nsstring(const CharString &p_str);79/**80* Converts an NSString to a Godot String without allocating intermediate buffers.81* */82String to_string(NS::String *p_str);8384#endif8586} //namespace conv878889