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