bool StringParser::TryParseUInt(const StringRef& str, ulong& outResult) { if (str.Contains("x") || str.Contains("X")) { return str.TryParseUInt(outResult, 16); } return str.TryParseUInt(outResult); }
ulong StringParser::ToUInt(const StringRef& str) { if (str.Contains("x") || str.Contains("X")) { return StringParser::StringTo<ulong>(str, 16); } return StringParser::StringTo<ulong>(str, 10); }
PublishTarget PublishTarget::Parse(StringRef fileName) { if (!fileName.Contains('-')) { return MatchAll; } HeapString rawName = Path::GetFileNameWithoutExtension(fileName); rawName.RemoveBeginExclude('-'); if (rawName.IsEmpty()) { return MatchAll; } List<HeapString> outResults; StringParser::Split<char>(rawName, "-", outResults); if (outResults.IsEmpty()) { return MatchAll; } int resultTag = 0; FOR_EACH_COLLECTION(i, outResults) { const HeapString& str = *i; int* tempTag = mTagDict.TryGetValue(str); if (tempTag != nullptr) { resultTag |= *tempTag; } else if (!StdString::IsDigit(str.c_str())) { Log::FormatError("Invalid tag:{}", str.c_str()); } } PublishTarget tag = PublishTarget(resultTag); if (tag.Version == PublishVersions::None) { tag.Version = PublishVersions::All; } if (tag.Device == PublishDevices::None) { tag.Device = PublishDevices::All; } if (tag.Language == PublishLanguages::None) { tag.Language = PublishLanguages::All; } return tag; }
bool WinEGLView::IsEGLExtensionSupported(StringRef extension) { StringRef extensions = eglQueryString(mEGLDisplay, EGL_EXTENSIONS); return extensions.Contains(extension); }