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; | ||
|  | }; |