SmallString: Add vformat overloads

This commit is contained in:
Stenzek
2024-04-11 13:42:00 +10:00
parent 1809885927
commit f75a5605eb
3 changed files with 46 additions and 2 deletions

View File

@ -3,6 +3,7 @@
#pragma once
#include "small_string.h"
#include "types.h"
#include "fmt/core.h"
@ -94,6 +95,31 @@ public:
static void AddPrefix(Error* errptr, std::string_view prefix);
static void AddSuffix(Error* errptr, std::string_view prefix);
template<typename... T>
void AddPrefixFmt(fmt::format_string<T...> fmt, T&&... args)
{
AddPrefix(TinyString::from_vformat(fmt::string_view(fmt), fmt::make_format_args(args...)));
}
template<typename... T>
void AddSuffixFmt(fmt::format_string<T...> fmt, T&&... args)
{
AddSuffix(TinyString::from_vformat(fmt::string_view(fmt), fmt::make_format_args(args...)));
}
template<typename... T>
static void AddPrefixFmt(Error* errptr, fmt::format_string<T...> fmt, T&&... args)
{
if (errptr)
Error::AddPrefix(errptr, TinyString::from_vformat(fmt::string_view(fmt), fmt::make_format_args(args...)));
}
template<typename... T>
static void AddSuffixFmt(Error* errptr, fmt::format_string<T...> fmt, T&&... args)
{
if (errptr)
Error::AddSuffix(errptr, TinyString::from_vformat(fmt::string_view(fmt), fmt::make_format_args(args...)));
}
Error& operator=(const Error& e);
Error& operator=(Error&& e);
bool operator==(const Error& e) const;