mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 09:17:45 +00:00
AK: Add Formatter<FormatString> as helper class.
This commit is contained in:
parent
9a842ec419
commit
1160817a9e
13 changed files with 64 additions and 94 deletions
17
AK/Format.h
17
AK/Format.h
|
@ -359,7 +359,7 @@ struct Formatter<std::nullptr_t> : Formatter<FlatPtr> {
|
|||
}
|
||||
};
|
||||
|
||||
void vformat(StringBuilder& builder, StringView fmtstr, TypeErasedFormatParams);
|
||||
void vformat(StringBuilder&, StringView fmtstr, TypeErasedFormatParams);
|
||||
void vformat(const LogStream& stream, StringView fmtstr, TypeErasedFormatParams);
|
||||
|
||||
#ifndef KERNEL
|
||||
|
@ -435,6 +435,20 @@ template<typename T>
|
|||
struct Formatter<FormatIfSupported<T>> : __FormatIfSupported<T, HasFormatter<T>::value> {
|
||||
};
|
||||
|
||||
// This is a helper class, the idea is that if you want to implement a formatter you can inherit
|
||||
// from this class to "break down" the formatting.
|
||||
struct FormatString {
|
||||
};
|
||||
template<>
|
||||
struct Formatter<FormatString> : Formatter<String> {
|
||||
template<typename... Parameters>
|
||||
void format(FormatBuilder& builder, StringView fmtstr, const Parameters&... parameters)
|
||||
{
|
||||
vformat(builder, fmtstr, VariadicFormatParams { parameters... });
|
||||
}
|
||||
void vformat(FormatBuilder& builder, StringView fmtstr, TypeErasedFormatParams params);
|
||||
};
|
||||
|
||||
} // namespace AK
|
||||
|
||||
#ifndef KERNEL
|
||||
|
@ -448,3 +462,4 @@ using AK::warnln;
|
|||
using AK::dbgln;
|
||||
|
||||
using AK::FormatIfSupported;
|
||||
using AK::FormatString;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue