Files
2025-01-25 19:26:49 +01:00

44 lines
1.0 KiB
C++

// AUTOGENERATED COPYRIGHT HEADER START
// Copyright (C) 2024-2025 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
// AUTOGENERATED COPYRIGHT HEADER END
#include "error.hpp"
#include <cstdarg>
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;
}
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};
}