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

#pragma once

#include "ISCW_FImplementedInterface.h"
#include "SCW_Base.h"

struct FImplementedInterface;

namespace Sourcify
{
	class ISCW_UClass;

	class SCW_FImplementedInterface : public SCW_Base, public ISCW_FImplementedInterface
	{
	public:
		SCW_FImplementedInterface(FImplementedInterface* InImplementedInterface);

		FImplementedInterface* ToFImplementedInterface() const;

		ISCW_FImplementedInterfacePtr ToFImplementedInterfacePtr() override;
		ISCW_FImplementedInterfaceConstPtr ToFImplementedInterfacePtr() const override;

		shared_ptr<ISCW_UClass> GetClass() const override;

	protected:
		FImplementedInterface* ImplementedInterface;
	};
} // namespace Sourcify