// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "PropertyHandle.h" #include "Templates/SharedPointer.h" class UFunction; class UObject; namespace UE::StructUtils { namespace Private { struct FFindUserFunctionResult { UFunction* Function = nullptr; UObject* Target = nullptr; }; TOptional FindUserFunction(const TSharedPtr& InStructProperty, FName InFuncMetadataName); /** @return true property handle holds struct property of type T. */ template requires TModels_V bool IsScriptStruct(const TSharedPtr& PropertyHandle) { if (!PropertyHandle) { return false; } const FStructProperty* StructProperty = CastField(PropertyHandle->GetProperty()); return StructProperty && StructProperty->Struct->IsA(TBaseStructure::Get()->GetClass()); } } // UE::StructUtils::Private } // UE::StructUtils