UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::StructUtils::Private Namespace Reference

Namespaces

namespace  Constants
 

Functions

bool CanCastTo (const UStruct *From, const UStruct *To)
 
void AppendPropertyDescs (FXxHash64Builder &HashBuilder, const FPropertyBagPropertyDesc &Desc)
 
void AppendPathName (FStringBuilderBase &StringBuilder, const UObject *Object)
 
void AppendValueObjectHash (FXxHash64Builder &HashBuilder, FStringBuilderBase &StringBuilder, const UObject *InValueObject)
 
uint64 CalcPropertyDescArrayHash (const TConstArrayView< FPropertyBagPropertyDesc > Descs)
 
FPropertyBagContainerTypes GetContainerTypesFromProperty (const FProperty *InSourceProperty)
 
EPropertyBagPropertyType GetValueTypeFromProperty (const FProperty *InSourceProperty)
 
const UObjectGetValueTypeObjectFromProperty (const FProperty *InSourceProperty)
 
FPropertyCreatePropertyFromDesc (const FPropertyBagPropertyDesc &Desc, const FFieldVariant PropertyScope)
 
EPropertyBagResult GetPropertyAsInt64 (const FPropertyBagPropertyDesc *Desc, const void *Address, int64 &OutValue)
 
EPropertyBagResult GetPropertyAsUInt64 (const FPropertyBagPropertyDesc *Desc, const void *Address, uint64 &OutValue)
 
EPropertyBagResult GetPropertyAsDouble (const FPropertyBagPropertyDesc *Desc, const void *Address, double &OutValue)
 
template<typename T , typename PropT >
EPropertyBagResult GetPropertyValue (const FPropertyBagPropertyDesc *Desc, const void *Address, T &OutValue)
 
EPropertyBagResult GetPropertyValueAsEnum (const FPropertyBagPropertyDesc *Desc, const UEnum *RequestedEnum, const void *Address, uint8 &OutValue)
 
EPropertyBagResult GetPropertyValueAsStruct (const FPropertyBagPropertyDesc *Desc, const UScriptStruct *RequestedStruct, const void *Address, FStructView &OutValue)
 
EPropertyBagResult GetPropertyValueAsObject (const FPropertyBagPropertyDesc *Desc, const UClass *RequestedClass, const void *Address, UObject *&OutValue)
 
EPropertyBagResult GetPropertyValueAsSoftPath (const FPropertyBagPropertyDesc *Desc, const void *Address, FSoftObjectPath &OutValue)
 
EPropertyBagResult SetPropertyFromInt64 (const FPropertyBagPropertyDesc *Desc, void *Address, const int64 InValue)
 
EPropertyBagResult SetPropertyFromUInt64 (const FPropertyBagPropertyDesc *Desc, void *Address, const uint64 InValue)
 
EPropertyBagResult SetPropertyFromDouble (const FPropertyBagPropertyDesc *Desc, void *Address, const double InValue)
 
template<typename T , typename PropT >
EPropertyBagResult SetPropertyValue (const FPropertyBagPropertyDesc *Desc, void *Address, const T &InValue)
 
EPropertyBagResult SetPropertyValueAsEnum (const FPropertyBagPropertyDesc *Desc, void *Address, const uint8 InValue, const UEnum *Enum)
 
EPropertyBagResult SetPropertyValueAsStruct (const FPropertyBagPropertyDesc *Desc, void *Address, const FConstStructView InValue)
 
EPropertyBagResult SetPropertyValueAsObject (const FPropertyBagPropertyDesc *Desc, void *Address, UObject *InValue)
 
EPropertyBagResult SetPropertyValueAsSoftPath (const FPropertyBagPropertyDesc *Desc, void *Address, const FSoftObjectPath &InPath, const UObject *InObject=nullptr)
 
void CopyMatchingValues (const FConstStructView Source, FStructView Target, TFunctionRef< const FPropertyBagPropertyDesc *(TNotNull< const UPropertyBag * >, const FPropertyBagPropertyDesc &)> FindTargetPropertyFunction)
 
