#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: PropertyBindingUtils

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"


SDK_NAMESPACE_START

// Enum PropertyBindingUtils.EPropertyBindingAccessType
// NumValues: 0x0008
enum class EPropertyBindingAccessType : uint8
{
	Offset                                   = 0,
	Object                                   = 1,
	WeakObject                               = 2,
	SoftObject                               = 3,
	ObjectInstance                           = 4,
	StructInstance                           = 5,
	IndexArray                               = 6,
	EPropertyBindingAccessType_MAX           = 7,
};

// Enum PropertyBindingUtils.EPropertyBindingPropertyAccessType
// NumValues: 0x000B
enum class EPropertyBindingPropertyAccessType : uint8
{
	Offset                                   = 0,
	Object                                   = 1,
	WeakObject                               = 2,
	SoftObject                               = 3,
	ObjectInstance                           = 4,
	StructInstance                           = 5,
	IndexArray                               = 6,
	SharedStruct                             = 7,
	StructInstanceContainer                  = 8,
	Unset                                    = 9,
	EPropertyBindingPropertyAccessType_MAX   = 10,
};

// Enum PropertyBindingUtils.EPropertyCopyType
// NumValues: 0x0021
enum class EPropertyCopyType : uint8
{
	None                                     = 0,
	CopyPlain                                = 1,
	CopyComplex                              = 2,
	CopyBool                                 = 3,
	CopyStruct                               = 4,
	CopyObject                               = 5,
	CopyName                                 = 6,
	CopyFixedArray                           = 7,
	StructReference                          = 8,
	PromoteBoolToByte                        = 9,
	PromoteBoolToInt32                       = 10,
	PromoteBoolToUInt32                      = 11,
	PromoteBoolToInt64                       = 12,
	PromoteBoolToFloat                       = 13,
	PromoteBoolToDouble                      = 14,
	PromoteByteToInt32                       = 15,
	PromoteByteToUInt32                      = 16,
	PromoteByteToInt64                       = 17,
	PromoteByteToFloat                       = 18,
	PromoteByteToDouble                      = 19,
	PromoteInt32ToInt64                      = 20,
	PromoteInt32ToFloat                      = 21,
	PromoteInt32ToDouble                     = 22,
	PromoteUInt32ToInt64                     = 23,
	PromoteUInt32ToFloat                     = 24,
	PromoteUInt32ToDouble                    = 25,
	PromoteFloatToInt32                      = 26,
	PromoteFloatToInt64                      = 27,
	PromoteFloatToDouble                     = 28,
	DemoteDoubleToInt32                      = 29,
	DemoteDoubleToInt64                      = 30,
	DemoteDoubleToFloat                      = 31,
	EPropertyCopyType_MAX                    = 32,
};

