/** @file closure.h
*	closure operator implementation for EABaseTypes
*	@author Chris Burns (cburns@ea.com)
*
*	CTUI
*	(c) 2013 Electronic Arts Inc.
*/

#ifndef EABASETYPES_CLOSURE_H_
#define EABASETYPES_CLOSURE_H_

#include "EABaseTypes/autoref.h"

namespace EA
{
	namespace Types
	{
		class Factory;

		EABASETYPES_FORWARD_DECLARATION(class, BaseType)
		EABASETYPES_FORWARD_DECLARATION(class, Array)
		EABASETYPES_FORWARD_DECLARATION(class, Function)

		BaseTypeReturn Closure(EA::Types::ArrayIn parameters);

		FunctionReturn ClosureAsFunction(EA::Types::Factory* factory);
	}
}

#endif /* EABASETYPES_CLOSURE_H_ */
