// AUTOGENERATED COPYRIGHT HEADER START // Copyright (C) 2024 Michael Fabian 'Xaymar' Dirks // AUTOGENERATED COPYRIGHT HEADER END #include "error.hpp" #include blitz::error::~error() {} blitz::error::error(std::filesystem::path file, std::pair base, std::pair 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 const& blitz::error::base() const { return _base; } std::pair 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 buffer(length + 1); vsnprintf(buffer.data(), buffer.size(), format, arg2); va_end(arg1); va_end(arg2); return {buffer.data(), buffer.data() + length}; }