Serenity Operating System
at master 51 lines 1.5 kB view raw
1/* 2 * Copyright (c) 2020-2021, the SerenityOS developers. 3 * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org> 4 * 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8#include <LibWeb/CSS/Parser/Block.h> 9#include <LibWeb/CSS/Parser/ComponentValue.h> 10#include <LibWeb/CSS/Parser/Function.h> 11 12namespace Web::CSS::Parser { 13 14ComponentValue::ComponentValue(Token token) 15 : m_value(token) 16{ 17} 18ComponentValue::ComponentValue(NonnullRefPtr<Function> function) 19 : m_value(function) 20{ 21} 22ComponentValue::ComponentValue(NonnullRefPtr<Block> block) 23 : m_value(block) 24{ 25} 26 27ComponentValue::~ComponentValue() = default; 28 29ErrorOr<String> ComponentValue::to_string() const 30{ 31 return m_value.visit( 32 [](Token const& token) { return token.to_string(); }, 33 [](NonnullRefPtr<Block> const& block) { return block->to_string(); }, 34 [](NonnullRefPtr<Function> const& function) { return function->to_string(); }); 35} 36 37ErrorOr<String> ComponentValue::to_debug_string() const 38{ 39 return m_value.visit( 40 [](Token const& token) -> ErrorOr<String> { 41 return String::formatted("Token: {}", TRY(token.to_debug_string())); 42 }, 43 [](NonnullRefPtr<Block> const& block) -> ErrorOr<String> { 44 return String::formatted("Block: {}", TRY(block->to_string())); 45 }, 46 [](NonnullRefPtr<Function> const& function) -> ErrorOr<String> { 47 return String::formatted("Function: {}", TRY(function->to_string())); 48 }); 49} 50 51}