StyleValueList.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. * Copyright (c) 2021, Tobias Christiansen <tobyase@serenityos.org>
  4. * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
  5. * Copyright (c) 2022-2023, MacDue <macdue@dueutil.tech>
  6. *
  7. * SPDX-License-Identifier: BSD-2-Clause
  8. */
  9. #include "StyleValueList.h"
  10. namespace Web::CSS {
  11. bool StyleValueList::Properties::operator==(Properties const& other) const
  12. {
  13. return separator == other.separator && values.span() == other.values.span();
  14. }
  15. String StyleValueList::to_string() const
  16. {
  17. auto separator = ""sv;
  18. switch (m_properties.separator) {
  19. case Separator::Space:
  20. separator = " "sv;
  21. break;
  22. case Separator::Comma:
  23. separator = ", "sv;
  24. break;
  25. default:
  26. VERIFY_NOT_REACHED();
  27. }
  28. StringBuilder builder;
  29. for (size_t i = 0; i < m_properties.values.size(); ++i) {
  30. builder.append(m_properties.values[i]->to_string());
  31. if (i != m_properties.values.size() - 1)
  32. builder.append(separator);
  33. }
  34. return MUST(builder.to_string());
  35. }
  36. }