From d1dd753a95540f8b573f9bcf6313e28d01e369dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= Date: Tue, 7 Mar 2023 16:49:56 +0100 Subject: [PATCH] LibAudio: Add a formatter for LoaderError --- Userland/Libraries/LibAudio/LoaderError.h | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/Userland/Libraries/LibAudio/LoaderError.h b/Userland/Libraries/LibAudio/LoaderError.h index 9f31b6afad..b967b8f127 100644 --- a/Userland/Libraries/LibAudio/LoaderError.h +++ b/Userland/Libraries/LibAudio/LoaderError.h @@ -65,6 +65,36 @@ struct LoaderError { } +namespace AK { + +template<> +struct Formatter : Formatter { + ErrorOr format(FormatBuilder& builder, Audio::LoaderError const& error) + { + StringView category; + switch (error.category) { + case Audio::LoaderError::Category::Unknown: + category = "Unknown"sv; + break; + case Audio::LoaderError::Category::IO: + category = "I/O"sv; + break; + case Audio::LoaderError::Category::Format: + category = "Format"sv; + break; + case Audio::LoaderError::Category::Internal: + category = "Internal"sv; + break; + case Audio::LoaderError::Category::Unimplemented: + category = "Unimplemented"sv; + break; + } + return Formatter::format(builder, "{} error: {} (at {})"sv, category, error.description, error.index); + } +}; + +} + // Convenience TRY-like macro to convert an Error to a LoaderError #define LOADER_TRY(expression) \ ({ \