ladybird/Userland/Libraries/LibSQL/Result.cpp
Linus Groh 6e7459322d AK: Remove StringBuilder::build() in favor of to_deprecated_string()
Having an alias function that only wraps another one is silly, and
keeping the more obvious name should flush out more uses of deprecated
strings.
No behavior change.
2023-01-27 20:38:49 +00:00

47 lines
1.1 KiB
C++

/*
* Copyright (c) 2022, Jan de Visser <jan@de-visser.net>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/StringBuilder.h>
#include <LibSQL/Result.h>
namespace SQL {
DeprecatedString Result::error_string() const
{
VERIFY(is_error());
StringView error_code;
StringView error_description;
switch (m_error) {
#undef __ENUMERATE_SQL_ERROR
#define __ENUMERATE_SQL_ERROR(error, description) \
case SQLErrorCode::error: \
error_code = #error##sv; \
error_description = description##sv; \
break;
ENUMERATE_SQL_ERRORS(__ENUMERATE_SQL_ERROR)
#undef __ENUMERATE_SQL_ERROR
default:
VERIFY_NOT_REACHED();
}
StringBuilder builder;
builder.appendff("{}: ", error_code);
if (m_error_message.has_value()) {
if (error_description.find("{}"sv).has_value())
builder.appendff(error_description, *m_error_message);
else
builder.appendff("{}: {}", error_description, *m_error_message);
} else {
builder.append(error_description);
}
return builder.to_deprecated_string();
}
}