// Copyright (c) 2024 Codemongous LLC. All Rights Reserved.

#pragma once

#include "ISCW_UUserDefinedEnum.h"
#include "SCW_UEnum.h"
#include "UObject/StrongObjectPtr.h"

using std::wstring;

class UUserDefinedEnum;

namespace Sourcify
{
	class SCW_UUserDefinedEnum : public SCW_UEnum, public virtual ISCW_UUserDefinedEnum
	{
	public:
		SCW_UUserDefinedEnum(UUserDefinedEnum* InUserDefinedEnum);
						
		UUserDefinedEnum* ToUUserDefinedEnumRawPtr() const;

		ISCW_UUserDefinedEnumPtr ToUUserDefinedEnumPtr() override;

		ISCW_UUserDefinedEnumConstPtr ToUUserDefinedEnumPtr() const override;

	protected:
		UUserDefinedEnum* UserDefinedEnum;
	};
} // namespace Sourcify