1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-05 22:14:55 +00:00

AK: Format the contents of NNRP<T> if T is formattable

This commit is contained in:
Ali Mohammad Pur 2022-12-10 19:33:37 +03:30 committed by Ali Mohammad Pur
parent ff038f306a
commit 08fc42002c
2 changed files with 12 additions and 0 deletions

View File

@ -39,6 +39,9 @@ inline constexpr bool HasFormatter = true;
template<typename T>
inline constexpr bool HasFormatter<T, typename Formatter<T>::__no_formatter_defined> = false;
template<typename T>
concept Formattable = HasFormatter<T>;
constexpr size_t max_format_arguments = 256;
struct TypeErasedParameter {

View File

@ -228,7 +228,16 @@ inline NonnullRefPtr<T> adopt_ref(T& object)
return NonnullRefPtr<T>(NonnullRefPtr<T>::Adopt, object);
}
template<Formattable T>
struct Formatter<NonnullRefPtr<T>> : Formatter<T> {
ErrorOr<void> format(FormatBuilder& builder, NonnullRefPtr<T> const& value)
{
return Formatter<T>::format(builder, *value);
}
};
template<typename T>
requires(!HasFormatter<T>)
struct Formatter<NonnullRefPtr<T>> : Formatter<T const*> {
ErrorOr<void> format(FormatBuilder& builder, NonnullRefPtr<T> const& value)
{