38 lines
		
	
	
		
			975 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			975 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "CSNamespace.h"
 | 
						|
 | 
						|
struct UNREALSHARPCORE_API FCSFieldName
 | 
						|
{
 | 
						|
	FCSFieldName() = default;
 | 
						|
	FCSFieldName(FName Name, FName Namespace) : Name(Name), Namespace(Namespace) {}
 | 
						|
	FCSFieldName(UField* Field);
 | 
						|
 | 
						|
	FName GetFName() const { return Name; }
 | 
						|
	FString GetName() const { return Name.ToString(); }
 | 
						|
	
 | 
						|
	bool IsValid() const { return Name != NAME_None; }
 | 
						|
	
 | 
						|
	FCSNamespace GetNamespace() const { return Namespace; }
 | 
						|
	UPackage* GetPackage() const { return Namespace.GetPackage(); }
 | 
						|
	FName GetPackageName() const { return Namespace.GetPackageName(); }
 | 
						|
	
 | 
						|
	FName GetFullName() const
 | 
						|
	{
 | 
						|
		return *FString::Printf(TEXT("%s.%s"), *Namespace.GetName(), *Name.ToString());
 | 
						|
	}
 | 
						|
 | 
						|
	bool operator == (const FCSFieldName& Other) const
 | 
						|
	{
 | 
						|
		return Name == Other.Name && Namespace == Other.Namespace;
 | 
						|
	}
 | 
						|
 | 
						|
	friend uint32 GetTypeHash(const FCSFieldName& Field)
 | 
						|
	{
 | 
						|
		return GetTypeHash(Field.Name) ^ GetTypeHash(Field.Namespace);
 | 
						|
	}
 | 
						|
private:
 | 
						|
	FName Name;
 | 
						|
	FCSNamespace Namespace;
 | 
						|
};
 |