#include "colors.hpp"


#ifndef BIT_MACROS_HPP
#define BIT_MACROS_HPP

#define INFO(...) std::cout , "[INFO] " , __VA_ARGS__ , std::endl;
#define WARN(...) std::cout , YELLOW , "[WARN] " , __VA_ARGS__ , RESET , std::endl;
#define ERR(...) std::cout , RED , "[ERROR] " , __VA_ARGS__ , RESET , std::endl;
#define CRIT(...) std::cout , BOLD , RED , "[CRIT] " , __VA_ARGS__ , RESET , std::endl;

template <typename T>
std::ostream& operator,(std::ostream& out, const T& t) {
	out << t;
	return out;
}

//overloaded version to handle all those special std::endl and others...
std::ostream& operator,(std::ostream& out, std::ostream&(*f)(std::ostream&)) {
	out << f;
	return out;
}

#endif //BIT_MACROS_HPP
