UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PropertyTypeName.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Array.h"
8#include "UObject/NameTypes.h"
9
10#define UE_API COREUOBJECT_API
11
12class FArchive;
13class FProperty;
15class UField;
16struct FGuid;
17
18namespace UE { class FPropertyTypeNameBuilder; }
19
20namespace UE
21{
22
28
46{
47public:
48 FPropertyTypeName() = default;
49
51
52 [[nodiscard]] inline bool IsEmpty() const
53 {
54 return Index == 0;
55 }
56
63 [[nodiscard]] UE_API FName GetName() const;
64
72
83
97
101 inline void Reset()
102 {
103 Index = 0;
104 }
105
107 [[nodiscard]] UE_API bool IsStruct(FName StructName) const;
109 [[nodiscard]] UE_API bool IsEnum(FName EnumName) const;
110
111private:
112 UE_API friend uint32 GetTypeHash(const FPropertyTypeName& TypeName);
113 UE_API friend void AppendHash(FBlake3& Builder, const FPropertyTypeName& TypeName);
114
115 UE_API friend bool operator==(const FPropertyTypeName& Lhs, const FPropertyTypeName& Rhs);
116 UE_API friend bool operator<(const FPropertyTypeName& Lhs, const FPropertyTypeName& Rhs);
117
118 UE_API friend FArchive& operator<<(FArchive& Ar, FPropertyTypeName& TypeName);
119 UE_API friend void operator<<(FStructuredArchiveSlot Slot, FPropertyTypeName& TypeName);
120
122
123 int32 Index = 0;
124
126};
127
151{
152public:
154 UE_API void AddName(FName Name);
155
157 UE_API void AddGuid(const FGuid& Guid);
158
160 UE_API void AddPath(const UField* Field);
161
164
166 UE_API void BeginParameters();
167
169 UE_API void EndParameters();
170
173
175 UE_API void Reset();
176
185 [[nodiscard]] UE_API bool TryParse(FStringView Name);
186
187private:
188 [[nodiscard]] UE_REWRITE friend auto begin(const FPropertyTypeNameBuilder& Builder) { return Builder.Nodes.begin(); }
189 [[nodiscard]] UE_REWRITE friend auto end(const FPropertyTypeNameBuilder& Builder) { return Builder.Nodes.end(); }
190
193 int32 ActiveIndex = INDEX_NONE;
194};
195
196} // UE
197
198#undef UE_API
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_REWRITE
Definition Platform.h:747
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ IsStruct
Indicates the property is eligible for shared serialization.
#define UE_API
Definition SColorGradingComponentViewer.h:12
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition Blake3.h:94
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition StructuredArchiveSlots.h:52
Definition Array.h:670
Definition PropertyTypeName.h:151
UE_API void AddPath(const UField *Field)
Definition PropertyTypeName.cpp:487
UE_API void AddName(FName Name)
Definition PropertyTypeName.cpp:467
UE_API void AddType(FPropertyTypeName Name)
Definition PropertyTypeName.cpp:513
UE_API void EndParameters()
Definition PropertyTypeName.cpp:462
UE_API void BeginParameters()
Definition PropertyTypeName.cpp:456
UE_API bool TryParse(FStringView Name)
Definition PropertyTypeName.cpp:527
UE_API void AddGuid(const FGuid &Guid)
Definition PropertyTypeName.cpp:482
UE_API void Reset()
Definition PropertyTypeName.cpp:625
UE_REWRITE friend auto end(const FPropertyTypeNameBuilder &Builder)
Definition PropertyTypeName.h:189
UE_REWRITE friend auto begin(const FPropertyTypeNameBuilder &Builder)
Definition PropertyTypeName.h:188
UE_API FPropertyTypeName Build() const
Definition PropertyTypeName.cpp:615
Definition PropertyTypeName.h:46
UE_API friend uint32 GetTypeHash(const FPropertyTypeName &TypeName)
Definition PropertyTypeName.cpp:317
void Reset()
Definition PropertyTypeName.h:101
FPropertyTypeName()=default
UE_API friend bool operator==(const FPropertyTypeName &Lhs, const FPropertyTypeName &Rhs)
Definition PropertyTypeName.cpp:329
UE_API int32 GetParameterCount() const
Definition PropertyTypeName.cpp:282
UE_API FName GetName() const
Definition PropertyTypeName.cpp:276
UE_API FPropertyTypeName GetParameter(int32 ParamIndex) const
Definition PropertyTypeName.cpp:288
UE_API friend FArchive & operator<<(FArchive &Ar, FPropertyTypeName &TypeName)
Definition PropertyTypeName.cpp:353
UE_API friend bool operator<(const FPropertyTypeName &Lhs, const FPropertyTypeName &Rhs)
Definition PropertyTypeName.cpp:341
UE_API bool IsEnum(FName EnumName) const
Definition PropertyTypeName.cpp:311
UE_API friend void AppendHash(FBlake3 &Builder, const FPropertyTypeName &TypeName)
Definition PropertyTypeName.cpp:323
bool IsEmpty() const
Definition PropertyTypeName.h:52
FName GetParameterName(int32 ParamIndex) const
Definition PropertyTypeName.h:93
Definition Class.h:181
Definition FieldSystemNoiseAlgo.cpp:6
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
Definition Guid.h:109
Definition PropertyTypeName.h:24
FName Name
Definition PropertyTypeName.h:25
int32 InnerCount
Definition PropertyTypeName.h:26