ComponentValue.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #include <LibWeb/CSS/Parser/Block.h>
  8. #include <LibWeb/CSS/Parser/ComponentValue.h>
  9. #include <LibWeb/CSS/Parser/Function.h>
  10. namespace Web::CSS::Parser {
  11. ComponentValue::ComponentValue(Token token)
  12. : m_value(token)
  13. {
  14. }
  15. ComponentValue::ComponentValue(NonnullRefPtr<Function> function)
  16. : m_value(function)
  17. {
  18. }
  19. ComponentValue::ComponentValue(NonnullRefPtr<Block> block)
  20. : m_value(block)
  21. {
  22. }
  23. ComponentValue::~ComponentValue() = default;
  24. ErrorOr<String> ComponentValue::to_string() const
  25. {
  26. return m_value.visit(
  27. [](Token const& token) { return token.to_string(); },
  28. [](NonnullRefPtr<Block> const& block) { return block->to_string(); },
  29. [](NonnullRefPtr<Function> const& function) { return function->to_string(); });
  30. }
  31. ErrorOr<String> ComponentValue::to_debug_string() const
  32. {
  33. return m_value.visit(
  34. [](Token const& token) -> ErrorOr<String> {
  35. return String::formatted("Token: {}", TRY(token.to_debug_string()));
  36. },
  37. [](NonnullRefPtr<Block> const& block) -> ErrorOr<String> {
  38. return String::formatted("Block: {}", TRY(block->to_string()));
  39. },
  40. [](NonnullRefPtr<Function> const& function) -> ErrorOr<String> {
  41. return String::formatted("Function: {}", TRY(function->to_string()));
  42. });
  43. }
  44. }