#include "config.h"
#include "WKString.h"
#include "WKStringPrivate.h"
#include "WKAPICast.h"
using namespace WebKit;
WKTypeID WKStringGetTypeID()
{
return toAPI(API::String::APIType);
}
WKStringRef WKStringCreateWithUTF8CString(const char* string)
{
RefPtr<API::String> apiString = API::String::createFromUTF8String(string);
return toAPI(apiString.release().leakRef());
}
bool WKStringIsEmpty(WKStringRef stringRef)
{
return toImpl(stringRef)->isEmpty();
}
size_t WKStringGetLength(WKStringRef stringRef)
{
return toImpl(stringRef)->length();
}
size_t WKStringGetCharacters(WKStringRef stringRef, WKChar* buffer, size_t bufferLength)
{
COMPILE_ASSERT(sizeof(WKChar) == sizeof(UChar), WKStringGetCharacters_sizeof_WKChar_matches_UChar);
return (toImpl(stringRef)->getCharacters(static_cast<UChar*>(buffer), bufferLength));
}
size_t WKStringGetMaximumUTF8CStringSize(WKStringRef stringRef)
{
return toImpl(stringRef)->maximumUTF8CStringSize();
}
size_t WKStringGetUTF8CString(WKStringRef stringRef, char* buffer, size_t bufferSize)
{
return toImpl(stringRef)->getUTF8CString(buffer, bufferSize);
}
bool WKStringIsEqual(WKStringRef aRef, WKStringRef bRef)
{
return toImpl(aRef)->equal(toImpl(bRef));
}
bool WKStringIsEqualToUTF8CString(WKStringRef aRef, const char* b)
{
return toImpl(aRef)->equalToUTF8String(b);
}
bool WKStringIsEqualToUTF8CStringIgnoringCase(WKStringRef aRef, const char* b)
{
return toImpl(aRef)->equalToUTF8StringIgnoringCase(b);
}
WKStringRef WKStringCreateWithJSString(JSStringRef jsStringRef)
{
RefPtr<API::String> apiString = API::String::create(jsStringRef);
return toAPI(apiString.release().leakRef());
}
JSStringRef WKStringCopyJSString(WKStringRef stringRef)
{
return toImpl(stringRef)->createJSString();
}