5#include "Containers/Array.h"
163template <
typename CharType>
170 inline virtual bool TryGetString(FString& OutString)
const override;
182 return Value.IsEmpty();
190 inline virtual FString
GetType()
const override;
218template <
typename CharType>
225 inline virtual bool TryGetString(FString& OutString)
const override;
244 inline virtual FString
GetType()
const override;
327template<
typename T,
typename =
typename std::enable_if<!std::is_same_v<T, FJsonValue>>>
331 if constexpr (std::is_same_v<InSimpleValueType, bool> || std::is_same_v<InSimpleValueType, FString>)
353#if !PLATFORM_COMPILER_HAS_GENERATED_COMPARISON_OPERATORS
362 return !(Lhs == Rhs);
367 return !(Lhs == Rhs);
372 return !(Lhs == Rhs);
377 return !(Lhs == Rhs);
383 template <
typename CharType>
384 struct TJsonValueStringType
386 static_assert(
sizeof(CharType) == 0,
"Unsupported type");
390 struct TJsonValueStringType<
TCHAR>
394 return TEXT(
"String");
399 struct TJsonValueStringType<
UTF8CHAR>
403 return TEXT(
"Utf8String");
408template <
typename CharType>
415template <
typename CharType>
422template <
typename CharType>
425 if constexpr (std::is_same_v<FString, TString<CharType>>)
431 OutString = FString(
Value);
436template <
typename CharType>
439 if constexpr (std::is_same_v<FUtf8String, TString<CharType>>)
450template <
typename CharType>
453 if (
Value.IsNumeric())
464template <
typename CharType>
471template <
typename CharType>
478template <
typename CharType>
485template <
typename CharType>
492template <
typename CharType>
499template <
typename CharType>
502 return sizeof(*this) + GetAllocatedSize();
505template <
typename CharType>
508 return TJsonValueStringType<CharType>::GetType();
511template <
typename CharType>
514 return Value.GetAllocatedSize();
519 template <
typename CharType>
520 struct TJsonValueNumberType
522 static_assert(
sizeof(CharType),
"Unsupported type");
526 struct TJsonValueNumberType<
TCHAR>
530 return TEXT(
"NumberString");
535 struct TJsonValueNumberType<
UTF8CHAR>
539 return TEXT(
"Utf8NumberString");
544template <
typename CharType>
551template <
typename CharType>
558template <
typename CharType>
561 if constexpr (std::is_same_v<FString, TString<CharType>>)
567 OutString = FString(
Value);
572template <
typename CharType>
575 if constexpr (std::is_same_v<FUtf8String, TString<CharType>>)
586template <
typename CharType>
592template <
typename CharType>
598template <
typename CharType>
604template <
typename CharType>
610template <
typename CharType>
616template <
typename CharType>
622template <
typename CharType>
628template <
typename CharType>
634template <
typename CharType>
640template <
typename CharType>
646template <
typename CharType>
653template <
typename CharType>
659template <
typename CharType>
662 return sizeof(*this) + GetAllocatedSize();
665template <
typename CharType>
668 return TJsonValueNumberType<CharType>::GetType();
671template <
typename CharType>
674 return Value.GetAllocatedSize();
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void LexFromString(EAudioFeature &OutFeature, const TCHAR *String)
Definition IOSAppDelegate.cpp:163
TVariant< int32, uint32, int64, float, double > JsonNumberValueVariants
Definition JsonTypes.h:85
EJson
Definition JsonTypes.h:23
TVariant< bool, JsonNumberValueVariants, FString > JsonSimpleValueVariant
Definition JsonTypes.h:87
JSON_API bool operator==(const JsonSimpleValueVariant &Lhs, const JsonSimpleValueVariant &Rhs)
Definition JsonValue.cpp:695
bool operator!=(const JsonNumberValueVariants &Lhs, const FString &Rhs)
Definition JsonValue.h:360
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition JsonObject.h:23
Definition JsonValue.h:273
virtual JSON_API FString GetType() const override
Definition JsonValue.cpp:552
virtual JSON_API bool TryGetArray(const TArray< TSharedPtr< FJsonValue > > *&OutArray) const override
Definition JsonValue.cpp:524
JSON_API SIZE_T GetAllocatedSize() const
Definition JsonValue.cpp:541
virtual JSON_API ~FJsonValueArray()
TArray< TSharedPtr< FJsonValue > > Value
Definition JsonValue.h:284
virtual JSON_API SIZE_T GetMemoryFootprint() const override
Definition JsonValue.cpp:536
Definition JsonValue.h:254
virtual JSON_API bool TryGetString(FString &OutString) const override
Definition JsonValue.cpp:488
bool Value
Definition JsonValue.h:266
virtual JSON_API FString GetType() const override
Definition JsonValue.cpp:505
virtual JSON_API bool TryGetNumber(double &OutNumber) const override
Definition JsonValue.cpp:476
virtual JSON_API SIZE_T GetMemoryFootprint() const override
Definition JsonValue.cpp:500
virtual JSON_API bool TryGetBool(bool &OutBool) const override
Definition JsonValue.cpp:482
virtual JSON_API bool TryGetUtf8String(FUtf8String &OutString) const override
Definition JsonValue.cpp:494
virtual JSON_API ~FJsonValueBoolean()
Definition JsonValue.h:313
virtual JSON_API SIZE_T GetMemoryFootprint() const override
Definition JsonValue.cpp:599
JSON_API FJsonValueNull()
Definition JsonValue.cpp:592
virtual JSON_API ~FJsonValueNull()
virtual JSON_API FString GetType() const override
Definition JsonValue.cpp:604
Definition JsonValue.h:200
virtual JSON_API bool TryGetBool(bool &OutBool) const override
Definition JsonValue.cpp:440
virtual JSON_API bool TryGetString(FString &OutString) const override
Definition JsonValue.cpp:446
double Value
Definition JsonValue.h:212
virtual JSON_API FString GetType() const override
Definition JsonValue.cpp:463
virtual JSON_API SIZE_T GetMemoryFootprint() const override
Definition JsonValue.cpp:458
virtual JSON_API ~FJsonValueNumber()
virtual JSON_API bool TryGetUtf8String(FUtf8String &OutString) const override
Definition JsonValue.cpp:452
virtual JSON_API bool TryGetNumber(double &OutNumber) const override
Definition JsonValue.cpp:434
Definition JsonValue.h:294
JSON_API SIZE_T GetAllocatedSize() const
Definition JsonValue.cpp:582
virtual JSON_API bool TryGetObject(const TSharedPtr< FJsonObject > *&OutObject) const override
Definition JsonValue.cpp:565
virtual JSON_API FString GetType() const override
Definition JsonValue.cpp:587
virtual JSON_API SIZE_T GetMemoryFootprint() const override
Definition JsonValue.cpp:577
TSharedPtr< FJsonObject > Value
Definition JsonValue.h:303
virtual JSON_API ~FJsonValueObject()
Definition JsonValue.h:22
JSON_API FString AsString() const
Definition JsonValue.cpp:26
virtual JSON_API bool TryGetArray(const TArray< TSharedPtr< FJsonValue > > *&OutArray) const
Definition JsonValue.cpp:212
virtual JSON_API bool TryGetBool(bool &OutBool) const
Definition JsonValue.cpp:207
friend bool operator==(const FJsonValue &Lhs, const FJsonValue &Rhs)
Definition JsonValue.h:151
EJson Type
Definition JsonValue.h:134
void AsArgumentType(TSharedPtr< FJsonObject > &Value)
Definition JsonValue.h:123
JSON_API FUtf8String AsUtf8String() const
Definition JsonValue.cpp:38
virtual JSON_API ~FJsonValue()
virtual JSON_API const TSharedPtr< FJsonObject > & AsObject() const
Definition JsonValue.cpp:78
JSON_API void ErrorMessage(const FString &InType) const
Definition JsonValue.cpp:414
virtual JSON_API bool TryGetObject(const TSharedPtr< FJsonObject > *&Object) const
Definition JsonValue.cpp:222
JSON_API bool AsBool() const
Definition JsonValue.cpp:50
friend bool operator!=(const FJsonValue &Lhs, const FJsonValue &Rhs)
Definition JsonValue.h:156
void AsArgumentType(bool &Value)
Definition JsonValue.h:114
void AsArgumentType(FString &Value)
Definition JsonValue.h:109
virtual JSON_API bool TryGetUtf8String(FUtf8String &OutString) const
Definition JsonValue.cpp:202
virtual JSON_API bool TryGetNumber(double &OutNumber) const
Definition JsonValue.cpp:139
void AsArgumentType(TArray< TSharedPtr< FJsonValue > > &Value)
Definition JsonValue.h:119
JSON_API const TArray< TSharedPtr< FJsonValue > > & AsArray() const
Definition JsonValue.cpp:63
static JSON_API bool CompareEqual(const FJsonValue &Lhs, const FJsonValue &Rhs)
Definition JsonValue.cpp:243
virtual JSON_API bool TryGetString(FString &OutString) const
Definition JsonValue.cpp:197
void AsArgumentType(double &Value)
Definition JsonValue.h:104
virtual JSON_API SIZE_T GetMemoryFootprint() const
Definition JsonValue.cpp:237
JSON_API FJsonValue()
Definition JsonValue.cpp:6
bool IsNull() const
Definition JsonValue.h:98
virtual JSON_API bool PreferStringRepresentation() const
Definition JsonValue.cpp:232
JSON_API double AsNumber() const
Definition JsonValue.cpp:13
virtual FString GetType() const =0
Definition JsonValue.h:220
virtual bool TryGetNumber(double &OutDouble) const override
Definition JsonValue.h:587
SIZE_T GetAllocatedSize() const
Definition JsonValue.h:672
TString< CharType > Value
Definition JsonValue.h:242
virtual FString GetType() const override
Definition JsonValue.h:666
virtual bool TryGetBool(bool &OutBool) const override
Definition JsonValue.h:647
virtual bool TryGetUtf8String(FUtf8String &OutString) const override
Definition JsonValue.h:573
virtual bool TryGetString(FString &OutString) const override
Definition JsonValue.h:559
virtual SIZE_T GetMemoryFootprint() const override
Definition JsonValue.h:660
TJsonValueNumberString(const TString< CharType > &InString)
Definition JsonValue.h:545
virtual bool PreferStringRepresentation() const override
Definition JsonValue.h:654
Definition JsonValue.h:165
virtual FString GetType() const override
Definition JsonValue.h:506
virtual bool TryGetBool(bool &OutBool) const override
Definition JsonValue.h:493
bool IsEmpty() const
Definition JsonValue.h:180
virtual bool TryGetUtf8String(FUtf8String &OutString) const override
Definition JsonValue.h:437
TJsonValueString(const TString< CharType > &InString)
Definition JsonValue.h:409
virtual bool TryGetString(FString &OutString) const override
Definition JsonValue.h:423
virtual bool TryGetNumber(double &OutDouble) const override
Definition JsonValue.h:451
SIZE_T GetAllocatedSize() const
Definition JsonValue.h:512
virtual SIZE_T GetMemoryFootprint() const override
Definition JsonValue.h:500
TString< CharType > Value
Definition JsonValue.h:188
Definition SharedPointer.h:692
ECollisionShapeType GetType(const Chaos::FImplicitObject &InGeometry)
Definition ChaosInterfaceWrapperCore.h:105
Definition JsonValue.cpp:610
JsonSimpleValueVariant ToSimpleJsonVariant(const FJsonValue &InJsonValue)
Definition JsonValue.cpp:611
static UE_FORCEINLINE_HINT double Atod(const CharType *String)
Definition CString.h:1191