void CopyMatchingValuesByID (const FConstStructView Source, FStructView Target)
 
void CopyMatchingValuesByIDWithOverrides (const FConstStructView Source, FStructView Target, TConstArrayView< FGuid > Overrides)
 
void RemovePropertyByName (TArray< FPropertyBagPropertyDesc > &Descs, const FName PropertyName, const int32 StartIndex=0)
 
EPropertyBagAlterationResult RenameProperty (TArray< FPropertyBagPropertyDesc > &Descs, const FName SourcePropertyName, const FName TargetPropertyName)
 
EPropertyBagAlterationResult ReorderProperty (TArray< FPropertyBagPropertyDesc > &Descs, const int32 SourcePropertyIndex, const int32 TargetPropertyIndex, const bool bInsertBefore)
 

Function Documentation

◆ AppendPathName()

void UE::StructUtils::Private::AppendPathName ( FStringBuilderBase StringBuilder,
const UObject Object 
)

◆ AppendPropertyDescs()

void UE::StructUtils::Private::AppendPropertyDescs ( FXxHash64Builder HashBuilder,
const FPropertyBagPropertyDesc Desc 
)

◆ AppendValueObjectHash()

void UE::StructUtils::Private::AppendValueObjectHash ( FXxHash64Builder HashBuilder,
FStringBuilderBase StringBuilder,
const UObject InValueObject 
)

◆ CalcPropertyDescArrayHash()

uint64 UE::StructUtils::Private::CalcPropertyDescArrayHash ( const TConstArrayView< FPropertyBagPropertyDesc Descs)

◆ CanCastTo()

bool UE::StructUtils::Private::CanCastTo ( const UStruct From,
const UStruct To 
)

◆ CopyMatchingValues()

void UE::StructUtils::Private::CopyMatchingValues ( const FConstStructView  Source,
FStructView  Target,
TFunctionRef< const FPropertyBagPropertyDesc *(TNotNull< const UPropertyBag * >, const FPropertyBagPropertyDesc &)>  FindTargetPropertyFunction 
)

Copies properties from Source to Target property bag. The bag layouts do not need to match.

The provided FindTargetPropertyFunction should return the matching property in the Target property bag, or nullptr if there isn't one.

◆ CopyMatchingValuesByID()

void UE::StructUtils::Private::CopyMatchingValuesByID ( const FConstStructView  Source,
FStructView  Target 
)

◆ CopyMatchingValuesByIDWithOverrides()

void UE::StructUtils::Private::CopyMatchingValuesByIDWithOverrides ( const FConstStructView  Source,
FStructView  Target,
TConstArrayView< FGuid Overrides 
)

◆ CreatePropertyFromDesc()

FProperty * UE::StructUtils::Private::CreatePropertyFromDesc ( const FPropertyBagPropertyDesc Desc,
const FFieldVariant  PropertyScope 
)

◆ GetContainerTypesFromProperty()

FPropertyBagContainerTypes UE::StructUtils::Private::GetContainerTypesFromProperty ( const FProperty InSourceProperty)

◆ GetPropertyAsDouble()

EPropertyBagResult UE::StructUtils::Private::GetPropertyAsDouble ( const FPropertyBagPropertyDesc Desc,
const void Address,
double OutValue 
)

◆ GetPropertyAsInt64()

EPropertyBagResult UE::StructUtils::Private::GetPropertyAsInt64 ( const FPropertyBagPropertyDesc Desc,
const void Address,
int64 OutValue 
)

◆ GetPropertyAsUInt64()

EPropertyBagResult UE::StructUtils::Private::GetPropertyAsUInt64 ( const FPropertyBagPropertyDesc Desc,
const void Address,
uint64 OutValue 
)

◆ GetPropertyValue()

template<typename T , typename PropT >
EPropertyBagResult UE::StructUtils::Private::GetPropertyValue ( const FPropertyBagPropertyDesc Desc,
const void Address,
T &  OutValue 
)

◆ GetPropertyValueAsEnum()

