Add GetStringAnsiView to json value

This commit is contained in:
Wojtek Figat
2021-06-17 14:14:10 +02:00
parent 5ca2729a56
commit aa83af477a
7 changed files with 9 additions and 7 deletions

View File

@@ -2066,7 +2066,7 @@ void VisualScriptingBinaryModule::DeserializeObject(ISerializable::DeserializeSt
auto& params = instanceParams->Value.Params;
for (auto i = stream.MemberBegin(); i != stream.MemberEnd(); ++i)
{
StringAnsiView idNameAnsi(i->name.GetString(), i->name.GetStringLength());
StringAnsiView idNameAnsi(i->name.GetStringAnsiView());
Guid paramId;
if (!Guid::Parse(idNameAnsi, paramId))
{

View File

@@ -75,7 +75,7 @@ void FindIds(ISerializable::DeserializeStream& node, Array<Guid>& output)
{
// Try parse as Guid in format `N` (32 hex chars)
Guid id;
if (!Guid::Parse(node.GetText(), id))
if (!Guid::Parse(node.GetStringAnsiView(), id))
output.Add(id);
}
}

View File

@@ -74,7 +74,7 @@ SceneObject* SceneObjectsFactory::Spawn(ISerializable::DeserializeStream& stream
LOG(Warning, "Invalid object type (TypeName must be an object type full name string).");
return nullptr;
}
const StringAnsiView typeName(typeNameMember->value.GetString(), typeNameMember->value.GetStringLength());
const StringAnsiView typeName(typeNameMember->value.GetStringAnsiView());
const ScriptingTypeHandle type = Scripting::FindScriptingType(typeName);
if (type)

View File

@@ -3,6 +3,7 @@
#pragma once
#include "Engine/Core/Types/String.h"
#include "Engine/Core/Types/StringView.h"
// TODO: config RAPIDJSON_SSE2 for rapidjson
#define RAPIDJSON_ERROR_CHARTYPE Char

View File

@@ -74,7 +74,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
v.Type = VariantType::Null;
const auto mTypeName = SERIALIZE_FIND_MEMBER(stream, "TypeName");
if (mTypeName != stream.MemberEnd() && mTypeName->value.IsString())
v.SetTypeName(StringAnsiView(mTypeName->value.GetString(), mTypeName->value.GetStringLength()));
v.SetTypeName(StringAnsiView(mTypeName->value.GetStringAnsiView()));
}
else
{
@@ -257,7 +257,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
break;
case VariantType::String:
CHECK(value.IsString());
v.SetString(StringAnsiView(value.GetString(), value.GetStringLength()));
v.SetString(value.GetStringAnsiView());
break;
case VariantType::Object:
Deserialize(value, id, modifier);
@@ -328,7 +328,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
break;
case VariantType::Typename:
CHECK(value.IsString());
v.SetTypename(StringAnsiView(value.GetString(), value.GetStringLength()));
v.SetTypename(value.GetStringAnsiView());
break;
default:
Platform::CheckFailed("", __FILE__, __LINE__);

View File

@@ -536,7 +536,7 @@ namespace Serialization
else if (stream.IsString())
{
// byte[] encoded as Base64
const StringAnsiView streamView(stream.GetString(), stream.GetStringLength());
const StringAnsiView streamView(stream.GetStringAnsiView());
v.Resize(Encryption::Base64DecodeLength(*streamView, streamView.Length()));
Encryption::Base64Decode(*streamView, streamView.Length(), v.Get());
}

View File

@@ -1648,6 +1648,7 @@ public:
//@{
const Ch* GetString() const { RAPIDJSON_ASSERT(IsString()); return (data_.f.flags & kInlineStrFlag) ? data_.ss.str : GetStringPointer(); }
::StringAnsiView GetStringAnsiView() const { RAPIDJSON_ASSERT(IsString()); return data_.f.flags & kInlineStrFlag ? ::StringAnsiView(data_.ss.str, data_.ss.GetLength()) : ::StringAnsiView(GetStringPointer(), data_.s.length); }
::String GetText() const
{
::String result;