2024-06-25 18:59:15 +02:00
|
|
|
// AUTOGENERATED COPYRIGHT HEADER START
|
2025-01-25 19:25:14 +01:00
|
|
|
// Copyright (C) 2024-2025 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
|
2024-06-25 18:59:15 +02:00
|
|
|
// AUTOGENERATED COPYRIGHT HEADER END
|
2024-06-26 00:31:06 +02:00
|
|
|
#include "error.hpp"
|
2025-01-25 16:27:50 +01:00
|
|
|
#include <cstdarg>
|
2024-06-26 00:31:06 +02:00
|
|
|
|
|
|
|
|
blitz::error::~error() {}
|
|
|
|
|
|
|
|
|
|
blitz::error::error(std::filesystem::path file, std::pair<uint64_t, uint64_t> base, std::pair<uint64_t, uint64_t> at, std::string reason) : std::runtime_error(reason)
|
|
|
|
|
{
|
|
|
|
|
_file = file;
|
|
|
|
|
_base = base;
|
|
|
|
|
_at = at;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::filesystem::path const& blitz::error::file() const
|
|
|
|
|
{
|
|
|
|
|
return _file;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::pair<uint64_t, uint64_t> const& blitz::error::base() const
|
|
|
|
|
{
|
|
|
|
|
return _base;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::pair<uint64_t, uint64_t> const& blitz::error::at() const
|
|
|
|
|
{
|
|
|
|
|
return _at;
|
|
|
|
|
}
|
2025-01-25 16:27:50 +01:00
|
|
|
|
|
|
|
|
std::string blitz::format(const char* format, ...)
|
|
|
|
|
{
|
|
|
|
|
va_list arg1;
|
|
|
|
|
va_list arg2;
|
|
|
|
|
va_start(arg1, format);
|
|
|
|
|
va_copy(arg2, arg1);
|
|
|
|
|
int length = vsnprintf(nullptr, 0, format, arg1);
|
|
|
|
|
std::vector<char> buffer(length + 1);
|
|
|
|
|
vsnprintf(buffer.data(), buffer.size(), format, arg2);
|
|
|
|
|
va_end(arg1);
|
|
|
|
|
va_end(arg2);
|
|
|
|
|
return {buffer.data(), buffer.data() + length};
|
|
|
|
|
}
|