// ScriptStruct PropertyBindingUtils.PropertyBindingBindableStructDescriptor
// 0x0018 (0x0018 - 0x0000)
struct FPropertyBindingBindableStructDescriptor
{
public:
	uint8                                         Pad_0[0x8];                                        // 0x0000(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UStruct*                                Struct;                                            // 0x0008(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class FName                                   Name;                                              // 0x0010(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FPropertyBindingBindableStructDescriptor;

// ScriptStruct PropertyBindingUtils.PropertyBindingPathSegment
// 0x0020 (0x0020 - 0x0000)
struct FPropertyBindingPathSegment final
{
public:
	class FName                                   Name;                                              // 0x0000(0x0008)(Edit, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	int32                                         ArrayIndex;                                        // 0x0008(0x0004)(Edit, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_C[0x4];                                        // 0x000C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UStruct*                                InstanceStruct;                                    // 0x0010(0x0008)(Edit, ZeroConstructor, EditConst, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	EPropertyBindingPropertyAccessType            InstancedStructAccessType;                         // 0x0018(0x0001)(Edit, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_19[0x7];                                       // 0x0019(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyBindingPathSegment;

// ScriptStruct PropertyBindingUtils.PropertyBindingPath
// 0x0010 (0x0010 - 0x0000)
struct FPropertyBindingPath final
{
public:
	TArray<struct FPropertyBindingPathSegment>    Segments;                                          // 0x0000(0x0010)(Edit, ZeroConstructor, EditConst, NativeAccessSpecifierPrivate)
};
DUMPER7_ASSERTS_FPropertyBindingPath;

// ScriptStruct PropertyBindingUtils.PropertyBindingBinding
// 0x0028 (0x0028 - 0x0000)
struct FPropertyBindingBinding
{
public:
	uint8                                         Pad_0[0x8];                                        // 0x0000(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FPropertyBindingPath                   SourcePropertyPath;                                // 0x0008(0x0010)(Edit, EditConst, Protected, NativeAccessSpecifierProtected)
	struct FPropertyBindingPath                   TargetPropertyPath;                                // 0x0018(0x0010)(Edit, EditConst, Protected, NativeAccessSpecifierProtected)
};
DUMPER7_ASSERTS_FPropertyBindingBinding;

// ScriptStruct PropertyBindingUtils.PropertyBindingIndex16
// 0x0002 (0x0002 - 0x0000)
struct FPropertyBindingIndex16 final
{
public:
	uint16                                        Value;                                             // 0x0000(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
};
DUMPER7_ASSERTS_FPropertyBindingIndex16;

// ScriptStruct PropertyBindingUtils.PropertyBindingCopyInfoBatch
// 0x0018 (0x0018 - 0x0000)
struct FPropertyBindingCopyInfoBatch final
{
public:
	struct FInstancedStruct                       TargetStruct;                                      // 0x0000(0x0010)(NativeAccessSpecifierPublic)
	struct FPropertyBindingIndex16                BindingsBegin;                                     // 0x0010(0x0002)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPropertyBindingIndex16                BindingsEnd;                                       // 0x0012(0x0002)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPropertyBindingIndex16                PropertyFunctionsBegin;                            // 0x0014(0x0002)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPropertyBindingIndex16                PropertyFunctionsEnd;                              // 0x0016(0x0002)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FPropertyBindingCopyInfoBatch;

// ScriptStruct PropertyBindingUtils.PropertyBindingPropertyIndirection
// 0x0018 (0x0018 - 0x0000)
struct FPropertyBindingPropertyIndirection final
{
public:
	struct FPropertyBindingIndex16                ArrayIndex;                                        // 0x0000(0x0002)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint16                                        Offset;                                            // 0x0002(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPropertyBindingIndex16                NextIndex;                                         // 0x0004(0x0002)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EPropertyBindingPropertyAccessType            Type;                                              // 0x0006(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_7[0x1];                                        // 0x0007(0x0001)(Fixing Size After Last Property [ Dumper-7 ])
	class UStruct*                                InstanceStruct;                                    // 0x0008(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	uint8                                         Pad_10[0x8];                                       // 0x0010(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyBindingPropertyIndirection;

// ScriptStruct PropertyBindingUtils.PropertyBindingCopyInfo
// 0x0068 (0x0068 - 0x0000)
struct FPropertyBindingCopyInfo final
{
public:
	struct FPropertyBindingPropertyIndirection    SourceIndirection;                                 // 0x0000(0x0018)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPropertyBindingPropertyIndirection    TargetIndirection;                                 // 0x0018(0x0018)(NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_30[0x10];                                      // 0x0030(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	class UStruct*                                SourceStructType;                                  // 0x0040(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	int32                                         CopySize;                                          // 0x0048(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_4C[0x4];                                       // 0x004C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	struct FInstancedStruct                       SourceDataHandle;                                  // 0x0050(0x0010)(NativeAccessSpecifierPublic)
	EPropertyCopyType                             Type;                                              // 0x0060(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_61[0x7];                                       // 0x0061(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyBindingCopyInfo;

// ScriptStruct PropertyBindingUtils.PropertyBindingBindingCollection
// 0x00C0 (0x00C0 - 0x0000)
struct alignas(0x10) FPropertyBindingBindingCollection
{
public:
	uint8                                         Pad_0[0x10];                                       // 0x0000(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FPropertyBindingCopyInfoBatch>  CopyBatches;                                       // 0x0010(0x0010)(ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	TArray<struct FPropertyBindingCopyInfo>       PropertyCopies;                                    // 0x0020(0x0010)(ZeroConstructor, Transient, Protected, NativeAccessSpecifierProtected)
	TArray<struct FPropertyBindingPropertyIndirection> PropertyIndirections;                         // 0x0030(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
	uint8                                         Pad_40[0x8];                                       // 0x0040(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	TScriptInterface<class IPropertyBindingBindingCollectionOwner> BindingsOwner;                    // 0x0048(0x0010)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_58[0x68];                                      // 0x0058(0x0068)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyBindingBindingCollection;

SDK_NAMESPACE_END
