#pragma once

#include <cstdint>

#define LOG(line, fmt, ...) Logging::Log(Logging::ELogType::Log, line, fmt, ##__VA_ARGS__)
#define LOG_WARN(line, fmt, ...) Logging::Log(Logging::ELogType::Warn, line, fmt, ##__VA_ARGS__)
#define LOG_ERROR(line, fmt, ...) Logging::Log(Logging::ELogType::Error, line, fmt, ##__VA_ARGS__)

struct Logging
{
    enum class ELogType
    {
        Log,
        Warn,
        Error,
    };
    static void Log(ELogType logType, uint32_t line, const char* format, ...);
};
