#ifndef _RIVE_FOLDER_BASE_HPP_
#define _RIVE_FOLDER_BASE_HPP_
#include "rive/assets/asset.hpp"
namespace rive
{
	class FolderBase : public Asset
	{
	protected:
		typedef Asset Super;

	public:
		static const uint16_t typeKey = 102;

		/// Helper to quickly determine if a core object extends another without
		/// RTTI at runtime.
		bool isTypeOf(uint16_t typeKey) const override
		{
			switch (typeKey)
			{
				case FolderBase::typeKey:
				case AssetBase::typeKey:
					return true;
				default:
					return false;
			}
		}

		uint16_t coreType() const override { return typeKey; }

		Core* clone() const override;

	protected:
	};
} // namespace rive

#endif