ladybird/Userland/Libraries/LibWeb/CSS/Parser/ComponentValue.cpp
Sam Atkins 2368e6c5f2 LibWeb: Convert CSS Token/ComponentValue::to_debug_string() to String
These are only used for debugging, so I've decided that logging the
ErrorOr<String> itself is fine instead of trying to handle that error
more gracefully in those cases. If you're getting OOM trying to debug
log things, you have bigger problems.
2023-02-13 14:35:40 +00:00

51 lines
1.5 KiB
C++

/*
* Copyright (c) 2020-2021, the SerenityOS developers.
* Copyright (c) 2021-2022, Sam Atkins <atkinssj@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/CSS/Parser/Block.h>
#include <LibWeb/CSS/Parser/ComponentValue.h>
#include <LibWeb/CSS/Parser/Function.h>
namespace Web::CSS::Parser {
ComponentValue::ComponentValue(Token token)
: m_value(token)
{
}
ComponentValue::ComponentValue(NonnullRefPtr<Function> function)
: m_value(function)
{
}
ComponentValue::ComponentValue(NonnullRefPtr<Block> block)
: m_value(block)
{
}
ComponentValue::~ComponentValue() = default;
DeprecatedString ComponentValue::to_deprecated_string() const
{
return m_value.visit(
[](Token const& token) { return token.to_deprecated_string(); },
[](NonnullRefPtr<Block> const& block) { return block->to_deprecated_string(); },
[](NonnullRefPtr<Function> const& function) { return function->to_deprecated_string(); });
}
ErrorOr<String> ComponentValue::to_debug_string() const
{
return m_value.visit(
[](Token const& token) -> ErrorOr<String> {
return String::formatted("Token: {}", TRY(token.to_debug_string()));
},
[](NonnullRefPtr<Block> const& block) -> ErrorOr<String> {
return String::formatted("Block: {}", block->to_deprecated_string());
},
[](NonnullRefPtr<Function> const& function) -> ErrorOr<String> {
return String::formatted("Function: {}", function->to_deprecated_string());
});
}
}