EPropertyBagResult UE::StructUtils::Private::GetPropertyValueAsEnum ( const FPropertyBagPropertyDesc Desc,
const UEnum RequestedEnum,
const void Address,
uint8 OutValue 
)

◆ GetPropertyValueAsObject()

EPropertyBagResult UE::StructUtils::Private::GetPropertyValueAsObject ( const FPropertyBagPropertyDesc Desc,
const UClass RequestedClass,
const void Address,
UObject *&  OutValue 
)

◆ GetPropertyValueAsSoftPath()

EPropertyBagResult UE::StructUtils::Private::GetPropertyValueAsSoftPath ( const FPropertyBagPropertyDesc Desc,
const void Address,
FSoftObjectPath OutValue 
)

◆ GetPropertyValueAsStruct()

EPropertyBagResult UE::StructUtils::Private::GetPropertyValueAsStruct ( const FPropertyBagPropertyDesc Desc,
const UScriptStruct RequestedStruct,
const void Address,
FStructView OutValue 
)

◆ GetValueTypeFromProperty()

EPropertyBagPropertyType UE::StructUtils::Private::GetValueTypeFromProperty ( const FProperty InSourceProperty)

◆ GetValueTypeObjectFromProperty()

const UObject * UE::StructUtils::Private::GetValueTypeObjectFromProperty ( const FProperty InSourceProperty)

◆ RemovePropertyByName()

void UE::StructUtils::Private::RemovePropertyByName ( TArray< FPropertyBagPropertyDesc > &  Descs,
const FName  PropertyName,
const int32  StartIndex = 0 
)

◆ RenameProperty()

EPropertyBagAlterationResult UE::StructUtils::Private::RenameProperty ( TArray< FPropertyBagPropertyDesc > &  Descs,
const FName  SourcePropertyName,
const FName  TargetPropertyName 
)

◆ ReorderProperty()

EPropertyBagAlterationResult UE::StructUtils::Private::ReorderProperty ( TArray< FPropertyBagPropertyDesc > &  Descs,
const int32  SourcePropertyIndex,
const int32  TargetPropertyIndex,
const bool  bInsertBefore 
)

◆ SetPropertyFromDouble()

EPropertyBagResult UE::StructUtils::Private::SetPropertyFromDouble ( const FPropertyBagPropertyDesc Desc,
void Address,
const double  InValue 
)

◆ SetPropertyFromInt64()

EPropertyBagResult UE::StructUtils::Private::SetPropertyFromInt64 ( const FPropertyBagPropertyDesc Desc,
void Address,
const int64  InValue 
)

◆ SetPropertyFromUInt64()

EPropertyBagResult UE::StructUtils::Private::SetPropertyFromUInt64 ( const FPropertyBagPropertyDesc Desc,
void Address,
const uint64  InValue 
)

◆ SetPropertyValue()

template<typename T , typename PropT >
EPropertyBagResult UE::StructUtils::Private::SetPropertyValue ( const FPropertyBagPropertyDesc Desc,
void Address,
const T &  InValue 
)

◆ SetPropertyValueAsEnum()

EPropertyBagResult UE::StructUtils::Private::SetPropertyValueAsEnum ( const FPropertyBagPropertyDesc Desc,
void Address,
const uint8  InValue,
const UEnum Enum 
)

◆ SetPropertyValueAsObject()

EPropertyBagResult UE::StructUtils::Private::SetPropertyValueAsObject ( const FPropertyBagPropertyDesc Desc,
void Address,
UObject InValue 
)

◆ SetPropertyValueAsSoftPath()

EPropertyBagResult UE::StructUtils::Private::SetPropertyValueAsSoftPath ( const FPropertyBagPropertyDesc Desc,
void Address,
const FSoftObjectPath InPath,
const UObject InObject = nullptr 
)

◆ SetPropertyValueAsStruct()

EPropertyBagResult UE::StructUtils::Private::SetPropertyValueAsStruct ( const FPropertyBagPropertyDesc Desc,
void Address,
const FConstStructView  InValue 
)